Crystal Reports Designer  

Basic 语法基础

常见的功能

公式的结果

公式的结果(即将公式置于报表中时所显示的值)称为公式返回值。Crystal Reports 中的每个公式均必须返回一个值。Basic 语法通过为特殊变量 formula 设置值使公式能够返回值。例如,下面是一个简单的 Basic 语法公式,返回值 10:

formula = 10

由公式返回的值可能是所支持的 7 种简单数据类型中的一种:数字、货币、字符串、布尔值、日期、时间和日期时间。Crystal Reports 还支持范围类型和数组类型,但公式无法返回这些类型。

必须给变量 Formula 赋值

若未给变量 formula 赋值,它就不是完整的 Basic 语法公式。

有时可能想编写只是声明和初始化一些全局变量的公式。通常将这些公式插入报表的报表页眉节。在这种情况下,给特殊变量 formula 赋以任意值。每个公式都必须返回一个值,即使您对使用该值不感兴趣。

示例

Rem Some Global variable declarations
Rem Remember to set the value of 'formula'
Global x As String, y As Number, z As DateTime
x = "hello"
y = 10.5
z = #Aug 6, 1976#
formula = 10

数据类型和 Formula 变量

在单个公式中可以设置几次 formula 变量。例如,假设一个公司有这样的送货政策,即一千美元以上的订货可享受保险,而低于此金额的订货没有保险:

Rem A formula that returns a String value
If {Orders.Order Amount} >= 1000 Then
   formula = "Insured shipping"
Else
   formula = "Regular shipping"
End If

若数据库字段 {订单.订单金额} 的值大于或等于 1000,则以上公式返回文本串值“投保发货”,否则返回文本串值“普通发货”。请注意,在以上示例中 formula 变量出现了两次。

若 formula 变量设置为某一类型的值,则后面不能在同一个公式中将该变量设置为另一种类型的值。例如,将上例中的字符串“普通发货”用数字“10”替换会导致错误,因为特殊变量 formula 最初已设置为字符串值“投保发货”。

这样限制是因为 Crystal Reports 需要预先知道公式将返回何种类型,以便可以为返回的值分配足够的存储空间。这是因为不同的类型需要不同的存储空间。另一个原因是公式字段可用的格式化选项取决于其类型。例如,“数字”字段有数字格式化选项(如要显示的小数位数),而这对于“字符串”字段来说则毫无意义。

注意   特殊变量 formula 无须声明,这一点与 Basic 语法公式中的其他变量不同。

大小写

Basic 语法不区分大小写即 formulaFormula FORMULA 被看作是相同的。这一点也适用于 Basic 语法公式中使用的所有变量名、函数和关键字。

注意   该规则唯一的例外是字符串。字符串“Hello”和字符串“hello”是不相同的。

练习使用 Xtreme 示例数据库

本节中的许多示例引用 Xtreme 示例数据库(可以从 Java 开发人员交流区下载此数据库)。要下载 Xtreme 示例数据库,请转到 http://www.businessobjects.com/products/dev_zone/java/default.asp

另请参见

比较 Basic 语法公式与 Visual Basic 中的函数 | 变量