映射到报表查询构建器的存储过程动态地返回值,表示一次8列,有时是6列。我的问题是如何为额外添加的列命名标题?
答案 0 :(得分:1)
对于每个动态列,右键单击列标题并选择属性。在属性窗格的“可见性”部分下,单击“隐藏”旁边的向下箭头,然后选择<Expression...>
。粘贴以下内容并更改字段名称以匹配您的数据库。
=IIf(Fields!name.Value Is Nothing, True, False)
运行报表时,如果动态列中的值为NULL,则将隐藏该列。如果它包含非空值,则将显示列。
答案 1 :(得分:1)
需要记住的一件重要事情:当我们绑定动态数据集时,SSRS无法检测数据集中存在的字段。为此,我们需要在数据集中指定所有可能的字段,为此,请按照以下步骤操作:
答案 2 :(得分:0)
您是否尝试过在您的sp中执行COALESCE
,在那里您总是可以找到这两个“动态”列?像COALESCE(sp.YourColumn, NULL)
这样的东西。然后,您将能够在报表中创建表达式,并在返回NULL或空白时隐藏该列。也许类似于Visbility = IIF(Fields!DynamicField1.Value is Nothing, False, True)
。
答案 3 :(得分:0)
调整存储过程,以便始终返回8列。如果您不希望它们出现在报告中,只需在两个动态列中返回NULL。
对于每个动态列,右键单击列标题并选择属性。在属性窗格的“可见性”部分下,单击“隐藏”旁边的向下箭头,然后选择<Expression...>
。粘贴以下内容并更改字段名称以匹配您的数据库。
=IIf(Fields!name.Value Is Nothing, True, False)
运行报表时,如果动态列中的值为NULL,则将隐藏该列。如果它包含非空值,则将显示列。
祝你好运,欢迎来到网站!