1、润乾报表设计器简易教程建立一个新的报表由存储过程的编写和表样的设计两部分组成,其中,表样的设计是利用润乾设计器进行的。用润乾建立一个新的表样可以分为以下几步:新建数据源、连接数据源、设置参数、设置数据集、绘制表样、预览表样。在以下步骤说明中,以预算上报下达差异表为例进行说明。该报表的查询条件包括年度、单位和模板。表样如下所示:2010 年预算上报下达差异表制表部门:查询单位 期间:2010 年 单位:万元本单位 下级单位 1 下级单位 2 预算科目上报值 下达值 差异 上报值 下达值 差异 预算科目 1 预算科目 2 预算科目 3 预算科目 4 预算科目 5 合计 制表人:登录用户 制表时间:
2、2010-07-261 新建数据源配置数据源的目的是为了连接数据库。配置的步骤如下: 打开设计器后,点击配置数据源,打开配置数据源的界面。 点击新建,在数据库类型中根据实际情况选择数据库类型,针对 TBM 系统,选择的是关系数据库,点击确定。 在数据源常规属性设置页面进行数据源的设置,如下图所示: 数据源名称:可以任意指定,建议采取 tbmbj 等名称对各地数据库进行直观性区分。 数据库类型:选择对应数据库类型,TBM 系统采用的是 DB2 数据库。 客户端字符集:指的是从数据库取出的数据在客户端展现时的字符编码,可以采用默认的 GBK。 数据库字符集:指的是从数据库中取过来的字符编码,根据数
3、据库的编码类型选择,可以采用默认的 GBK。 驱动程序:输入“com.ibm.db2.jcc.DB2Driver”即可。 数据源 URL:数据源 URL 的输入格式为 jdbc:db2:/ IP 地址:端口号/数据库名,例如:jdbc:db2:/192.168.168.6:50000/tbmbj。 用户、口令:数据库用户名和密码。 设置完成后,点击【确定】按钮,回到数据源配置界面,关系数据库类型的数据源就配置完成了,数据源配置界面中就列出了新建的数据源。2 连接和断开数据源选中需要连接和断开的数据源后,点击数据源配置窗口的连接或断开即可。3 设置参数此处设置的参数是指报表中需要的参数,包括报表
4、的查询条件、从页面 URL 传过来的参数等。对于预算上报和下达差异表,需要传入两类参数:一是查询条件,包括年份dateflag、单位 dptid 和模板 groupid;二是从 URL 中传过来的参数,用于显示制表部门和制表人,其中指标部门即用户在查询条件中选择的单位,无需再次设置该参数,制表人即当前登录用户,因此需设置参数 userid。由于从页面或 URL 传入的都是 ID 而不是名称,所以在设置参数的时候也是设置的 dptid 而不是 dptname,别的参数类似。 点击配置参数,打开参数编辑页面,点击增加后在该页面增加一条参数记录; 修改参数名称为 dateflag,其数据类型为字符串
5、型;与此类推,增加其他参数,最后结果如下图所示:4 设置数据集数据集是报表的数据来源,可以通过数据库的 sql 查询获得,也可以通过存储过程获得。在 TBM 的报表中,采取的是通过存储过程获取报表中需要查询的数据,同时会使用 sql 语句进行辅助字段的查询,例如通过使用 sql 语句查询 url 传入的 userid 对应的 username,从而显示制表人的名称。4.1 增加存储过程类数据集 点击配置数据集,弹出数据集配置窗口。 点击增加,在弹出窗口中选择数据集类型为存储过程,点击确定。 定义标签页中输入CALL PRC_R_TY_CYBJ_SBXD(?,?,?),其中 PRC_R_TY_C
6、YBJ_SBXD为预算上报下达差异表对应的存储过程的名称,三个问号表明该存储过程需要传入三个参数,依次是年度、单位、模板。 在参数标签页中对应地新建三个参数,双击第一个参数的参数表达式,弹出如下窗口,在报表表达式窗口中删除原有的 arg1,双击数据列表中的 dateflag,点击确定。 单位和模板参数的设置与上步类似,最后得到如下结果。需要注意的是,这三个参数的顺序与存储过程中参数的顺序必须保持一致。 点击确定后,在数据集设置页面增加了一个类型为存储过程的数据集 点击数据集设置页面的确定按钮,设计器右下角的数据集标签页也相应的多了一个名为 ds1 的数据集,展开该数据集可以看到对应的存储过程查
7、出的字段4.2 增加 SQL 检索数据集 点击配置数据集,弹出数据集配置窗口。 点击增加,在弹出窗口中选择数据集类型为 SQL 检索,点击确定。 可以直接在语法标签页中输入 SQL 语句,也可以逐个设置 SQL 编辑器各标签页的数据和条件,让润乾报表设计器在语法标签页自动生成 SQL 语句。 SQL 语句中需要传入参数的地方依旧用问号标示,并在参数标签页进行设置。5 绘制表样润乾报表采取的是类 EXCEL 界面,在操作上与 EXCEL 类似。由于该报表文件需要展示的是所选单位及其下级直属单位的预算上报下达差异情况,也就是说需要对报表的展示单位根据实际情况进行扩展。 绘制空白表样。按照 EXCE
8、L 设计的表样在设计器中设计出空白的表样,如下图 从存储过程中获取报表文件的字段信息: 该存储过程查出的字段如下图,依次表示预算科目 ID,预算科目名称,预算科目展示顺序,部门 ID,部门名称,部门展示顺序,预算上报值,预算集团下达值; 获取预算科目的值,点击 ds1 下面的 SHOWNAME,然后拖动至报表文件的A5 中,如下图所示,图中红色的箭头表示该单元格的扩展方式为纵向扩展 同理,将上报值下达值的字段拖入表中,由于上报下达值是针对特定的预算科目的,因此将方式设为取值,然后拖入表中即可,如下图: 根据报表需要,在设计时要将同一部门的上报值、下达值和差异进行分组展示,因此选择的方式是分组,
9、将扩展方式改为横向扩展,如下图 由于在展示部门时,其顺序要按照省本部,省本部财务部这样的顺序展示,因此需要对 B3 单元格的表达式进行更改,增加其排序方式,更改为:ds1.Group(DPTNAME,false,DPTVIEWORDER)。更改的方式是双击 B3 单元格的表达式,在弹出的表达式编辑对话框中进行更改,在表达式编辑对话框中双击字段就可以将双击的字段添加到表达式光标所在位置。 在合计、差异等单元格添上计算公式,其中 SUM(B5)中 B5表示把 B5 所代表的上报值根据预算科目扩展后的所有上报值单元格进行相加,若写成 B5()则表示只汇总扩展后的第一个上报值单元格,即取第一个单元格的
10、值:在点击需要超链接的单元格后,设计器的右边会有以下图片中的名称显示:超链接处,填写链接地址,双击进入后,在表达式一栏中填入需要用到的页面、参数以及链接的报表 raq 文件;例子:“/tbm/report/reportcontent.jsp?dateflag=“+dateflag+“&dptid=“+dptid+“&groupid=“+groupid+“&userid=“+userid+“&itemid=“+B4+“&raq=/TY/TY_BMSB_YS_KMXM.raq“ “/tbm/report/reportcontent.jsp?” 为显示页面,此段一般是写死的,基本无变化。 “date
11、flag=“+dateflag+“&dptid=“+dptid+“&groupid=“+groupid+“&userid=“+userid+“&itemid=“+B4+“”此段是参数 一般为主表所用到的全部参数以及被链接表的参数,由于普通情况都是 主表参数为 A+B+C 被链接参数为 A+B+C+D; 那么,我们也可以理解为将被链接参数全部填入即可;只是被链接报表多出的参数 一般都是 在 链接项 所选的单元格 。“&raq=/TY/TY_BMSB_YS_KMXM.raq” 最后一段既是被连接的 报表 raq 文件名。超链接窗口 只要在中间空处填死“_blank”即可 新建 SQL 检索的数据集
12、 ds2,目的是通过 dptid 和 userid 获取 dptname 和username,按照增加 SQL 检索类数据集的步骤建立,SQL 语句是 SELECT BAS_DPT.DPTNAME,BAS_USERINFO.USERNAME FROM BAS_DPT,BAS_USERINFO WHERE BAS_DPT.DPTID =? AND BAS_USERINFO.USERID =?,两个参数分别取之前建好的参数 dptid 和 userid。如图,将 A2 单元格的表达式设置为“=制表部门:+ds2.DPTNAME ”,当传入dptid 后,通过 SQL 检索获取 dptname,然后
13、显示在报表文件中,例如传入dptid 的值 2,显示发布报表后显示为“制表部门:省本部” 。同理,对 A7 单元格的公式进行更改。 将制表时间、期间两个单元格的表达式更改如下,各函数的含义分别是:=制表时间:+str(year(now()+-+str(month(now()+-+str(day(now()=期间:+str(int(dateflag)/100,“#“)+年 -:表示引用单引号内的字符(串) now():获取当前的日期时间 year():从日期型数据中获得年信息,例如 year(“1972-11-08 10:20:30“) 返回:1972 month():从日期型数据中获得月信息,
14、例如 year(“1972-11-08 10:20:30“) 返回:11 day():从日期型数据中获得日信息,例如 year(“1972-11-08 10:20:30“) 返回:8 str():将对象转换成字符型,转换过程中可以进行格式化,例如str(3456.9876,“¥#,#0.00“) 返回值: “¥3,456.99“ int():将字符串或数字转换成整数,例如 int(100.9999) 返回:100 设置报表标题,报表头。我们希望能够像 EXCEL 冻结拆分一样,在翻页的时候使表名,表头和左边第一列固定不变;这在润乾报表中是通过将行列的属性设置为头标题、报表头、左表头等实现的。6
15、 预览表样6.1 在设计器中进行预览:点击润乾报表工具栏的预览按钮 会弹出报表参数设置对话框,用于模拟查询条件以及 URL 参数的传入情况。设置 dateflag 的值为 201000,dptid 为 2,groupid 为20000, userid 为 1,即查询 2010 年省本部模板 ID 为 20000 的模板的所有预算科目的上报下达情况,制表部门为省本部,制表人即登录用户为 userid 为 1 的系统管理员。6.2 发布到本机进行预览: 启动默认服务器:点击本地应用-预览-发布报表,或点击工具栏 中的 按钮启动默认服务器,工具栏的按钮变成 。 发布报表文件:点击 弹出“请输入报表名
16、称”对话框,在对话框中编辑报表发布的路径和文件名,点击【确定】按钮即可完成报表的发布。其中,报表发布路径不需更改,因为润乾的发布路径必须在安装路径之下。 在 IE 浏览器中进行查看:点击工具栏的 IE 浏览器图标,会自动在 IE 中打开发布文件,表样为空表样。IE 中的地址为报表文件在本机中的地址,还需手动在该地址后面输入报表文件的参数,点击跳转即可看到该查询条件下的报表内容。原地址:http:/127.0.0.1:6001/demo/reportJsp/showReport.jsp?raq=/TY_CYBJ_SBXD.raq在 URL 中手动输入参数:http:/127.0.0.1:6001
17、/demo/reportJsp/showReport.jsp?raq=/TY_CYBJ_SBXD.raq&dateflag=201000&dptid=2&groupid=20702&userid=1一。润乾报表的部署涉及到以下基本配置文件的修改:1.reportConfig.xml 中license下面的一行是指定许可证文件的,需要使用润乾的有效.lic 文件,该文件在应用中的地点是:/tbm/report/lic,文件名和地址不能错,根据现在所拥有的操作系统,各省应该使用类似这样的文件:xxxOther.lic。在 reportConfig.xml 中有以下配置是对 db2 的:dataSo
18、urcejdbc/tbm,db2,1,UTF-8,UTF-8,1如果是 oracle 版:dataSourcejdbc/tbm,oracle,1,UTF-8,UTF-8,1其中 jdbc/tbm 是在东方通或 websphere 中创建的 jndi 名。2.通用的报表设计文件及其它相关文件在下发的包中都有;3.自定义的报表文件(.raq),放置在/reportFiles/XX 下,XX 各省可自己指定,如北京可以写为 BJ,在报表管理的界面中,新建一个组专门放自定义报表,添加自定义报表,报表的 url 仿照通用的报表连接,将连接中的 TY 改为 BJ,raq 文件改为自己的即可,然后添加权限即可访问。二。水晶报表先创建以下菜单(可与润乾报表菜单同级 ):菜单标题 url 内容水晶-项目概览表 /report/Xcelsius.do?action=xcelsiusPrj水晶-预算科目分析表 /report/Xcelsius.do?action=xcelsiusItem水晶-科目预算完成表 /report/Xcelsius.do?action=xcelsiusKeyItem水晶-损益分析表 /report/Xcelsius.do?action=xcelsiusProfit然后给相应角色配置这些菜单即可。更多帮助及使用手册请参考润乾用户手册等文件。