前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >水晶报表常用公式

水晶报表常用公式

作者头像
斯文的程序
发布2019-11-07 17:28:34
发布2019-11-07 17:28:34
3.1K0
举报
文章被收录于专栏:带你回家带你回家

一.公式字段使用示例:

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}; //计算总价格 If cValue < 200 Then cValue Else If cValue < 1000 Then cValue * 0.95 Else cValue * 0.93

D.条件统计 Crystal Reports提供了一些基本的统计功能,可以按分组进行统计。但是实际应用中的统计往往更为复杂。比如,我们需要根据一定的条件进行统计。假定我们要统计每组中单价超过10元的商品的销售数量。我们可以先在报表的Detail部分插入一个公式。假定该公式名字为ConditionSum,在公式内输入如下内容: If {Order Details.UnitPrice} < 10 Then 0 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.函数   水晶报表支持大量函数,包括数学函数、统计函数、日期函数、字符串函数、数组函数等等。在水晶报表的帮助文件对每个函数都有详细的介绍。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档