润乾报表培训.doc_第1页
润乾报表培训.doc_第2页
润乾报表培训.doc_第3页
润乾报表培训.doc_第4页
润乾报表培训.doc_第5页
免费预览已结束,剩余33页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

质量记录文件编号:版 本:1.0密 级:机密保存期限:永久标题:技术培训文档发布日期:2007 年 07月 15 日页 码: 第 38 页 共 38 页润乾报表培训润乾报表培训资料南京朗坤软件有限公司2007年 南京朗坤软件有限公司 版权所有机密文档,未经授权,不得外传文档类型:技术培训文档 作者: 佟川南京朗坤软件有限公司定淮门12号世界之窗软件园210008电话:+86 25 83300245传真:+86 25 83300236Web:日期:版本:发布人员:文档审核:文档批准: :_年_月_日:_年_月_日:_年_月_日修正记录版本日期作者修改描述目 录 1 前言 1.1 起因 公司原有报表是由水晶10来开发的,问题多多。公司决定更换报表工具,目前已经锁定润乾4.0。润乾是北京一家公司,由于本土化的优势,润乾报表工具在交叉表和开发效率上有比较明显的优点。上手学习也比较容易。 1.2 目的 本培训资料实际上是一本公司内部关于润乾报表开发的入门手册,其根本的目的就是让有一定软件开发经验的人能够通过这个文档上手开发润乾报表1.3 内容简介本文档偏重于讲解一些要点以帮助入门,并不是对润乾相关细节和开发技巧的全面阐述。本文档内容立足于公司曾经组织的对润乾报表的预研,用研究中开发的典型例子来入手讲解。主要内容如下: 运行机制和部署 操作界面和基本概念 简单例子 常用函数 jsp页面套用的方法 系统内已完成的几个例子 交叉表和数据集技巧 图形制作 olap功能2 运行机制和部署2.1 运行机制从运行机制来说,需要开发人员了解的如下 报表在页面展现的是html 报表文件本身是以raq文件结尾的,内部包括数据集的定义,页面的展现形式,数据的过滤和处理方面的函数定义等等。 报表raq文件由润乾报表设计器设计生成 Jsp页面通过润乾预设的标签调用报表文件生成html,标签对应的java类和相关功能都已经封装,jsp页面上只有很少的配置性内容 Olap功能也是由润乾提供的预设的标签来实现的。标签对应的业务逻辑都已经封装好了。 报表部署和展现需要服务端密钥文件,设计需要设计器密钥文件。RAQJNDI定义数据集样式过滤函数JSP标签调用raq数据库Web服务器IEJNDI2.2 部署原有的安装包内部结构如下图:Liems下有文件夹 reportFiles 用于放置模版jsp和报表页面。其中约定: 参数表单放在reportFilespara 命名规则:para_程序号.raq 展现表单放在reportFileshtml 命名规则:html_程序号.raq 模版jsp放在reportFiles 目前template.jsp是带参数表单的模版,template_pk.jsp是单一参数的模版。3 操作界面和基本概念3.1 操作界面如图所示,类似于Excel,在单元格内可以直接写固定内容或者函数等。右边属性列里,双击“表达式”内空白格子,可以弹出编辑框,用于编辑复杂的公式组合。3.2 数据源系统数据源按系统情况配置JNDI3.3 填报类型文件新建普通报表:用于展示数据的填报和参数表单:可在表格上第一下拉框,文本框,时间等控件,其中的数据可以是参数或者从数据库里面取出的。参数表单用于在jsp页面里面和普通报表嵌套。填报报表可以用于提交数据3.4 参数配置参数参数就是需要传入报表的参数,需要预先定义,包括名称、类型、缺省值,可以是多个3.5 数据集配置数据集在系统内,我们用到的是“复杂sql”,我们定义好语句,参数以?来定义,一般都是定义参数是字符串类型的,在数据集定义的sql里面,需要放置参数的地方就放?。注意:在解析的时候会自动把前后单引号加上的。例如to_date(?,yyyy-mm-dd)是正确的;to_date(?,yyyy-mm-dd)是错误的参数指定的时候,是按照出现的先后顺序的,有多少个?就需要指定多少个参数3.6 导入导出 文件导出Excel文件工具导入Excel 润乾提供了把报表文件内容到处成Excel文件和把Excel文件导入的功能,主要的意义在于,可以让我们把报表格式方便导入和导出。例如,比较复杂的报表,客户提供了Excel表样,我们可以先导入后再开发关于数据的部分4 简单例子 4.1 列表与扩展 从系统utusrmst里面取用户信息展示新建生成空白报表配置参数和数据集如下需要配置好JNDI,并连接,此时在工具右侧的数据集选项卡就能看到如下的东西 删掉多余的行列,用拖拽的方法把字段放上,函数是自动带上的效果如下由于单元格缺省是纵向扩展,如果设置为横向扩展,效果是这样的: 4.2 数据集与交叉表 做交叉表,开发人员必需对sql语法和数据库结构非常清楚以沙洲物资里面的一些数据为例,做个交叉表如下数据集和数据集取出数据列表情况如下报表文件内对表头和数据展示的定义以及最后的效果如下,注意B1的扩展方式必须是“横向”5 常用函数5.1 ds.select() 函数说明: 从数据集的当前行集中选取符合条件的记录 语法: datasetName.select( , desc_exp, filter_exp, sort_exp,rootGroupExp ) datasetName.select( , , )/适用于不需排序或数据集中已排好序 参数说明: select_exp: 要选择的字段列名/列号,也可以是表达式。 列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推 desc_exp: 指定数据排序的顺序,true表示降序排列,false表示升序排列。 filter_exp: 数据过滤表达式,如果全部选出,则此参数省略,仅用“,”占位。 sort_exp: 数据排序表达式。当此项为空时先检查desc_exp是否为空,如果为空, 则不排序,否则使用select_exp排序。 rootGroupExp 是否root数据集表达式 返回值: 一组数据的集合,数据类型由select_exp的运算结果决定 函数示例: 例1:ds1.select( name ) 从数据源ds1中选取name字段列的所有值,不排序 例2:ds1.select( #2, true ) 从数据源ds1中选取第二个字段列的所有值并降序排列 例3:ds1.select( name,false,sex=1) 从数据源ds1中选取性别为男性(1)的name字段列的值并升序排列 例4:ds1.select( name, true, sex=1, id ) 从数据源ds1中选取性别为男性的name字段列的值并按id字段降序排列5.2 ds.group() 函数说明: 根据分组表达式,从数据集中选出一组组集。 语法: datasetName.group( , , ) /适用于不需要排序或数据集中已排好序 datasetName.group(selectExp,descExp,filterExp,sortExp,groupSortExp,groupDescExp,rootGroupExp) 参数说明: selectExp 选出的分组表达式,可以是字段列名/列号,也可以是表达式。 列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推 descExp 分组前记录的排序顺序,true为逆序,false为顺序 filterExp 过滤表达式 sortExp 分组前记录的排序依据表达式 groupSortExp 分组后对组的排序表达式,一般是汇总运算的表达式,如组合计等 groupDescExp 组排序顺序,true为逆序,false为顺序 rootGroupExp 是否root数据集表达式 返回值: 一组数据的集合,数据类型由selectExp的运算结果来决定 示例: 例1:ds1.group(class) 把数据集ds1中所有记录按照class字段进行分组, 并返回每组的class值组成的集合 例2:ds1.group(class, true ) 把数据集ds1中所有记录按照class字段降序排列,然后根据class进行分组, 并返回每组的class值组成的集合 例3:ds1.group(class,false,sex=1) 从数据源ds1中选取性别为1的记录,按照class字段升序排列, 然后根据class进行分组,并返回每组的class值组成的集合 例4:ds1.group(class, true, sex=1, id ) 从数据源ds1中选取性别为1的记录,按照id字段降序排列, 然后根据class进行分组,并返回每组的class值组成的集合 例5:ds1.group(省份,true,sum(工业产值),true) 对数据集ds1按照省份进行分组,分组后求出每组的sum(工业产值), 然后按照这个汇总值对组进行逆序排列5.3 时间函数样例如下:year(ds1.Select(CONFEND_DTM)+年+month(ds1.Select(CONFEND_DTM)+月+day(ds1.Select(CONFEND_DTM)+日+hour(ds1.Select(CONFEND_DTM)+时+minute(ds1.Select(CONFEND_DTM)+分5.4 sum() 函数说明: 对可扩展单元格或集合表达式进行求和 语法: sum(expression) sum(cellExp,exp) 参数说明: expression 需要被求和的单元格或表达式,一般为可扩展单元格或集合表达式 cellExp 单元格或单元格集合,以cellExp里的单元格为当前格计算表达式exp exp 表达式 返回值: 实数或者字符型,由被汇总的单元格数据类型决定 示例: 例1:sum(A1:A10) 求出单元格A1至A10的合计值,被统计单元格可以是数值型也可以是字符型 例2:sum(arg1) 其中arg1是参数组,求出arg1中所有元素的合计值 例3:sum(B1) 表示求得当前主格扩展区域内所有扩展后的B1单元格的合计值 例4:sum(B10) 表示求得根坐标下所有扩展后的B1单元格的合计值 例5:sum(A10,B1+C1) 计算分别与每个A1相对应的B1、C1的和的合计值6 jsp页面套用的方法6.1 概述润乾提供了很好的页面标签,把润乾发布到系统中后,只要在jsp里面套用页面标签就调用相应的报表文件,又由于关于报表的数据、过滤与计算、报表样式、图形等都在报表文件里面定义好了,jsp页面只是个展示的容器。因此用同一个jsp页面可以展示无数的报表,只要传递报表名称做参数。6.2 单一参数的jsp页面在此约定:以传递的程序号码来定义报表raq文件名称。这样传递程序号就能展现对应的报表了。此jsp页面比较适合单一参数的报表,比如只传主键值。6.3 带表单提交参数的jsp页面这个jsp页面时候带参数提交的,两个标签套在一个jsp页面里面,提交的时候能够自动接到对应的参数不过要注意,表单raq文件里面控件的名称要和报表raq文件里面参数名称对应7 系统内已完成的几个例子7.1 沙洲物资领用查询(html_111.raq)本表第四行是用的扩展单元部分,第一行和第二行相加得到的,另外在每个分组前放了小计其中在数据集确定的情况下,表格部分的功能不是问题,难点在sql语句方面7.2 通辽工作票(html_B1RMP10010.raq)有4个结果集分别是如下内容ds1:取改工作票对应的内容ds2:按挫信息ds3:补充按挫信息ds4:工作流信息其中ds4里面是多条内容,需要用条件过滤,放入表格中对应的位置ds4.Select(USR_NAM,MANOPT_ID=TITLE801)这个的意思就是在ds4数据集里面,取MANOPT_ID=TITLE801的那条记录里面的USR_NAM7.3 沙洲部门领用汇总(html_B1INS80008.raq) 分组合计和小计 前2列隐藏 多数据源第一个数据集ds1是当年12个月份的,ds2是全部年份的合计。在报表里面,用ds2.sum(ISS_AMT,CST_NAM=C4 & WHS_NAM=F2)把ds2放在了合适的位置并能自动扩展使每个分组里面都有“累计”这一列8 交叉表和数据集技巧8.1 数据集要点在润乾报表里面,行列加减,乘除都可以在报表上用函数实现。多个结果集的数据可以有办法拼凑到一张交叉表内并能扩展。因此在考虑数据集的时候,应该考虑到是否能够更多的发挥报表工具的功能。不要在数据集里面计算百分比、小计、合计等。数据集尽量简明规整。一般根据逻辑和数据来源划分数据集。必要的时候也可把一种数据根据情况分成多个数据集。8.2 简单的交叉表(单源)此类交叉表往往只有一个数据集,就算是有比较多层级的小计或者合计,做法都比较简单,只要拼凑好行列的字段,设定分组信息就好了8.3 复杂的交叉表(多源)多源报表,往往用条件过滤来对应位置:ds1.select(ds1.customer_id,true,ds1.customertype=A4,)ds5.sum(amount,customerid=B4 & productid=D3)9 图形制作 润乾的图形是以表格为依托的,都是先在表格里面定义函数和扩展,然后在作图的时候设定从表格里面的什么位置取数据,如果只想显示图,那么就需要把报表隐藏起来例子:数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论