我有一个主报告,其中包含一个组part_id
,其中包含组头中的子报告。 子报告中有两个链接的参数。一个是part_id
,与主要组中的组相同,另一个是stores_code
。 part_id
参数工作正常,但stores_code
参数不正常。如果选择了stores_code
,那么它可以正常工作,但如果没有选择stores_code
,则子报表只返回一条记录。我原以为它会返回 stores_code
的所有part_id
。这是因为子报告位于组标题中吗?如果我删除了* 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_id
和stores_code
的选择是在此应用程序中进行的。它有点像黑盒子,因为我在主报告中实际上没有part_id
和stores_code
参数。该应用程序负责选择,但我不确切知道如何。
答案 0 :(得分:1)
如果您在'part_id'组标题中显示子报告,则可以指望可靠的唯一字段是'part_id'。如果每个组中有多个'stores_code',则只有该组的 first 记录的'stores_code'才会传递到子报告。这也适用于记录中的所有其他数据。
如果要根据某些'stores_code'通过用户参数过滤整个报表,则需要将主报表的参数值传递给子报表并在那里进行过滤。
答案 1 :(得分:0)
我最终取消了第二个参数的链接,并为其添加了“ALL”选项并相应地调整了选择公式。与此示例类似:
http://cogniza.com/wordpress/2005/11/24/crystal-reports-optional-multi-select-parameters/
答案 2 :(得分:0)
Crystal Report存在一些怪癖。在重新导入子报告之前,首先取消链接所有参数会更安全。重新导入后,您可以链接所有字段。否则你会遇到奇怪的问题。