【问题标题】:How can I select all parameters to run a report, but have them run independently如何选择所有参数来运行报告,但让它们独立运行
【发布时间】:2021-09-14 21:16:31
【问题描述】:

我的质量工程师要求我根据他们手动填写的文档创建一份报告。乍一看,这似乎是一个很容易的请求。这绝非易事。该报告显示了两次检查的结果,我有一个参数,用户可以在其中选择一项检查。正如现在所掌握的那样,在选择一次检查时,此报告运行得很好,但我期待能够同时运行两种检查的报告。而且,这就是我遇到麻烦的地方。

问题是我在标题中有一个文本框,它引用了报告中标识检查的表中的值。当我将参数设置为多值参数并全选时,报告仅显示整个报告中的一项检查。是否可以让用户选择两个检查但让报告分别运行它们?我有一个表的数据集和该表中用于标识检查的列。我尝试了多值参数,并尝试使用数据集属性中的过滤器选项,但我得到了相同的结果。

【问题讨论】:

  • 你的问题真的不清楚,我很难理解它。我不知道这是否是您要问的,但通常当您有一个多值参数时,您会在报表上显示选定的参数标签,而不是数据集中的值。因此,如果您允许您的用户选择“选项 1”或“选项 2”或两者,您可以编写一些逻辑来显示所选参数值的标签。但是一些澄清细节确实有助于解决这个问题。
  • 我的查询,我在 WHERE 子句中有一个用于检查的参数。因此,当用户选择检查时,它将提取该数据。如果用户选择 XRAY,标题下方将显示“XRAY”。同样,如果他们选择 NEUTRON。正如我所提到的,如果您选择一项检查或另一项检查,它将正确显示在标题下方。但是,如果您同时选择两项检查,则整个报告的标题下只会显示一项,而不管显示的是哪些检查数据。 - 大卫
  • 您的数据源可能会在每次“检查”时返回多行。同样,每次检查由多行组成。所以你现在需要在报表中使用分组。还可能您希望在打印时每次检查都在新页面上开始(也可能出于显示目的)。
  • 我已经添加了一个答案,但是在阅读了 cmets 之后,如果您唯一的问题是显示两个参数标签,那么您可以使用类似 =JOIN(Parameters!Inspection.Label, " ")
  • List 控件允许您根据分组条件重复报告的各个部分。因此,您添加列表,并告诉它要分组的内容,然后将报表组件添加到列表中,它们将显示按列表行当前显示的内容过滤的数据。因此,这将允许您根据需要在每次“检查”中重复或多或少地重复您的报告。

标签: sql-server reporting-services


【解决方案1】:

执行此操作的最简单方法可能是创建一个新的主报告并将您当前的报告用作子报告。这很简单。

这是基本步骤...

复制您当前的报告并重命名(例如sub_InspectionReport) 更改此报告,使检查参数为 NO 多值

创建一个新报告并添加与您为原始报告设置相同的参数,这次确保您的检查参数(例如pInspectionIS是多值的。

创建一个数据集 (dsInspectionIDs),该数据集返回从 pInspection 参数中选择的检查值列表。查询可能很简单,例如

SELECT InspectionID FROM myInspectionTable WHERE InpectionID IN (@pInspection)

注意:@pInspection是您的报告参数的名称,区分大小写。

现在向报告中添加一个表格,作为一个简单的测试,将表格的数据集设置为您的数据集dsInspectionIDs。将第一列设置为显示唯一可用的字段(在此示例中为 InspectionID)。

使用不同的检查参数选择运行报告并测试输出。该表应与您选择的内容相匹配...

我们快到了……

现在在其中一个表格单元格中(但不在标题中),右键单击并选择“插入/子报表”。现在右键单击子报告占位符并将子报告设置为我们在开始时制作的原始报告的副本(在此示例中为sub_InspectionReport)。现在,仍然在子报告属性中,转到参数选项卡并将 Inspection 参数设置为 InspectionID 字段。

现在,当您运行报表时,您将为每个选定的参数值运行一次子报表,并将该参数传递给子报表。

希望这是有道理的,我不在我的电脑附近,所以我目前无法提供带有图像的示例。

【讨论】:

  • 我无法让子报表工作,但我认为这与我对报表服务器的访问权限或缺乏访问权限有关。 IT 仍然没有授予我访问权限。我也尝试使用列表,但它也做了同样的事情,它只显示整个报告的一项检查。感谢您在这方面的帮助,但我想我会保留报告原样并告诉工程师他们必须单独选择检查。
猜你喜欢
  • 2022-06-14
  • 1970-01-01
  • 2021-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多