我的报表将存储过程作为一个数据集,并返回几个列。我试图添加一个新的列,它依赖于其中一列的数据。我必须获得该行的依赖列数据,并在另一个表上运行选择语句,并返回一个与报表和表中的依赖列数据相匹配的表列数据。这就像在公共列上进行连接一样。
Here is the sp output
col1 col2 col3
3456 Name1 Address1
5678 Name2 Address2
Here is the table
col1 tblcol2 tblcol3
9876 Name1 Address3
1234 Name1 Address4
所以,在新列中,该Name1行的Address3和Address4应该显示在报表中。
我尝试在表达式框中使用LOOKUP(),方法如下=LOOKUP(Fields!col2.Value,Fields!tblcol2.Value,Fields!tblcol3.Value,"DataSet2")
但这在报告中给出了一个错误
当我不添加新的列时,报表在本地可以使用,但新的列与该表达式会给出该错误。
请告诉我是否有办法实现我的方案?
谢谢。
最简单的方法是创建依赖于数据集的参数。1. 创建数据集(查询)2。创建参数,并应用数据集中的可用值 3. 创建下一个消耗该参数的查询,例如参数名为 "param1"。
WHERE field1 = @param1
然后绘制你的数据作为表。根据类型,你应该能够选择从组合框(下拉)另一种方式(没有问题的参数值)是创建子报告在这种情况下,请记住查询执行的顺序。
我已经通过使用LookupSet函数表达式和逗号隔开的值解决了这个问题,具体方法如下:微软文档