0

我在主报表中有一个数据集(DataSet1)。主要报告包含一个子报告(子报告)。我想知道如何将主报表中的数据集(DataSet1)的行数传递给子报表(子报表)。根据查询中的参数,DataSet1返回1,2或3行。SSRS:如何将主数据集的行数传递给子报表(子数据)

我在主报告中使用的文本框,并为其分配的表达:使用表达式

= RowCount("DataSet1") 

然后我这个文本框的值传递给子报表(子报告)作为参数:

= Reportitems!textbox1.Value 

主报告中的子报告(子报告)包含在列表对象中。该列表对象已经分配了迭代的DataSet1。

在子报表中,我在文本框中输入从主报表(rowcount(“DataSet1”))传递的参数值,但它总是打印1的值而不是打印1,2或3,具体取决于大小写。

另外我试图创建另一个数据集2,其中包含与dataset1相同的查询,但返回SELECT COUNT(*)AS rc .....然后在Tablix之外创建另一个文本框,并为其分配表达式:

= First(Fields!rc.Value) 

在文本框中显示正确根据情况计数1,2,3的值,但是当将它作为参数子报表,在子报表它始终显示为0。

什么我做错了吗?

+0

我不认为这里有足够的信息来确定究竟出了什么问题。例如,子报表参数的数据类型是什么?如果是文本,你有没有尝试将行数转换为文本?该参数是否设置了可用值?你有没有尝试引用表达式而不是文本框?等等 – StevenWhite

回答

1

您可以尝试将参数直接传递给子报表,而不是使用行计数设置文本框并将该值传递给子报表。即。 =“更改子报表参数”对话框中的CountRows(“DataSet1”)?