水晶报表-公式引用
2011-04-11 16:14
197 查看
创建公式时,可以选择使用 Crystal 语法或 Basic 语法。几乎任何使用某种语法编写的公式都可以使用另一种语法来编写。报表可以包含使用 Crystal 语法的公式,也可以包含使用 Basic 语法的公式,但一个公式只能使用一种语法。
如果熟悉 Microsoft Visual Basic 或 Basic 的其他版本,则您可能更熟悉 Basic 语法。通常情况下,Basic 语法与 Visual Basic 相似,不同的是它有可以处理报表的特定扩展。
Crystal 语法
Crystal 语法基础
公式返回的值可以是所支持的七种简单数据类型之一。这些数据类型是:数字、货币、字符串、布尔值、日期、时间和日期时间。
例如,假设一个公司有这样的送货政策,即一千美元以上的订货可享受保险,而低于此金额的订货没有保险:
[/code]
[/code]
字段(Crystal 语法)
数据库字段名称取自于数据库:{Employee.Last Name}
创建字段时指定参数、公式、运行总计、SQL 表达式等字段的名称。
参数字段包含一个问号:{?my parameter field}
公式字段包含一个 @ 符号:{@another formula}
运行总计字段包含一个 # 符号:{#my running total}
SQL 表达式字段包含一个百分比符号:{%my SQL expression}
汇总和组名字段看起来象函数调用。但是,它们实际上是报表字段的速记写法。
汇总字段求和:Sum({Orders.Order Amount}, {Orders.Ship Via})
组名字段:GroupName({Orders.Ship Via})
示例
该示例中的公式使用 Xtreme 数据库。若要得出自订购日期以来的送货天数,请从订购日期数据库字段中减去送货日期数据库字段:
[/code]
若要得出某一给定订购产品的美元总金额,请将其单价乘以订购数量:计算原单价 80% 的售价:
表达式(Crystal 语法)
[/code]
赋值(Crystal 语法)
[/code]
[/code]
如果熟悉 Microsoft Visual Basic 或 Basic 的其他版本,则您可能更熟悉 Basic 语法。通常情况下,Basic 语法与 Visual Basic 相似,不同的是它有可以处理报表的特定扩展。
Crystal 语法
Crystal 语法基础
公式的结果
公式的结果(即将公式置于报表中时所显示的值)称为公式返回值。公式返回的值可以是所支持的七种简单数据类型之一。这些数据类型是:数字、货币、字符串、布尔值、日期、时间和日期时间。
例如,假设一个公司有这样的送货政策,即一千美元以上的订货可享受保险,而低于此金额的订货没有保险:
If {Orders.Order Amount} >= 1000 Then "投保货运" Else "普通货运"
[/code]
若数据库字段 {订单.订单金额} 的值大于或等于 1000,则以上公式返回文本串值“投保货运”,否则返回文本串值“普通货运”。基于表达式的语法
Crystal 语法公式由一系列表达式组成。表达式是产生给定类型值的关键字、运算符、函数和常量值的任意组合。最后一个表达式的值是公式返回的值,并打印出来。每个表达式必须用分号 (;) 与前面的表达式隔开。 在理解 Crystal 语法时,认识到 Crystal 语法公式由一系列表达式组成,最后一个表达式的值作为公式的结果这一点很重要。这种基于表达式的语法使您得以编写具有许多功能但非常短的公式。大小写
Crystal 语法公式中所使用的所有变量名称、函数和关键字都不区分大小写。例如,键入的关键字 Then 与 then 或 THEN 相同。 该规则的唯一一个例外是字符串。字符串“Hello”和字符串“hello”是不相同的。
注释(Crystal 语法)
公式注释是包含在某一公式中的注释,用以解释其设计和操作。注释不打印出来,并且不影响公式;它们只出现在公式编辑器中。使用注释解释公式的目的或解释编写公式所涉及的步骤。
注释以两个反斜线 (//) 开始,后面是注释文本。同一行中斜杠后面的所有文字都被看作是注释的一部分:
//此公式返回字符串“Hello”。 //这是另一个注释。 "Hello" //可以在一行的结尾添加注释。 //注释可以出现在公式文本之后。
[/code]
字段(Crystal 语法)
字段如何在公式中显示
数据库、参数、公式、运行总计、SQL 表达式等字段的名称均用花括号括起来。数据库字段名称取自于数据库:{Employee.Last Name}
创建字段时指定参数、公式、运行总计、SQL 表达式等字段的名称。
参数字段包含一个问号:{?my parameter field}
公式字段包含一个 @ 符号:{@another formula}
运行总计字段包含一个 # 符号:{#my running total}
SQL 表达式字段包含一个百分比符号:{%my SQL expression}
汇总和组名字段看起来象函数调用。但是,它们实际上是报表字段的速记写法。
汇总字段求和:Sum({Orders.Order Amount}, {Orders.Ship Via})
组名字段:GroupName({Orders.Ship Via})
示例
该示例中的公式使用 Xtreme 数据库。若要得出自订购日期以来的送货天数,请从订购日期数据库字段中减去送货日期数据库字段:
{Orders.Ship Date} - {Orders.Order Date}
[/code]
若要得出某一给定订购产品的美元总金额,请将其单价乘以订购数量:计算原单价 80% 的售价:
{Orders Detail.Unit Price} * {Orders Detail.Quantity}
{Orders Detail.Unit Price} * 0.80
表达式(Crystal 语法)
表达式是产生给定类型值的关键字、运算符、函数和常量值的任意组合。例如:
//计算结果为数字值 25 的表达式10 + 20 - 5//计算结果为字符串值“这是字符串。”的表达式“这是字符串。”
[/code]
Crystal 语法公式由一系列表达式组成。最后一个表达式的值是公式返回的值,并打印出来。每个表达式必须用分号 (;) 与前面的表达式隔开。
赋值(Crystal 语法)
赋值运算符是一个冒号后面跟一个等号 (:=)。
例如:
//将数字值 10 赋给变量 x。 x := 10; //将字符串值“hello”赋给名为 greeting 的变量。 greeting := "hello";
[/code]
等于运算符 (=) 用于检查两个值是否相等。常见的错误是实际上应该使用赋值运算符时使用等于运算符。这可能生成某个奇怪的错误信息,
或者因为使用等于运算符在语法上通常是正确的,所以根本没有错误信息出现。例如:
greeting = "hello";
[/code]
上面的公式检查变量 greeting 保存的值与“hello”的值是否相等。如果相等,表达式的值为真,如果不相等,表达式的值则为假。在任何情况下,
这都是完全正确的 Crystal 语法表达式(假设 greeting 是字符串型变量)。
相关文章推荐
- 水晶报表动态设置字段宽度(包括公式文本字段)
- 水晶报表公式使用
- 水晶报表公式的典型用途示例汇总
- [转]c#编程更改水晶报表中公式字段示例代码 [http://blog.csdn.net/xwdd129/archive/2006/05/29/760661.aspx]
- 水晶报表公式使用必读
- VB.Net水晶报表:记录选择公式无效,显示出所有记录的解决方法
- 水晶报表传递参数及使用公式参数
- 【水晶报表内功心法】--公式、函数与运行时总计
- 水晶报表编写高效记录选定公式的策略 -Crystal Reports
- 水晶报表公式字段使用示例和公式字段语法【深海原创】
- 【转】水晶报表--公式、函数与运行时统计
- 水晶报表公式使用必读
- 掌控于股掌之间-代码中传参数、传公式、操作水晶报表里的所有对象
- 水晶报表当前页汇总公式
- 水晶报表常用公式
- 【水晶报表内功心法】--公式、函数与运行时总计
- 水晶报表参数and公式双管齐下
- Vs2010中水晶报表引用及打包
- 水晶报表公式使用
- 水晶报表公式(转)