zoukankan      html  css  js  c++  java
  • 水晶报表公式(转)

    一、公式组件
    二、公式语法
    三、公式类型
    ----------------------------------------------------------------
    公式包含两个关键部分:组件和语法。组件是创建公式所添加的部分,而语法是组织组件所遵循的规则。
    在 Crystal Reports 中有几种不同种类的公式:报表、格式化、选定、搜索、运行总计条件和警报公式。报表中的多数公式为报表公式和条件格式化公式。
    ----------------------------------------------------------------
    一、公式组件
    在 Crystal Reports 中创建公式与在任何电子数据表应用程序中创建公式类似。可以在公式中使用下列组件:

    字段
    示例:{客户.客户名}、{客户.去年销售额}

    数字
    示例:1、2、3.1416

    Text
    示例:“数量”、“:”、“您的文本”

    运算符
    示例:+(加)、/(除)、-x(求负)

    运算符是可以在公式中使用的操作。


    函数
    示例:Round (x)、Trim (x)

    函数执行求平均值、求和与计数之类的计算。列出所有可用的函数,其参数一并列出,并根据用途排列。

    自定义函数
    示例:cdFirstDayofMonth、cdStatutoryHolidays

    自定义函数提供了一种共享和重复使用公式逻辑的途径。它们可存储在 Crystal 储备库中,而后可将其添加到报表中。一旦自定义函数添加到报表后,当创建公式时,用户就可在“公式专家”中使用自定义函数。

    控制结构
    示例:“If”和“Select”、“For”循环

    组字段值
    示例:Average (fld, condFld)、Sum (fld, condFld, "条件")

    组字段值对组进行汇总。例如,可以使用组字段值来得出各个组在总计中所占百分比。
    其它公式
    示例:{@GrossProfit}、{@QUOTA}

    有关详细信息,请参阅公式语法。
    ----------------------------------------------------------------
    二、公式语法
    语法规则用于创建正确的公式。一些基本规则有:

    将文本字符串括在引号内。
    将参数括在括号内(在合适的位置)。
    引用的公式使用前导 @ 符号标识。
    Crystal 语法和 Basic 语法
    创建公式时,可以选择使用 Crystal 语法或 Basic 语法。几乎任何使用某种语法编写的公式都可以使用另一种语法来编写。报表可以包含使用 Crystal 语法的公式,也可以包含使用 Basic 语法的公式。

    Crystal 语法是包括在 Crystal Reports 的所有版本中的公式语言。

    如果熟悉 Microsoft Visual Basic 或 Basic 的其他版本,则您可能更熟悉 Basic 语法。总而言之,除了有特定扩展以处理报表外,Basic 语法以 Visual Basic 为模型。

    如果您已经习惯了 Crystal 语法,则可以继续使用它,并且可受益于由 Visual Basic 所产生的新函数、运算符和控制结构。

    注意:    

    记录选定和组选定公式不能用 Basic 语法编写。
    使用 Basic 语法不会减慢报表的处理过程。使用 Basic 语法公式的报表可以在运行 Crystal Reports 的任何机器上运行。
    使用 Basic 语法公式无需同报表一起分发任何附加文件。
    相关主题
    若要了解 Basic 语法,请参阅使用 Basic 语法创建公式。

    若要了解 Crystal 语法,请参阅使用 Crystal 语法创建公式。
    ----------------------------------------------------------------
    三、公式类型
    在 Crystal Reports 中有几种不同种类的公式:报表、格式化、选定、搜索、运行总计条件和警报公式。报表中的多数公式为报表公式和条件格式化公式。

    报表公式
    报表公式是在报表中创建的单独公式。例如,计算订购日期与发货日期之间天数的公式即为报表公式。

    条件格式化公式
    格式化公式更改报表的布局和设计,以及文本、数据库字段、对象或整个报表节的外观。通过“格式编辑器”来设置文本的格式。如果需要创建格式化公式,请从“格式编辑器”访问公式工作室。请参阅使用条件格式化。

    选定公式
    选定公式指定并限制在报表中出现的记录和组。您可直接输入这些公式,或者可使用“选择专家”指定选定内容。Crystal Reports 接着将生成记录选定和组选定公式。可以选择手动编辑这些公式,但必须使用 Crystal 语法。请参阅选择记录。

    搜索公式
    搜索公式帮助您在报表中定位数据。与选定公式类似,一般您不需要直接输入这些公式,而是使用“搜索专家”来指定搜索判据。Crystal Reports 生成该公式。可以选择手动编辑这些公式,但必须使用 Crystal 语法。

    注意:    如果您已经了解 Basic 语法,则只需要了解少量的 Crystal 语法便可以修改大多数选定公式和搜索公式。

    运行总计条件公式
    运行总计条件公式使您能够定义运行总计求值或重置所依据的条件。请参阅创建条件运行总计。

    警报公式
    警报公式帮助您定义报表警报的条件和消息。请参阅关于报表警报。


    水晶报表常用公式:
    1、创建计算字段添加到报表
    2、格式化报表上的文本
    3、提取文本字符串的一个部分或多个部分
    4、提取日期中的部分
    5、使用自定义函数
    ----------------------------------------------------------------
    公式有多种用途。如果需要特殊的数据操作,可以使用公式来完成。
    ----------------------------------------------------------------
    1、创建计算字段添加到报表
    计算打折 15% 后的价格:

    Crystal 语法示例:
    {订单细节.单价}*.85

    VB 语法示例:
    formula = {订单细节.单价}*.85
    ----------------------------------------------------------------
    2、格式化报表上的文本
    将“客户名称”字段中的所有值更改为大写字母:

    Crystal 语法示例:
    UpperCase ({客户.客户姓名})

    VB语法示例:
    formula = Ucase ({客户.客户姓名})
    ----------------------------------------------------------------
    3、提取文本字符串的一个部分或多个部分
    提取客户名称的第一个字母:

    Crystal 语法示例:
    {客户.客户姓名}[1]

    VB语法示例:
    formula = {客户.客户姓名} (1)
    ----------------------------------------------------------------
    4、提取日期中的部分:
    确定发出订单的月份:

    Crystal 语法示例:
    Month ({订单.订单日期})

    VB语法示例:
    formula = Month ({订单.订单日期})
    ----------------------------------------------------------------
    5、使用自定义函数
    将 $500 从美国货币转换为加拿大货币:

    Crystal 语法示例:
    cdConvertUSToCanadian (500)

    VB 语法示例:
    formula = cdConvertUSToCanadian (500)

    水晶报表警报
    目录:
    一、关于报表警报
    二、使用报表警报
    1、创建报表警报
    2、编辑报表警报
    3、删除报表警报
    4、查看报表警报
    5、在公式中引用报表警报

    ----------------------------------------------------------------
    一、关于报表警报
    报表警报是在 Crystal Reports 中创建的、当报表数据遇到特定条件时出现的自定义消息。报表警报可以指示用户将采取的操作或有关报表数据的信息。

    报表警报是用对指定条件进行计算的公式创建的。如果条件为真,则触发警报并显示出警报消息。消息可以是文本字符串或者是兼有文本和报表字段的公式。

    一旦触发报表警报,则直到您刷新报表数据时才会再次对该警报进行计算。

    报表警报是针对每个报表的,因此您需要决定何时使用它们,何时不使用它们。报表警报对于指出重要信息(如高于或低于某一界限的销售额)很有用。而且由于警报消息是由您创建的,因此也可针对您的数据。
    ----------------------------------------------------------------
    二、使用报表警报
    着重介绍为使用报表警报而需执行的任务:

    1、创建报表警报
    2、编辑报表警报
    3、删除报表警报
    4、查看报表警报
    5、在公式中引用报表警报
    ----------------------------------------------
    1、创建报表警报
    创建报表警报时,必须完成下列三个步骤:

    命名警报。
    定义触发警报的条件。
    创建希望在触发警报时显示的消息(此步骤是可选的)。
    创建报表警报
    在“报表”菜单上,指向“警报”,然后单击“创建或修改警报”。
    出现“创建警报”对话框。

    单击“新建”。
    出现“创建警报”对话框。

    在“名称”框中输入新警报的名称。
    在“消息”框中输入警报消息。
    “消息”框使您可以输入用作默认值的消息。如果希望每次触发警报时显示相同的消息,请在“消息”框中输入该消息。

    然而,如果希望使用公式以便用数据元素自定义消息,请参阅下一个步骤。

    如果希望使用公式创建警报消息,请单击“消息”框右侧的公式按钮。
    出现公式工作室。有关如何使用编辑器的信息,请参阅使用公式编辑器。

    输入警报消息公式。
    例如,如果希望看到消息“Country is a star performer”(其中 Country 是某个具体国家/地区的名称),可以创建下列公式:

    GroupName ({Customer.Country}) + " is a star performer"

    注意:    

    警报消息公式的结果必须是一个字符串。
    DefaultAttribute 函数可用于引用添加到“消息”框中的消息。例如,如果“消息”框中的消息是“is a star performer”,则警报消息公式可以是:
    GroupName ({客户.国家或地区}) + DefaultAttribute

    该公式依赖于您在“消息”框中输入的文本,那些文本成为 DefaultAttribute。

    消息条件公式可以使用 Crystal 语法或 Basic 语法来创建。
    单击“条件”。
    随即出现公式工作室。

    输入警报条件公式。
    警报公式可以基于重复性记录或基于汇总字段,但不能基于打印时间字段(如运行总计或打印时间公式)。警报公式不能有共享变量。

    如果警报公式基于汇总字段,那么所使用的任何重复性字段必须在汇总字段中保持不变。例如,如果按照“国家/地区”、“地区”和“城市”分组,可以创建如下警报:

    Sum ({客户.去年销售额}, {客户.地区})

    在本例中,您的公式可以引用“国家/地区”或“地区”,但不能引用“城市”或“客户姓名”,因为它们是变化的。

    注意:    警报条件公式可以使用 Crystal 语法或 Basic 语法来创建。

    如果不希望计算警报,请清除“启用”复选框。
    否则,保留它的选中状态。

    单击“确定”保存警报。
    随即返回到“创建警报”对话框,并且列出了您的新警报。您可以看到它的名称和状态(“启用”或“禁用”)。



    在“创建警报”对话框中仅显示已启用和已禁用的警报。如果触发警报,则可以在“报表警报”对话框中看到它。
    ----------------------------------------------
    2、编辑报表警报
    在“报表”菜单上,指向“警报”,然后单击“创建或修改警报”。
    在“创建警报”对话框中,选择要编辑的警报,然后单击“编辑”。
    提示:    双击警报也可以对它进行编辑。

    在“编辑警报”对话框中进行所需的更改。
    单击“确定”保存更改。
    注意:    如果已经触发警报,编辑它时会将其从“报表警报”对话框中删除。
    ----------------------------------------------
    3、删除报表警报
    在“报表”菜单上,指向“警报”,然后单击“创建或修改警报”。
    在“创建警报”对话框中,选择要删除的警报,然后单击“删除”。
    所选警报随即从“创建警报”对话框中删除。

    注意:    如果已经触发警报,删除它时还会将其从“报表警报”对话框中删除。
    ----------------------------------------------
    4、查看报表警报
    可以通过下列方式查看触发的报表警报:

    刷新报表数据。
    从“报表”菜单的“警报”子菜单中选择“已触发的警报”。
    注意:    如果希望在报表数据刷新时查看警报,必须在“选项”对话框的“建立报表”选项卡上选择“刷新时显示警报”(该选项在“报表选项”对话框中也可用)。

    查看报表警报
    在“报表”菜单上,指向“警报”,然后单击“已触发的警报”。
    出现“报表警报”对话框。



    选择要查看其记录的警报。
    单击“查看记录”。
    一个新报表选项卡打开,显示出触发警报的报表记录。如果记录是隐藏的,则记录组会显示出来,但不进行深化。

    注意:    如果单击“查看记录”按钮之前选择的已触发警报不止一个,则结果是通过对所选警报执行 AND 布尔运算来生成的。

    若要返回到“报表警报”对话框,请单击“预览”选项卡。
    单击“关闭”关闭“报表警报”对话框。
    ----------------------------------------------
    5、在公式中引用报表警报
    可以在公式中引用警报。引用警报的任何公式都将成为打印时间公式。

    有下列函数可用:

    IsAlertEnabled( )
    IsAlertTriggered( )
    AlertMessage( )
    这些函数的行为与在“创建警报”对话框中创建的警报相同:

    IsAlertTriggered("AlertName") 仅对于触发警报的记录为真。
    AlertMessage("AlertName") 在警报为真时显示记录的消息。
    因为警报不是字段对象(不能把它们放到报表中),所以它们的表示形式与公式工作室中的报表字段不同。在“函数”树中,可以看到函数本身所在的“警报”标题。可用警报按名称列在此标题下方。
  • 相关阅读:
    项目01-nginx模块
    Spark机器学习
    项目01-手机端模块
    Spark内存管理
    Spark Streaming
    Spark SQL
    Spark Job调度
    Spark master节点HA配置
    机器学习
    07、Spark集群的进程管理
  • 原文地址:https://www.cnblogs.com/zhangpengshou/p/1528588.html
Copyright © 2011-2022 走看看