2010-08-31 73 views
13

如何在自定义代码中循环访问数据集的行?
我有一个包含数据集的报告。我将数据集作为参数传递给自定义代码函数。但是呢?关于可用会员等的参考在哪里?
这是迄今为止我哑示例代码:如何在Reporting Services rdl自定义代码中循环数据集行

Public Function ShowParameterValues(ByVal ds as DataSet) as object() 
    Dim codes() As Object 
    Array.Resize(codes,dc.???.Count) 
    codes(0)=ds??(field???)(row??) 
    return codes 
End Function 

请注意:这将是一个非常简单的脚本(如果它会工作),所以我并不想进入定制组件等

+0

您是否试图在报告上显示数据? – beakersoft 2011-01-18 16:33:45

+1

告诉我们你想达到什么目的。 RDL文件包含报告结构的XML模式,而不是数据。当报表检索数据时,报表的数据在运行时绑定。您最好制作一个脚本,以便在报告已经运行的情况下抓取网页,并向您显示数据。再次,没有更多的信息,这很难破译你想要达到的目标, – Fandango68 2016-08-14 20:33:15

回答

-1

我想你有你的答案:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/a7d59224-0ee5-491e-883b-2e5fcb3edeab/iterate-through-rows-of-dataset-in-reports-custom-code?forum=sqlreportingservices

共有的两条重要信息我可以从上面的链接把握:

首先,Reporting Services中的数据集与ADO.Net数据集的对象类型不同。报表数据集是由SSRS运行时管理的内部对象(它实际上是从DataReader对象派生的),而不是包含数据表等的XML结构,并且无法传递到报表的自定义代码中。

第二,有一个解决方案,通过将数据集“转换”为多值参数(或者如果需要多个字段,将其转换为多个多值参数),可以在报表的自定义代码中遍历数据集的行):

多值报表参数必须具有以下特点:

隐藏= True,则允许多个值=真

可选值标签:选择所需的数据集。选择可搜索的ID作为值标识,并选择要作为标签字段公开的字段。

默认值选项卡:从查询中获取值。 选择与可用值选项卡中选择的数据集相同的数据集。 值字段您为值ID选择相同。

将参数设置为永不刷新(或将从另一个参数的每次迭代中加载数据)。

现在,想法是使这个参数“可搜索”。从这一点开始,您将数据集作为多值参数中的数组公开。

现在,在自定义代码中插入下面的代码:

function GetDataSetLabelFromValue(id as integer) as String 
dim i as integer 
i = 0 
for i = 1 to Report.Parameters!YourParameter.Count() 
if Report.Parameters!YourParameter.Value(i) = id then 
    GetDataSetLabelFromValue = Report.YourParameter!ReportParameter1.Label(i) 
    Exit For 
End if 
next i 
End Function 

是你能够做你想要什么?

相关问题