【发布时间】:2018-12-19 04:56:31
【问题描述】:
我有一个 SSRS 报告,它的字段为空值,基于是/否参数
当我的参数 = 否时,此字段显示为空(无值) 当我的参数 = Yes 时,该字段有值
请看下面的图片 -
“包括折旧”参数=否, “折旧”字段为空:
[![在此处输入图片描述][1]][1]
“包括折旧”参数=是, “折旧”字段不为空
我的目标是在参数 = No(并且字段没有值)时隐藏该行
我在 SSRS 中尝试了以下操作: 在表格的“Design”视图中,点击了负责“Depreciation”的整行,Row Visibility,Visibility - “根据表达式显示/隐藏”,输入以下表达式:
=IIF(Isnothing(Fields!GLGroupLevel2Name.Value),false,true)
但它什么也没做......仍然会出现一个空行(如果参数 = 否)。
这是我的“设计”视图 (我用条件显示/隐藏修改的行 - 标记为灰色):
任何建议或意见都会非常有帮助! 谢谢...
【问题讨论】:
-
您的行可见性需要基于您的参数值吗?不是数据集值。
-
类似
=Not Parameters!ShowDepreciation.Value -
@DaleBurrell 它可以基于参数值 If Parameter = 0 hide that row Parameter = 1 Show that row along w the others I just tried =IIF(Parameters!Depreciation.Value=0,True ,False) 仍然没有成功
-
通过将值硬编码为 true 然后为 false 来测试可见性是否有效。假设这是有效的,那么 IIf 一定会失败,这可能是由于数据类型不匹配。你可以试试
Parameters!Depreciation.Value=CInt(0),假设参数是int。 -
@DaleBurrell 即使当我测试我的参数 Parameters!Depreciation.Value=True 或 Parameters!Depreciation.Value=False - 它仍然显示空折旧行它不会像它应该的那样隐藏它 If这有助于我添加 T-SQL 代码中的内容 - 关于该参数,CASE WHEN ((acct.[GLAccountCode] IN (N'9040',N'9047',N'4130')) AND (@Depreciation = 0)) THEN 0 ELSE trans.Amount END AS [Amount] IIF((acct.[GLAccountCode]) IN (N'9040',N'9047',N'4130'), 1, 0) AS [DepreciationAcct]
标签: sql-server tsql parameters ssrs-2008-r2