【问题标题】:Crystal Report linked subreport parameter not working properlyCrystal Report 链接的子报表参数无法正常工作
【发布时间】:2015-10-28 04:08:18
【问题描述】:

我有一个包含一组 part_id 的主报告,该报告在组标题中包含一个子报告。 子报告中有两个链接参数。一个是part_id,与主组相同,另一个是stores_codepart_id 参数工作正常,但 stores_code 参数不工作。如果选择了stores_code,那么它可以工作,但如果没有选择stores_code,那么子报表只返回一条记录。我期待它会返回所有stores_code 为此 part_id。这是因为 subreportgroup header 中吗?如果我删除指向 *stores_code* 的链接,那么所有记录都会显示在子报告中,但我遇到了相反的问题。如果用户选择特定的stores_code,子报表仍会显示所有记录。

我的研究使我相信我需要将参数设置更改为allow multiple and/or to make it optional and/or give it a default and/or allow null values for the parameter。但是,我使用的是添加子报表链接时 Crystal 自动创建的参数。当您右键单击这些参数时,编辑选项不可用。所以我想我需要制作自己的参数,更改设置,然后链接到它们。但是,当我创建自己的参数并链接到它们时,select data based on subreport field 选项不可用。

为了使这一点更加清晰,这些报告是从第三方应用程序运行的。 part_idstores_code 的选择是在此应用程序中进行的。这是一个黑匣子,因为我在主报告中实际上没有part_idstores_code 参数。该应用程序负责选择,但我不知道具体如何。

【问题讨论】:

  • 子报表中的{stores_code}参数是如何使用的?是存储过程参数还是在记录选择公式中使用?
  • 在选择公式中使用。 Crystal 用 {?Pm-Param2} = {field2} 之类的东西添加它。我将“=”改为“IN”,但没有用。

标签: crystal-reports report


【解决方案1】:

如果您在“part_id”组标题中显示子报表,那么您唯一可以信赖的字段是“part_id”。如果每个组中有多个“stores_code”,则只有组的第一个记录的“stores_code”将传递给子报表。这也适用于记录中的所有其他数据。

如果您想通过用户参数根据某些“stores_code”过滤整个报告,那么您需要将主报告的参数值传递给子报告并在那里进行过滤。

【讨论】:

  • 您好,感谢您的回复。我认为您是对的,但我无权访问主要报告参数值。主报表中没有选择公式。我认为应用程序只是将选择添加到发送到数据库的查询中。
【解决方案2】:

我最终取消了第二个参数的链接,并为其添加了“ALL”选项并相应地调整了选择公式。类似于这个例子:

http://cogniza.com/wordpress/2005/11/24/crystal-reports-optional-multi-select-parameters/

【讨论】:

    【解决方案3】:

    Crystal Report 有一些怪癖。在重新导入子报表之前,先取消所有参数的链接会更安全。重新导入后,您可以链接所有字段。否则你会遇到奇怪的问题。

    【讨论】:

      猜你喜欢
      • 2016-05-19
      • 1970-01-01
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多