【问题标题】:SSRS Report Builder 2012 - How to hide list based on field value?SSRS Report Builder 2012 - 如何根据字段值隐藏列表?
【发布时间】:2017-10-29 01:49:54
【问题描述】:

我正在使用 Report Builder 2012 创建报告。我在一个列表框中插入了多个文本框和其他控件,这样我就可以通过隐藏列表框来一次隐藏所有控件。我正在使用 SQL Server 存储过程来获取数据行。我正在使用下面的表达式来隐藏/显示列表框。

=iif(Fields!certificateType.Value = "CT", False, True)

它工作正常,但它只检查第一行数据。如果第一行数据中的certificateType 字段是“CT”,它会显示列表框,但对于certificateType 不是“CT”的下一行数据,它不会隐藏列表框。似乎列表框可见性仅检查第一行数据并将其应用于所有其他行。如何检查所有数据行列表的可见性?

【问题讨论】:

  • 是否有可能在设计模式下获取报表的一些屏幕截图,并将预览模式添加到这个问题中?无法完全想象您所描述的内容。
  • 我必须在问题中添加很多细节,因为这会让其他人难以理解。我们可以将讨论带到 Stackoverflow 聊天室,以便我向您展示吗?
  • 感谢您的帮助。
  • 没问题,我们可能不必这样做。让我问一个或两个问题。您的列表框是否嵌入在表/矩阵中,以便逐行评估表达式?或者,它只是单独坐在报告正文中?这就是我希望看到的一切。
  • 我会尽力让它变得简单。这是一个主列表框(矩形),它只包含 5 个其他子列表框(每个子框都有自己的控件)。现在,根据 CertificateType 字段的值,我只需要显示 5 个子列表框中的 1 个。当我运行预览模式时,它会检查第一行数据并根据 CertificateType 的值显示一个子框.它应该根据下一行数据显示其他一些子框,但事实并非如此。对于其余数据,只有一个子框保持打开状态。我的报告中没有表格/矩阵。

标签: reporting-services ssrs-2012


【解决方案1】:

好的,根据我们的聊天,我已经更新了这个解决方案。

我模拟了一些看起来像这样的数据:

certificateType
---------------
AT
BT
CT
DT
ZT

我创建了一个带有列表的快速而肮脏的报告。在那,我添加了一个带有文本框的矩形。我将列表的数据集设置为主数据集(在我的例子中为 DataSet1)。我将文本框的表达式设置为:

=Fields!certificateType.Value

设计模式下的图片:

我单击列表,然后在“行组”窗格中,右键单击“详细信息”行,然后选择“组属性”。在“常规”部分,我单击“添加”以添加新的组表达式。然后我从下拉列表中选择了certificateType

我移至“组属性”对话框的“分页符”部分并勾选了在组的每个实例之间复选框。点击确定。

现在,报告将针对数据集中出现的每个证书类型实例进行中断。因此,如果您的数据中有十种不同的证书类型,您将获得每一种的一页。

你在我下面的图片中看不到它,但现在有 5 页。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    相关资源
    最近更新 更多