⽔晶报表公式字段使⽤⽰例和公式字段语法【深海原创】 A.计量单位转换
这是⼀个⾮常简单的例⼦,主要是为了演⽰在公式中进⾏不同变量类型的转换和计算。
有时数据库字段的单位和报表中显⽰的单位不同,我们需要进⾏计量单位之间的转换,这时就离不开公式的使⽤。⽐如,我们的数据库中有⼀个Length字段,它记录以⽶为单位的长度,⽽在打印时需要以厘⽶为单位,我们就可以使⽤下⾯的函数。 林书宇
ToText({Order Details.Length} *100) + "厘⽶"
这⾥的ToText函数就是转换数字型为字符型。常⽤的转换函数还有ToNumber等。
B.中⽂星期
我们在打印报表时经常会遇到显⽰中⽂星期的问题。Crystal Reports有DateOfWeek函数可以判断⼀个⽇期是星期⼏,⽐如DateOfWeek返回4时表⽰星期三。我们可以使⽤下⾯的公式来显⽰中⽂星期。这⾥的Today函数只是⼀个⽰例,你可以将其修改为你所需的⽇期函数或字段。衡茶吉铁路
StringVar x;
NumberVar n;
x:="⽇⼀⼆三四五六";
n:=DayOfWeek (Today);
x:="星期"+x[2*n-1 to 2*n]
前两⾏,我们定义了字符串变量x和数字变量n。⼀个公式可以有很多⾏,但只有最后⼀⾏的计算结果才会作为整个公式的结果打印在报表中。
C.条件计算
在这个例⼦中我们重点演⽰如何使⽤If-Then-Else操作符。
条件计算在报表中使⽤得⾮常普遍。例如,我们要根据⽤户购买的总价格决定折扣的多少。我们假定⽤户购买200元以下的产品,不打折;200元到1000元提供5%的折扣;1000元以上提供7%的折扣。我们可以使⽤下⾯的公式计算最终⽤户需要付多少钱。
CurrencyVar cValue;
cValue := {Order Details.UnitPrice} *{Order Details.Quantity}; //计算总价格
huvec细胞If cValue < 200 Then
共享雨伞现身杭州cValue
杨应楠
Else If cValue < 1000 Then
cValue * 0.95
Else
cValue * 0.93
Crystal Reports提供了⼀些基本的统计功能,可以按分组进⾏统计。但是实际应⽤中的统计往往更为复杂。⽐如,我们需要根据⼀定的条件进⾏统计。假定我们要统计每组中单价超过10元的商品的销售数量。我们可以先在报表的Detail部分插⼊⼀个公式。假定该公式名字为ConditionSum,在公式内输
⼊如下内容:
If {Order Details.UnitPrice} < 10 Then
Else
{Order Details.Quantity}
公式字段的语法⽐较简单,但⽀持的操作符和函数⾮常多。在公式中可以使⽤变量、常量。也可以引⽤数据库字段,其格式为:{库名.字段名}
A.操作符
⽔晶报表⽀持⼤量的操作符,有些是常见的,也有些是Crystal Reports特有的。
B.算术操作符
⽔晶报表⽀持+、-、*、/,还⽀持%(百分⽐)操作符,如100 % 500 = 20。
C.转换操作符
转换操作符为$,它将数字转换为货币型,这样⽔晶报表会按照报表中的货币格式设置打印数据。
D.⽐较操作符
⽔晶报表⽀持的⽐较操作符与Visual Basic相同:=、<>、<、>、>=、<=。
E.字符串操作符
字符串连接的操作符为“+”。什么是小三通
从字符串中取指定的字符使⽤“[]”操作符,相当于Visual Basic的Mid函数。“[]”内为字符的位置,第⼀个字符的编号为1。如:{file.ItemNumber} [4 to 5]
判断⼀个字符串是否包括在另⼀个字符串使⽤in操作符。⽐如:"c" in "pcc"返回True。
F.范围操作符
⽔晶报表允许⽤户建⽴⼀个范围,并判断数据是否包括在指定范围内。如“100.00 to 250.00”包括100到250之间的数据,⽽使⽤“50 in (100 to 250)”可以判断50是否在指定的范围内。
G.布尔操作符
布尔操作符包括And、Not和Or。
H.数组操作符
⽔晶报表⽀持数组,⽐如[100,200,300,400]是⼀个由4个元素组成的数组。可以使⽤in操作符判定数据是否是⼀个数组的元素,如:{file.State} in ["CA", "HI", "AK"]。
I.匹配操作符
匹配操作符包括StartsWith和Like。StartsWith判断⼀个字符串是否以指定的字符串开头,如"PCC" startwith "P"返回True。Like操作符的⽤法类似Visual Basic,也是将字符串表达式和通配符表达式中的样式做⽐较。
J.其他操作符
另⼀个重要的操作符是If…Then … Else …,就是我们所熟悉的条件判断,在我们后⾯得⽰例部分可以看到这个操作符的威⼒。
如果要为变量赋值,需要使⽤“:=”符号,这是与Visual Basic不同的。
在公式中也可以加上注释以⽅便阅读。注释符号为“//”,“//”符号后⾯的内容将被忽略。
公式中也可以包括多个语句⾏,⾏尾使⽤“;”分割。
K.函数
⽔晶报表⽀持⼤量函数,包括数学函数、统计函数、⽇期函数、字符串函数、数组函数等等。在⽔晶报表的帮助⽂件对每个函数都有详细的介绍。
备注:部分参考有汇总和修改!部分是项⽬实战经验!