Crystal Reports设置全局子报表变量

时间:2011-11-01 14:37:00

标签: syntax crystal-reports crystal-reports-xi

我正在尝试在子报表中设置几个全局变量,以便它拉取并存储每个变量所需的数据。

假设我进入配方研讨会并创建一个新公式。现在我有

Global numbervar name:= ; 

我有一个包含多个字段的表。我有一个名为{table.order}的字段,另一个名为{table.amount}。这两个都是数字。当订单为-1时,如何将相关金额字段中的金额分配给此变量?我根本不熟悉水晶语法。

在此之后,我需要在报告中拖放此公式以获取此数据,还是仅仅在公式资源管理器中创建公式?如果需要将其物理拖入报表中,是否会显示任何内容或者我是否需要对其进行抑制以使其不可见,如果是这种情况,它是否仍会被抑制? 感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:1)

您是否尝试将此变量中的值传回主报告?如果是这样,您需要将其设为Shared Numbervar,而不是Global Numbervar。

回答你的问题;创建这个公式:

global numbervar name;
if {table.order} = -1 then name := {table.amount}

...并将其放入子报表的详细信息部分。请注意,将不会运行您创建但未放置在实际报告中的任何公式,摘要,运行总计,SQL表达式等。但是,将其放入报告后,显示。要防止这种情况,请右键单击该字段,转到“公共”选项卡,然后选中“抑制”。该公式在被压制时仍然有效。

要记住的另一件事是,如果您的子报表包含多行数据,则会为每个数据覆盖该变量。