




已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
水晶报表内部教育训练教材,水晶报表的基本语法水晶报表的分组和公式应用宋彩云系统工程课WEB组制作时间2007/01/12,一CryStal语法基础知识,1.CryStal语法不区分大小写但有一个例外是字符串如字符串”Hello”与”hello”是不相同的2.,3.字段在公式中的显示,示例,4.赋值(Crystal语法),5.CryStal语法中的变量类型,5.1.基本类型NumberVar数字型CurrencyVar货币型StringVar字符型BooleanVar布尔型DateVar日期型TimeVar时间型DateTimeVar日期时间型,5.2.范围数据类型,范围旨在处理一系列的值。除布尔值以外,所有简单类型都可以使用范围类型。即:数字范围、货币范围、字符串范围、日期范围、时间范围和日期时间范围。可以使用To、_To、To_、_To_、UpTo、UpTo_、UpFrom和UpFrom_关键字生成范围。一般情况下,To用于有两个终结点的范围,UpTo和UpFrom用于半开半闭区间的范围(只有一个终结点)。下划线用于表示终结点是否在范围内。,“数字范围”值示例,在公式中使用范围(Crystal语法),6.变量声明(Crystal语法),在公式中使用变量前必须声明它。变量可以保持某个给定类型的值。允许的类型是七种简单类型(数字、货币、字符串、布尔值、日期、时间和日期时间),六种范围类型(数字范围、货币范围、字符串范围、日期范围、时间范围和日期时间范围)以及保持上述类型数组的变量。这为变量提供了总共26种不同的类型。声明变量时,还指定了它的名称。变量不能与任何对Crystal语法有效的函数、运算符或其它关键字同名。例如,变量不能被命名为Sin、Mod或If,因为Sin是内置函数,Mod是内置运算符,而If是内置关键字。当在公式工作室中键入公式时,内置函数、运算符或其它关键字的名称均以不同的颜色突出显示,因此很容易检查出变量名是否冲突。变量一经声明后,即可在公式中使用。例如,可能希望为其赋以一个初始值:LocalNumberVarx;/将x声明为“数字”变量x:=10;/将10赋给x,示例,7.变量作用域(Crystal语法),变量作用域用于定义某个公式的变量可在多大程度上用于其它公式。在CrystalReports中有三种级别的作用域:局部、全局和共享。每个变量都有一个作用域,该作用域在变量声明时指定。,7.1局部变量,7.2全局变量(Crystal语法),7.3共享变量(Crystal语法),共享变量使用相同的内存块,在整个主报表及其所有子报表中存储变量值。因而,共享变量甚至比全局变量更普遍。若要使用共享变量,请在主报表内的公式中声明它,如下所示:SharedNumberVarx:=1000;并在子报表内的公式中声明它,如下所示:SharedNumberVarx;为使用共享变量,在共享变量可以在主报表和子报表之间传递之前,必须先声明该变量并给其赋值。,8.数组变量(Crystal语法),8.1使用数组变量(Crystal语法),8.2在For循环中使用数组,二水晶报表公式应用,1.公式的典型用途,2.公式语法基本规则,将文本字符串括在引号内。将参数括在括号内(在合适的位置)。引用的公式使用前导符号标识,3.公式的种类,在CrystalReports中有几种不同种类的公式:报表、格式化、选定、搜索、运行总计条件和警报公式。报表中的多数公式为报表公式和条件格式化公式。,3.1条件格式化公式,3.1.1应用一更改条件字体,格式字段,格式字段,突出显示专家,格式化编辑器对话框,点这里进入公式工作室,3.1.2应用二在第一页之后创建页脚,节专家Sectionexpert,节专家对话框(sectionexpert),公式按钮,3.1.3使用“突出显示专家”来有条件地格式化字段,3.2创建条件运行总计是指编写公式只有符合公式中的条件的记录才进行运行总计,请将报表中所需字段从左到右置于“详细资料”节中在“报表”菜单上单击“记录排序专家”先定一个字段对记录进行排序。选择“运行总计字段”并单击“新建”。出现“创建运行总计字段”对话框。在“运行总计名称”框中输入名称。在“可用表和字段”框中突出显示要运算的字段并使用第一个箭头按钮将其移动到“要汇总的字段”框内从“汇总类型”列表中选择“求和”。在对话框的“求值”部分,单击“使用公式”,然后单击“公式”按钮。出现公式工作室,“运行总计条件公式”处于活动状态。在“公式”框中输入下列公式当公式具有正确的语法后,单击“保存并关闭”。返回“创建运行总计字段”对话框。在对话框的“重置”部分,单击“从不”。单击“确定”以保存运行总计字段。程序返回“字段资源管理器”对话框。将运行总计字段置于报表“详细资料”节内。,公式formulafields的使用,1.点击formulafields再点击新增图标输入公式名称,单击UseEditor进入到公式工作室,新增,修改,重命名,删除,2.工作工作室如下图,在写好公式后按save保存然后按左上角close关闭工作室,3.把formulafields下的公式拖到设计页面,选择专家selectexpert的使用,当我们要对抓出来的数据进行过滤时就要用到选择专家来设置条件1.单击选择专家跳出如下对话框,选择要设置条件的字段单击ok,选择专家,2.在下图的第一个下拉框里选择条件在第二个下拉框里选择值点showformula可以看到自动生成的代码然后点ok,点这里选择条件,点这里选择值,参数字段ParameterField的使用,1.点击Parameterfields再点击新增图标输入参数名称,提示语言选择参数类型按ok,回到设计页面会发现参数字段下多了一个参数,2.单击选择专家在出现的图一对话框中单击new按钮会跳出图二对话框在这里选择字段,然后点ok到图三,图一,图二,3.在图三可以看到新增的字段,然后选择条件和值在这里我们选择的值就是刚才新增的参数,点击showformula可以看到自动生成的代码,然后按ok可以看到图四,图三,4.在图四中输入参数值按ok.在这个例子中可以输入具体的订单号码也可以输入订单中的字母带*,例如DH*(区分大小写)表示只要订单号码中有DH两个字母的订单都可以从库里抓出来,图四,5.如果要变更条件,可以随时按下工具列上的读取按钮出现如下对话框,如果选择输入新的参数值则会再次出现图四让你输入不同的参有选举数接着出现的报表内容就会随着新的参数值而不同,读取按钮,数据的分组和排序,示例:做一份PY3各栋计算机耗材采购和维修费用,要求如下,按栋别费用类别数据年月对数据进行过滤按栋别商品代号进行分组求出各个商品代号的数量和费用求出各栋商品总数量和总费用,制作过程如下:,1.确定要从以下table抓取资料a.TBL_APPLY_D(采购子档)b.VIEW_DEPT(单位数据视图)c.TBL_APPLY_M(采购主档)2.写出sql语句SELECTA.*,decode(A.APP_TYPE,A,申购费用,R,维修费用)ASAPP_DESC,B.*,C.VOU_DATEFROMTBL_APPLY_DA,VIEW_DEPTB,TBL_APPLY_MCWHEREA.APP_NO=C.APP_NOANDB.BRANCH_NO=C.FACT_NOANDB.ACCOUNT_NO=C.ACCOUNT_NOANDB.CONTRAST_NO=C.DEPT_NOORDERBYB.FACT_NO,B.BRANCH_NO,A.PROD_NO,3.新开一个空白的报表在数据库专家中连库后打开要取数据的数据库(G3WG),出现下图,4.双击图中的AddCommand出现下图,在左边的空白区域输入要抓取数据的sql语句按”ok”按钮,5.这时在数据库专家的SelectTabels区域出现如下图所示内容按”确定”按钮,6.页面回到水晶报表的设计页面点开页面右边FieldExpert下的DataBaseFields,会发现刚才的操作已生成了如图所示内容这就是刚才的sql语句在数据库中抓取的字段,7.选中Command下面的字段,把报表中所需要的字段拖到报表设计区的Detail节中,它会在PageHeader区自动生成和字段名相同的表头字段,8.按预览快捷图标可以查看刚才生成的数据如下(部分),9.对数据进行分组,选择”insert”菜单下的”Group”按钮或快捷图标”insertgroup”,出现如下画面选择要分组的字段和排序方向按确定按钮,快捷图标”insertgroup”,也可以按Report菜单下的GroutExpert选项或按快捷图标GroutExpert,出现如下画面,双击要分组的字段这个字段会出现在右边的GroupBy区域按ok按钮,快捷图标GroutExpert,会发现在右边的GroupNameFieldsg下面会出现刚才设的分组字段同时在报表设计区会出现GroupHeader#1的节在它的内容区出现Group#1Name,此时观察预览页面会发现在报表中的数据是按栋别排放的,10.按第9步的操作再设置一个分组字段prod_no,再去观察预览页面发现报表的内容是栋别和商品代号排放的,11.下面对数据进行筛选首先右击ParameterFields,在快捷菜单中单击New(新建)出现如下画面在Name处输入要定义的参数名称”栋别”选好参数值的类型(Valuetype),按ok按钮,12.重复第11步的操作,再定义两个参数,”费用类别”与”数据年月”,12.在ParameterFields下可以发现刚才新建的三个参数字段,我们要利用这些参数生成选择条件的公式来对数据进行过滤,13.打开选择专家,选择Command下的fact_no字段按ok按钮,14.选择下拉框中的比较条件”islike”,选择右边下拉框中的比较值可以看到这个下拉框中有我们刚才生成的三个参数字段选中?栋别点击ShowFormula,可以看到刚才的操作生成的公式.,15在上一步的第二个图中选择new按钮或new标签进行第二个参数”费用类别”和第三个参数”数据年月”的设定画面变成如下点ok按钮,16.现在我们来进行预览这时页面提示要用户输入参数值,分别对三个参数进行设定,按ok按钮,这时可以看到抓取数据范围缩小了,17.如果想重新设定参数值,按Report菜单下的RefreshReportData选项,出现如下画面选第二个选项按ok按钮出面第16步的画面,可对参数值重新设定,18.下面来对分组的数据进行数量求和在这里要设定两个公式,右击设计页面右边的FormulaField,在出现快捷菜单上选择New,出现如下画面输入公式名称ZQTY,按UseEditor,进入到公式工作室,19.在工作室的文本窗口输入公式或者在函数区找到要使用的函数,然后在报表字段找到相应的字段作为函数的参数按”X+2”按钮调试公式如果公式没有错误按”saveandclose”按钮关闭此窗口,函数区,运算符区,公式文本区,报表字段区,20.按同样的操作设计另一个求金额的公式ZMONEY(后面会用到)在FormulaField会发现刚才所设的两个公式把第二个公式拖到如图所示位置(GroupFooter#2),进入预览页面发现对相同的商品代号已求出了它的总数量,21.使用运行总计求所有商品的总金额和相同商品的小计金额,在报表设计页面右边右击RunningTotalFields,在出现的快捷菜单中选择New(新建)出现如下画面,在RunningTotalName处给运行总计字段命名然后从左边的AvailableTablesandFields选中ZMONEY公式,按ok按钮,22.再新建一个运行总计,取名为ProNoTotalMoney,其它作如下设置,按ok按钮,此时可以在RunningTotalFields下看到刚才新增的运行总计字段把它们拖到设计页面如图所示位置,预览页面可以看到算出了每种商品所用的总金额,在报表的最后面能看到金额总计值,22
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大型楼房拆除方案(3篇)
- DB23-T2824-2021-工业企业实验室危险化学品安全管理规范-黑龙江省
- 小型蒸酒设备管理制度
- 小区车辆录入管理制度
- 就业补助资金管理制度
- 农药兽药抽检管理制度
- 旧区电线改造方案(3篇)
- 花园修剪服务方案(3篇)
- 河堤渗水整治方案(3篇)
- 宾馆日常卫生管理制度
- 钢结构雨棚吊装方案
- GB/Z 44047-2024漂浮式海上风力发电机组设计要求
- 2024年江苏省南通市中考地理试题卷(含答案)
- 水南公寓(ABC)地块设计采购施工(EPC)总承包项目技术标
- 2024-2025学年八年级语文上册期末专项复习:散文阅读【考点清单】
- 新教科版小学1-6年级科学需做实验目录
- Linux Shell命令行及脚本编程实例详解
- 学习强安应急第一响应人理论考试答案
- 驻颜有术 知到智慧树网课答案
- GB/T 8492-2024一般用途耐热钢及合金铸件
- 2023-2024学年八年级下期末数学试卷(附答案解析)
评论
0/150
提交评论