我有一些专栏和报告服务Tablix:
ColumnA | ColumnB | ColumnC
Val1 | Val2 | Val3
我正在使用动态查询来选择数据:
@columnList nvarchar(300)
DECLARE @sqlCommand nvarchar(max)
SET @sqlCommand = N'SELECT '+ @columnList +' FROM db.Table'
EXECUTE sp_executesql @sqlCommand
我将程序传递给我想要选择的列...如果指定了所有列,则报告可以正常工作:
SET @sqlCommand = 'ColumnA,ColumnB,ColumnC'
但是当我为报表服务的tablix中的列指定了较少的列时:
SET @sqlCommand = 'ColumnA,ColumnB'
我收到错误:
数据集'Dataset1'包含Field'ColumnC'的定义。 从数据源
返回的结果集中缺少此字段
我知道如果我隐藏ColumnC我不会有这个错误但是几天后在网上搜索我找不到解决方案。总之,我有以下问题:
如何隐藏不在sql SELECT 中但位于Reporting Services Tablix中的列?
答案 0 :(得分:0)
我建议你在SSRS层中执行此操作,而不是在其中执行此操作 您的查询。在SSRS中做的很简单。
1)创建
Boolean Type
标签的报告参数Display Column Name
。2)在“设计视图”中右键单击要隐藏的列或显示goto
"Column Visibility Tab"
然后选择“显示或隐藏基于 表达“。在你的表达式中
= Not Parameters!DisplayParam.Value
现在,在运行时,您的用户可以选择显示该列或隐藏 它。
如果您希望在没有任何输入的情况下显示或隐藏列 最终用户,您可以选择相同的路径,但在“显示或隐藏”中 表达式“使用你要显示它的条件或 隐藏它。