第1页润乾报表基础知识培训2016年6月第2页培训安排项目内容报表设计基础报表设计器的界面操作,单元格属性介绍,报表向导使用,常规报表制作,参数和宏的常规使用、简单统计图、图像、打印。报表部署应用开发润乾报表在tomcat下的常规部署、注意事项、授权文件配置、版本升级、常见错误解答。第3页前提-安装文件润乾报表安装包报表设计器、部署好的报表服务器(Tomcat4.1)、JDK1.4帮助文档润乾报表35WEB发布包单独发布或集成发布的Web服务器帮助文档例子代码第4页培训内容报表设计单元格属性介绍数据源和数据集参数和宏图像和打印子报表系统配置及其他界面操作第5页前提-报表核心组件报表设计器设计编辑报表,自带报表运算引擎,连接数据库后可预览打印报表报表服务器在后台提供统计报表运算和数据填报处理的服务,浏览器端展示报表第6页利用向导制作报表网格式报表交叉式报表分组式报表第7页一张最简单的报表请看一张最简单的报表请看现场演示制作过程第8页简单交叉报表请看一张最简单的报表请看现场演示制作过程第9页最简单的分组报表请看一张最简单的报表请看现场演示制作过程第10页练习网格式报表练习从CONTRACT表中查出CONTRACTNO,CUSTOMERID,AMOUNT字段,用网格式报表展现。交叉式报表练习从CONTRACT和CONTRACTDETAIL中取CUSTOMERID,AMOUNT,PRODUCTID三个字段,用CONTRACTNO关联表,CUSTOMERID做列表头,PRODUCTID做行表头,AMOUNT为交叉表中的值,用交叉式报表展现。分组式报表练习从CONTRACT中查出CONTRACTNO,CUSTOMERID,AMOUNT字段,并按CUSTOMERID分组,用分组报表展现。第11页单元格及其属性一般单元格及其命名规则合并单元格及其命名规则属性和表达式第12页一般单元格命名规则单元格的命名方式和excel类似,列上通过A,B,C,D,.......来命名每一列,行上通过1,2,3,4,......来命名每一行,单元格通过“列名+行名”来命名,例如:上图中蓝色方框内的单元格命名为A1第13页合并单元格命名规则合并单元格是以左上角的单元格编号作为合并格的编号的,例如上图中,合并格的编号为B2第14页属性和表达式表达式属性值第15页属性和表达式的解析哪些属性仅仅解析属性值自动计算合法性检查编辑风格哪些属性仅仅解析表达式统计图单元格的数据值属性哪些属性既解析属性值又解析表达式其他属性都是既解析属性值,又解析表达式第16页单元格属性报表首格属性行列首格属性一般单元格属性第17页数据源结论:制作报表前首先要连接数据源第18页数据集概念数据集其实就是一个假想的二维视图,是报表的数据来源。一般是一个SQL语句,也可以来自文件(XML或TXT等)或其它数据源。如果报表的数据都是常数,则不必定义数据集结论:制作报表第一步定义数据集第19页扩展模型可扩展单元格横向扩展纵向扩展不可扩展集合函数和操作符第20页可扩展单元格数据值表达式包含集合函数、to操作符、:(link)操作符、数组时,单元格默认为可扩展单元格。此时单元格的扩展方向属性可为默认、横向扩展或者纵向扩展。如果数据值表达式不包含上述元素,则单元格默认为不可扩展。集合函数包括:group(),rgroup(),select(),rselect(),list(),query(),sql(),query2()to操作符举例:=1to10:操作符举例:=a1:a10数组举例:=[1,3,5,7,9]第21页可扩展单元格扩展可扩展单元格不可扩展单元格A2可扩展单元格A1,B1,C1,B2,C2,A3,B3,C3不可扩展单元格第22页横向扩展单元格横向进行复制,复制单元格的数据值依次为表达式的结果数据值,表达式返回几个值,单元格就复制几个第23页纵向扩展单元格纵向进行复制,复制单元格的数据值依次为表达式的结果数据值,表达式返回几个值,单元格就复制几个第24页不可扩展当单元格里表达式的值是单值时,该单元格默认为不可扩展的单元格。不可扩展的单元格不能缺省做主格。第25页集合函数和操作符当单元格中有以下公式时为可扩展的1.数据集函数•Ds1.Group•Ds1.Select2.to操作符举例:=1to103.:操作符举例:=a1:a104.数组举例:=[1,3,5,7,9]5.List函数:List(‘大学’,’高中’,’其它’)第26页Select()语法:datasetName.select(select_exp[,desc_exp,filter_exp,sort_exp])功能说明:从数据集中取出符合条件的记录行集,根据参数进行相应的排序当前单元格里显示的是select_exp的值单元格里存放了整个行集,扩展后,每个单元格存放一条记录第27页Select()选出字段值和数据集中的记录一一对应(扩展后)第28页Select_one()函数说明:从数据集中根据选出字段或表达式以及选出条件,选出一个数据语法:datasetName.select_one(selectExp{,filterExp})datasetName.select1(selectExp{,filterExp})参数说明:selectExp选出字段或表达式filterExp过滤条件第29页Group()语法:datasetName.group(selectExp{,descExp{,filterExp{,sortExp}}})功能说明:从数据集中把符合条件的记录行集取出来,根据参数进行相应的排序,然后依据selectExp进行分组当前单元格显示的是selectExp的值单元格里存放每一组的第一条记录组成的行集,扩展后每个单元格存放一条记录这条记录保留了一个指针,指向每一组的基本行集第30页Group()选出字段值和每一组的第一条记录对应每组第一条记录保留指针指向相应组集(扩展后)第31页List()说明:获得一个枚举的数据集合语法:list(valueExp1{,valueExp2{,valueExp3{,……}}})参数说明:valueExp(n)可以是常数或表达式第32页To操作符左操作数:整数右操作数:整数结果值:整数集合举例:1to5第33页:操作符左操作数单元格右操作数单元格结果值由左右操作数单元格为对角点圈起的矩形中的单元格的集合举例A1:D1第34页[]数组操作符举例:[1,2,3,4]表示一个元素为1,2,3,4的数组[1,2,3,4][2]表示取元素为1,2,3,4的数组中的第2个元素,即2第35页不用向导制作报表最简单的网格式报表最简单的交叉式报表最简单的分组式报表请看现场演示制作过程第36页练习网格式报表练习从CONTRACT表中查出CONTRACTNO,CUSTOMERID,AMOUNT字段交叉式报表练习从CONTRACT和CONTRACTDETAIL中取CUSTOMERID,AMOUNT,PRODUCTID三个字段,用CONTRACTNO关联表,CUSTOMERID做列表头,PRODUCTID做行表头,AMOUNT为交叉表中的数值分组式报表练习从CONTRACT中查出CONTRACTNO,CUSTOMERID,AMOUNT字段,并按CUSTOMERID分组第37页多层分组报表举例第38页多层交叉报表举例第39页练习多层分组报表练习练习目录下的:多层分组练习.raq多层交叉报表练习练习目录下的:多层交叉练习.raq第40页参数和宏参数参数有数据类型参数是个变量参数有缺省值参数有输入格式和最大宽度宏宏是个字符串标识宏没有数据类型报表运算前进行宏替换,即字符串替换,替换结束才进行报表运算第41页参数的用法Sql语句中使用query/sql/query2函数中使用参数query2(exercise,SELECTmax(amount)FROMcontractWHEREcontract.signdate?andcontract.signdate?,starttime,endtime)表达式中使用参数=从+String(@starttime)+到+string(@endtime)第42页宏的用法sql语句中使用宏举例:SELECTcontract.contractno,contract.${macro1},contract.amountFROMcontractWHEREcontract.signdate?andcontract.signdate?ORDERBYcontract.signdateASC表达式中使用宏举例:=ds1.${macro1}属性值中使用宏第43页带参数和宏的报表举例第44页练习要求,设计一个报表模板,传入两个参数arg1和arg2,查询出年龄大于arg1且小于arg2的人员信息,如下图所示。第45页参数模板的制作第46页统计图统计图的类型统计图的数据模型一般统计图的数据模型时间走势图的数据模型时序状态图的数据模型扩展模式下的统计图第47页统计图举例一般统计图时间走势图时序状态图交叉统计图分组统计图双轴柱线图甘特图雷达图仪表盘里程碑第48页练习制作一个统计图,结果参看右侧图例。练习模板:饼图和柱状图-练习.raq第49页打印按纸张大小分页分栏行后分页和列后分页报表分页方式尺寸调整套打请看实际操作演示第50页填报概念能够由用户填写,并将填写内容根据报表的更新属性定义,回存到数据库的报表,我们称之为填报表填报表的报表生成样式、扩展规则、汇总统计规则和普通报表完全一样填报表增加了更新属性、自动计算、合法性检查、是否可写、编辑风格等属性第51页填报编辑方法新建填报表更新属性自动计算合法性检查是否可写编辑风格第52页填报表举例第53页谢谢!