我有一个向下钻取报告,其参数为:父报告 - @valid Nvarchar(20)='',在子报告中 - @valid Nvarchar(20)= Null。
这两个报告都运行得很好,但在文本框属性>中映射此参数后我遇到了问题。行动>转到报告。运行报告时,我收到错误
“为报告参数提供的值无效”
此报告的查询来自存储过程。在子报告参数属性中,我勾选了“允许空值”文本框,设置可用参数来自查询并指定来自查询的默认值。允许返回错误我做错了什么?感谢您的帮助。
谢谢。
答案 0 :(得分:10)
如果你的第二个报告是期望NULL值(即SSRS中的Nothing
),你可以根据父参数将基于表达式的参数传递给子报告,确保它是一个父级别的空字符串,您可以将其显式设置为Nothing:
=IIf(Parameters!valid.Value = "", Nothing, Parameters!valid.Value)
这样,空字符串永远不会被传递,您的孩子会报告;只有它期望的NULL值。
答案 1 :(得分:1)
如果您正在考虑从URL传递null参数,让我们说某种CLI,您必须在URL的参数部分中包含参数:isNull = True 。并且总是在报告编辑器,参数属性中检查“允许空值”。
假设我们有一份关于体育和体育场馆的报告,我们有一项无效的运动...它会是这样的>
http://<server/report>&rs:Command=Render&rc:Parameters=false&rc:toolbar=false&sport:isNull=True&stadium=CampNou
答案 2 :(得分:0)
将参数设置为Allow Blank = Yes
和Default Value = ""
。在代码中为空白参数留出余量。