Crystal Reports - 创建变量


与固定的常量不同,变量用于为对象分配不同的值。当您为变量分配一个值时,它会保留该值,直到您为其分配新值为止。在使用变量之前,有必要在报表中定义它们。

当您在 Crystal Report 中声明变量时,您需要为其指定一个名称,但是该名称不应与任何其他函数、运算符等相同。变量可以是数字类型、字符串类型、日期类型、布尔类型类型、范围类型或数组类型。变量可以保存单一类型的值,就像您将其声明为数字一样,以后它就不能用于保存字符串值。

定义变量

Local Stringvar Customer_Lastname
Local numbervar Sales_percentage

声明变量的关键字末尾有“var”,并且对于所有变量类型都是如此。您还可以通过声明或单独的语法为变量分配初始值。

Local NumberVar Z; //Declare Z to be a Number variable
Z := 30;           //Assign the value of 30 to Z

要在公式中使用变量,需要定义其范围。变量范围可以分为三种类型 -

  • 当地的
  • 全球的
  • 共享

这定义了一个公式中的变量可以在其他公式中使用。

局部变量

局部变量是使用 local 关键字声明的,后跟类型和变量名称,如上面的示例所示。

局部变量仅限于单个公式。这意味着您无法从一个公式中访问另一公式中的局部变量的值。

//Formula 1
Local NumberVar Z;
Z := 30;

//Formula 2
EvaluateAfter ({@Formula A})
Local NumberVar Z;
Z := z + 5;

在上面的示例中,公式 2 将返回值 5,因为 Z 在公式 1 中被声明为局部数字变量,因此它将采用公式 2 中变量 Z 的默认值。

全局变量

全局变量在整个主报告中使用。它们的值可用于声明变量的所有公式(子报表中的公式除外)。

Global StringVar Z;

建议仅当局部变量无法满足需求时才使用全局变量。

由于全局变量在整个主报表中共享其值,因此您不能在具有一种类型的一个公式中声明一个全局变量,然后在具有不同类型的不同公式中声明一个具有相同名称的全局变量。

共享变量

共享变量在主报告及其所有子报告中使用。共享变量甚至比全局变量更通用。

要使用共享变量,请在主报告的公式中声明它 -

Shared NumberVar Z := 10;

要使用共享变量,必须对其进行声明并赋值,然后才能在主报表和子报表中使用。