java开发润乾报表

合集下载

润乾报表教程

润乾报表教程

润乾报表V4.0 高级教程北京润乾信息系统技术有限公司第1章序言中国式报表有别于西方报表,中国式报表很复杂!润乾报表是专门用于解决中国式复杂报表的报表工具!润乾报表软件的核心特点在于开创性地提出了非线性报表数学模型,采用了革命性的强关联语义模型、多源关联分片、不规则分组、自由格间运算、行列对称等技术,使得复杂报表的设计简单化,以往难以实现的报表可以轻松实现,避免了大量的复杂SQL编写与前期数据准备,报表设计的效率提高了一个数量级。

润乾报表采用JA V A开发,由两个部分构成:报表设计器和报表服务器。

润乾报表是一个很容易掌握的报表工具,对于复杂的中国式报表,完全不需要编程和复杂sql,只需要学习简单的表达式规则,就可以完成。

为了帮助读者快速掌握润乾报表的非线性模型用法,我们在《快逸报表V4.0入门教程》的基础上编写了这份《润乾报表V4.0高级教程》,希望读者先学习《快逸报表V4.0入门教程》,再来学习这份文档,效果更好。

本教程沿袭《快逸报表V4.0入门教程》的思路,避免复杂的概念,通过由浅入深的实例,深入浅出的讲解,辅以有针对性的练习题,一步一步帮助读者迅速掌握润乾报表的非线性报表模型的理论和操作。

只要你照着本教程去做,半天就可以初步掌握润乾报表。

希望在轻轻松松的过程中,你能很快地掌握非线性报表设计!第2章多源关联分片这份文档的思路,不再强调界面操作上的东西,比如某个按钮在哪里点,某个对话框怎么打开,更多地强调表达式怎么写,模型的原理是啥,表达式的规则是啥,用到的函数等2.1 多层交叉报表2.1.1一个例子我们先看下面这个多层交叉报表:[截图]从上面这个报表可以看出,这是一个多层的交叉报表,上边有两层动态横向扩展的上表头,左边有两层动态纵向扩展的左表头,中间的交叉点进行汇总统计,统计值和上表头、左表头息息相关。

我们看一下这样的报表在润乾报表中是如何设计的:1、首先定义数据集:[列出这个报表用到的数据集及其sql即可]2、写入单元格表达式,如下图所示:[设计界面截图,把格子拉大,表达式尽量看全]从上图可以看出,上表头分别通过[ ]格和[ ]格横向扩展形成,左表头通过[ ]格和[ ]格纵向扩展形成,中间的交叉点利用[sum]函数进行汇总,于是一个多层交叉报表很轻松就完成了。

循序渐进使用润乾报表3.0

循序渐进使用润乾报表3.0

循序渐进使用润乾报表第一章入门润乾报表3.0是一套专门面向程序开发人员制作复杂报表的工具系统,润乾报表3.0首次成功解决了复杂中国式报表的格式任意性及关系数据库的关联规律性之间的矛盾,使得用户能够方便简捷地制作自动化的任意报表,实现了报与表的完美结合。

润乾报表3.0采用了纯JAVA技术,设计器和运算器均采用JAVA开发,可以运行在任何操作系统下(Windows,Linux,各种UNIX),支持所有有JDBC接口的关系数据库,支持所有J2EE标准的应用服务器。

润乾报表3.0提供报表运算的JAVA类的API调用,可最紧密地和应用程序无缝结合,运算器可采用应用服务器的数据库缓冲池,程序员可自定义参数输入界面与运算器结合。

第一节基本概念单元格我们运行润乾报表编辑器,点击新建报表菜单,即可出现如下界面:我们发现,新建的报表由行列整齐的格子组成,这些格子我们称为单元格,所有的单元格组成了报表。

合并单元格我们选中一片连续的单元格区域,点击合并单元格菜单,就把这些被选中的单元格合并成了一个单元格,如下图所示,这个合并出来的新单元格称为合并单元格单元格数据类型我们选中一个单元格,在窗口右边的属性列表中,点击数据类型的属性值下拉箭头,即可看到下拉选项,分别有文字、统计图、图片字段、图片文件,如下图所示。

也就是说,单元格里的内容可以是文字、也可以是图片,图片内容可以来自文件,也可以来自数据库中的字段,还可以是统计图单元格属性的属性值和表达式在单元格的属性列表中,大家看到,每个属性都有属性值和表达式两种,这两种有什么区别呢?首先,属性值和表达式是互斥的,定义了属性值,就不必定义表达式,定义了表达式,就不必定义属性值。

其次,属性值是在编辑报表时就写死了的,在报表运行时不必经过运算,也不会被改变。

例如:你在单元格的背景色的属性值中定义了红色,那么报表运行时,它就是红色,不会被运算,不会被改变。

而属性的表达式在报表运行时,会被运算,该属性的最终属性值取决于表达式的运算结果值。

润乾报表4.0在J2EE下的部署

润乾报表4.0在J2EE下的部署

润乾报表在J2EE下的部署北京润乾信息系统技术有限公司目录第一章部署流程和步骤 (3)第二章 WEB应用配置 (4)一、创建新应用 (4)二、拷贝润乾WEB发布包 (4)三、相关文件的配置 (5)3.1 web.xml (5)3.2 reportConfig.xml (6)3.3 报表缓存配置 (9)3.4 并发数控制 (9)四、打WAR包 (10)第三章各种应用服务器的操作介绍 (11)一、 TOMCAT4.1.24的部署操作 (11)1.1 发布应用 (11)1.2 配置数据库连接池 (11)1.3 修改reportConfig.xml中的数据源配置 (13)二、TOMCAT5.0.28的部署操作 (13)2.1 发布应用 (13)2.2 配置数据库连接池 (13)2.3 修改reportConfig.xml中的数据源配置 (15)三、 WEBSPHERE的部署操作 (15)3.1 配置数据库连接池 (15)3.2 发布应用 (24)四、 WEBLOGIC的部署操作 (30)4.1 配置数据库连接池 (30)4.2 发布应用 (35)第四章常见部署问题 (38)一、应用服务器的差异 (38)1.1 jndi的前缀 (38)1.2 jdk的版本 (38)1.3 中文的支持 (38)1.4 servlet的版本 (39)二、操作系统的差异 (39)2.1 中文安装包 (39)2.2 系统图形环境错误 (40)三、数据库的连接问题 (43)3.1 数据库连接不上 (43)3.2 字符集配置错误 (45)3.3 sql需要转码 (45)第一章 部署流程和步骤如果和已有应用集成,一般来说已有应用已经配置好了数据库连接池,因此第一、第二步骤可以省略,只需要后面几个步骤。

配置应用服务器的数据库连接池、发布报表应用这两个步骤在不同应用服务器中的操作界面和操作方法是有区别的,举例来说,发布报表应用这个步骤,在weblogic和websphere中一般是发布一个war包或者是ear包,而在tomcat4中就是在server.xml中配置,不需要打war包,在tomcat5中则是打好war包直接拷贝到webapps目录下即可唯一不变的步骤是web应用配置,这部分包含四个步骤,在任何一个应用服务器中都是一样的。

润乾报表——精选推荐

润乾报表——精选推荐

润乾报表润乾报表使⽤1: 解压------安装runqian-V4.5.7-install.exe------需要引⽤( 润乾报表v4ide.lic ) 才能打开2: 数据库更换下jar包,将解压出的mysql-connector-java-5.1.48.jar 放到安装⽬录下的reportHome\jdbc下,把原有的mysql夹包删掉3: 引⼊数据需要集成 (润乾报表v4server_win.lic)才能链接数据库,或是启动tomcate4:定制报表后查看要启动tomcate才可以看5:定制的报表要⾃⼰⾃定义位置,⼀般是定义在安装⽬录下的 : reportHome\webapps\demo\reportFiles1.1配置数据源1.2新建报表1.3具体知识1.1:添加⼀⾏1.2:合并单元格合并单元格:选中要合并的单元格,点⼯具栏的即可完成合并操作。

1.3:添加序号1.4:有⼀列内容多,怎么显⽰1.5:给报表增加参数可以给报表增加参数-------然后在配置sql哪⾥引⽤参数------⼤概的过程是进⼊这张报表的时候可以将定义的参数传⼊-------传⼊到这个报表上之后----就可以引⽤在对应的sql上,只要sql上定义了1.6:返回值转义是否扩⼤会议 1:是 0 否',----------查询出来是0和11.7添加超链接这⾥要配合jsp页⾯来做1.8:设置查询参数类型1.9:⼀张报表怎么超链接到另⼀个报表"reportJsp/showReport.jsp?raq=xxxxx/xxxxx.raq&userName="+ER_NAME+"&userId="+ER_ID+"&startdate="+@startdate+"&enddate="+@enddate+"&Id="+@Id1.10: 在么在输⼊框⾥引⽤变量"学习情况统计表"+if(@startdate==null,"2019年1⽉",year(@startdate+"-01")+"年"+month(@startdate+"-01")+"⽉")+"-"+if(@enddate==null,year(now())+"年"+month(now())+"⽉",year(@enddate+"-01")+"年"+month(@enddate+"-01")+"⽉")。

润乾常用报表开发实例

润乾常用报表开发实例

常见报表形式1如何在报表中显示图片在实际项目中显示图片,一般是将图片放到服务器的文件夹中,让然后取得图片的绝对路径,在本例中,因为要取得图片地址根据考生的学号变化而变化,所以需要编写一个函数来取得图片的路径:create or replace function f_t_zsgl_bszs_hqzplj/***********************************************************名称: 硕士招生根据考生编号获取考生照片路径描述:作者: 徐耀辉修改日志:*************************************************************/(in_nd in varchar2,in_zsjj in varchar2,in_bmh in VARCHAR2) return varchar2isv_path varchar2(1000); --返回是否学位课beginv_path:='/opt/photo/'||in_nd||'/'||in_bmh||'.jpg';return(v_path);END;在数据集中进行调用:SELECTROWNUM AS id,a.txdz AS 通信地址,a.yzbm AS 邮政编码,a.nd as 年度,a.ksbh AS 考生编号,a.xxgzdw AS 学习工作单位,b.DWMC AS 报考单位,c.ZYMC AS 报考专业,a.zjhm AS 证件号码,d.BKDMC AS 报名点,a.zzllm ||a.zzllmc AS dy1,a.wgym ||a.wgymc AS dy2,a.ywk1m ||a.ywk1mc AS dy3,--a.bmh AS 报名号,a.xm as 考生姓名,f_t_zsgl_sszs_hqzplj(a.nd,a.bmh) AS 照片,--得到照片路径CASE WHEN (SELECT dydm FROM T_ZSGL_SSZS_KSKMK ksk WHERE a.nd=ksk.nd AND a.ywk2m=ksk.kskmdm)=4THEN a.ywk2m ||a.ywk2mcELSE ''END dy4,CASE WHEN (SELECT dydm FROM T_ZSGL_SSZS_KSKMK ksk WHERE a.nd=ksk.nd AND a.ywk2m=ksk.kskmdm)=5THEN a.ywk2m ||a.ywk2mcELSE ''END dy5 FROM T_ZSGL_SSZS_KSBMK aLEFT JOIN (SELECT * FROM T_ZSGL_ZSSZ_ZSDWXX WHERE QYBZ='1' AND ZSLBDM='1') b ON a.BKDWDM=b.DWDMLEFT JOIN T_BZHB_QGZYK c ON a.BKZYDM=c.zydmLEFT JOIN T_ZSGL_ZSSZ_BKD d ON a.BMDDM= d.BKDDMLEFT JOIN t_zsgl_sszs_kskmk f ON a.ZZLLM=f.kskmdm AND a.nd=f.ndLEFT JOIN t_zsgl_sszs_kskmk g ON a.wgym=g.kskmdm AND a.nd=g.ndLEFT JOIN t_zsgl_sszs_kskmk h ON a.YWK1M=h.kskmdm AND a.nd=h.ndLEFT JOIN t_zsgl_sszs_kskmk i ON a.YWK2M=i.kskmdm AND a.nd=i.ndWHERE ${condition} ORDER BY a.ksbh点击单元格,点击右键,选择“数据类型及编码风格”,在数据类型中选择:图片文件,如下图:在单元格的数据值属性中获取从数据库中得到的数据,如下图:2卡片式报表(没有大标题)卡片式报表的一般样式如下:首先设计样式:设置所有单元格的主格为可扩展单元格的名字,本例中设置为B2(注:B2的主格设置为空,不能以自己为主格,否则会循环调用,出错)设置报表分页方式为:按数据行数打印设置每页显示数据行数为每个小卡片里面包含的行数设置打印布局行数为每页需要显示的小卡片的行数设置打印布局列数为每页显示的小卡片的列数3卡片式报表(有大标题)如果报表包含大标题,如果用上面的方法,则无法实现大标题居中,所以需要用一种新如需实现下述报表样式:首先计算应该一共卡片有多少行:在本例中为:=int((ds1.count()+1)/2),如果小卡片是分三列显示则为:=int((ds1.count()+2/3),四列则为:=int((ds1.count()+3)/4),以此类推扩展出需要显示的行将数据填充到卡片中,此例中用数据集中记录的行号来判断应该填入的位置,如此例中:左边中的卡片的行号为:=(A4-1)*2+1,右面的为:=(A4-1)*2+1,然后将数据填入,用多少ds1.#0(数据集中记录的行号)来与卡片的行号匹配,此例中先选出座位号,然后小卡片中其它单元格以座位号为主格,如图:设计完以后还需调节卡片之间的距离,或者标题的高度,让每页显示出需要的卡片的行数4存储过程报表设计器支持存储过程的调用,不过只能得到返回的游标,其它返回的参数目前不能获取(也许是不知道怎么获取)定义数据集时,数据集的定义类似如下格式:{callP_XJGL_XJBB_XSNLTJXX(?,?,?,?,?,?)},数据集类型选择为存储过程,如图:选择编辑、参数,参数的顺序为存储过程定义的顺序:定义以后,存储过程数据集就和普通的数据集一样用了附:此例中的存储过程:CREATE OR REPLACE Procedure P_XJGL_XJBB_XSNLTJXX/***********************************************************名称: 统计在校学生年龄分组情况描述:作者: jhfu修改日志:2007年6月19 日完成存储过程*************************************************************/(in_bbbh IN VARCHAR2 , --报表编号in_czlx IN varchar2, --1 历史数据查询 2-- 当前数据查询 3--插入数据 in_czrgh IN varchar2, --操作人职工号out_message Out VARCHAR2,out_bbbh OUT VARCHAR2,out_cur_xjxx OUT Sys_Refcursor) ASt_bh varchar2(20);t_bhmc varchar2(300);t_hj int;t_x17 int;t_x18 int;t_x19 int;t_x20 int;t_x21 int;t_x22 int;t_x23 int;t_x24 int;t_x25 int;t_x26 int;t_x27 int;t_x28 int;t_x29 int;t_x30 int;t_x31 int;t_bbbh varchar2(20) :='';t_count INT;BEGINout_message :='1';IF in_czlx IS NULL THENout_message := '操作类型代码不能为空!';RETURN;END IF;IF in_czlx='1'AND in_bbbh IS NULL THENout_message := '历史数据查询请输入报表编号!';RETURN;END IF;IF in_czlx='3'AND in_czrgh IS NULL THENout_message := '统计数据时,操作人工号不能为空!';RETURN;END IF;IF in_czlx='1'THENOPEN out_cur_xjxx FORSELECT BH,BHMC,X17,X18,X19,X20,X21,X22,X23,X24,X25,X26,X27,X28,X29,X30,X31,HJ FROM T_XJGL_XJBB_ZXXSNLFZ WHERE bbbh=in_bbbh;END IF;IF in_czlx='2'OR in_czlx='3'THENOPEN out_cur_xjxx FORSELECT'01'AS BH,'总计'AS BHMC,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')<=17OR csrq IS NULL THEN'1'ELSE NULL END ),0) AS X17,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=18THEN'1' ELSE NULL END ),0) AS X18,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=19THEN'1' ELSE NULL END ),0) AS X19,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=20THEN'1' ELSE NULL END ),0) AS X20,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=21THEN'1' ELSE NULL END ),0) AS X21,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=22THEN'1' ELSE NULL END ),0) AS X22,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=23THEN'1' ELSE NULL END ),0) AS X23,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=24THEN'1' ELSE NULL END ),0) AS X24,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=25THEN'1' ELSE NULL END ),0) AS X25,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=26THEN'1'nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=27THEN'1' ELSE NULL END ),0) AS X27,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=28THEN'1' ELSE NULL END ),0) AS X28,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=29THEN'1' ELSE NULL END ),0) AS X29,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=30THEN'1' ELSE NULL END ),0) AS X30,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')>30THEN'1' ELSE NULL END ),0) AS X31,nvl(SUM(1),0) AS hjFROM t_xjgl_xjxx_yjsjbxxUNION ALLSELECT'02'AS BH,' 其中:女'AS BHMC,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')<=17OR csrq IS NULL THEN'1'ELSE NULL END ),0) AS X17,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=18THEN'1' ELSE NULL END ),0) AS X18,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=19THEN'1' ELSE NULL END ),0) AS X19,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=20THEN'1' ELSE NULL END ),0) AS X20,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=21THEN'1' ELSE NULL END ),0) AS X21,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=22THEN'1' ELSE NULL END ),0) AS X22,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=23THEN'1' ELSE NULL END ),0) AS X23,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=24THEN'1' ELSE NULL END ),0) AS X24,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=25THEN'1' ELSE NULL END ),0) AS X25,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=26THEN'1' ELSE NULL END ),0) AS X26,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=27THEN'1' ELSE NULL END ),0) AS X27,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=28THEN'1' ELSE NULL END ),0) AS X28,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=29THEN'1' ELSE NULL END ),0) AS X29,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=30THEN'1'nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')>30THEN'1' ELSE NULL END ),0) AS X31,nvl(SUM(1),0) AS hjFROM t_xjgl_xjxx_yjsjbxx WHERE xbdm='2'UNION ALLSELECT'03'AS BH,'博士生'AS BHMC,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')<=17OR csrq IS NULL THEN'1'ELSE NULL END ),0) AS X17,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=18THEN'1' ELSE NULL END ),0) AS X18,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=19THEN'1' ELSE NULL END ),0) AS X19,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=20THEN'1' ELSE NULL END ),0) AS X20,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=21THEN'1' ELSE NULL END ),0) AS X21,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=22THEN'1' ELSE NULL END ),0) AS X22,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=23THEN'1' ELSE NULL END ),0) AS X23,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=24THEN'1' ELSE NULL END ),0) AS X24,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=25THEN'1' ELSE NULL END ),0) AS X25,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=26THEN'1' ELSE NULL END ),0) AS X26,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=27THEN'1' ELSE NULL END ),0) AS X27,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=28THEN'1' ELSE NULL END ),0) AS X28,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=29THEN'1' ELSE NULL END ),0) AS X29,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=30THEN'1' ELSE NULL END ),0) AS X30,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')>30THEN'1' ELSE NULL END ),0) AS X31,nvl(SUM(1),0) AS hjFROM t_xjgl_xjxx_yjsjbxx WHERE xslbdm='01'UNION ALLSELECT'04'AS BH,' 其中:女'AS BHMC,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')<=17OR csrq IS NULL THEN'1'ELSE NULL END ),0) AS X17,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=18THEN'1' ELSE NULL END ),0) AS X18,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=19THEN'1' ELSE NULL END ),0) AS X19,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=20THEN'1' ELSE NULL END ),0) AS X20,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=21THEN'1' ELSE NULL END ),0) AS X21,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=22THEN'1' ELSE NULL END ),0) AS X22,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=23THEN'1' ELSE NULL END ),0) AS X23,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=24THEN'1' ELSE NULL END ),0) AS X24,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=25THEN'1' ELSE NULL END ),0) AS X25,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=26THEN'1' ELSE NULL END ),0) AS X26,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=27THEN'1' ELSE NULL END ),0) AS X27,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=28THEN'1' ELSE NULL END ),0) AS X28,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=29THEN'1' ELSE NULL END ),0) AS X29,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=30THEN'1' ELSE NULL END ),0) AS X30,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')>30THEN'1' ELSE NULL END ),0) AS X31,nvl(SUM(1),0) AS hjFROM t_xjgl_xjxx_yjsjbxx WHERE xslbdm='01'AND xbdm='2'UNION ALLSELECT'05'AS BH,'硕士生'AS BHMC,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')<=17OR csrq IS NULL THEN'1'ELSE NULL END ),0) AS X17,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=18THEN'1' ELSE NULL END ),0) AS X18,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=19THEN'1' ELSE NULL END ),0) AS X19,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=20THEN'1'nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=21THEN'1' ELSE NULL END ),0) AS X21,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=22THEN'1' ELSE NULL END ),0) AS X22,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=23THEN'1' ELSE NULL END ),0) AS X23,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=24THEN'1' ELSE NULL END ),0) AS X24,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=25THEN'1' ELSE NULL END ),0) AS X25,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=26THEN'1' ELSE NULL END ),0) AS X26,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=27THEN'1' ELSE NULL END ),0) AS X27,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=28THEN'1' ELSE NULL END ),0) AS X28,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=29THEN'1' ELSE NULL END ),0) AS X29,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=30THEN'1' ELSE NULL END ),0) AS X30,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')>30THEN'1' ELSE NULL END ),0) AS X31,nvl(SUM(1),0) AS hjFROM t_xjgl_xjxx_yjsjbxx WHERE xslbdm='11'UNION ALLSELECT'06'AS BH,' 其中:女'AS BHMC,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')<=17OR csrq IS NULL THEN'1'ELSE NULL END ),0) AS X17,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=18THEN'1' ELSE NULL END ),0) AS X18,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=19THEN'1' ELSE NULL END ),0) AS X19,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=20THEN'1' ELSE NULL END ),0) AS X20,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=21THEN'1' ELSE NULL END ),0) AS X21,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=22THEN'1' ELSE NULL END ),0) AS X22,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=23THEN'1' ELSE NULL END ),0) AS X23,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=24THEN'1'nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=25THEN'1' ELSE NULL END ),0) AS X25,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=26THEN'1' ELSE NULL END ),0) AS X26,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=27THEN'1' ELSE NULL END ),0) AS X27,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=28THEN'1' ELSE NULL END ),0) AS X28,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=29THEN'1' ELSE NULL END ),0) AS X29,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=30THEN'1' ELSE NULL END ),0) AS X30,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')>30THEN'1' ELSE NULL END ),0) AS X31,nvl(SUM(1),0) AS hjFROM t_xjgl_xjxx_yjsjbxx WHERE xslbdm='11'AND xbdm='2'UNION ALL--进修班SELECT'07'AS BH,'研究生班学生'AS BHMC,null AS X17,null AS X18,null AS X19,null AS X20,null AS X21,null AS X22,null AS X23,null AS X24,null AS X25,null AS X26,null AS X27,null AS X28,null AS X29,null AS X30,null AS X31,null AS hj/* nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')<=17 OR csrq IS NULL THEN '1' ELSE NULL END ),0) AS X17,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=18 THEN '1' ELSE NULL END ),0) AS X18,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=19 THEN '1' ELSE NULL END ),0) AS X19,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=20 THEN '1'nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=21 THEN '1' ELSE NULL END ),0) AS X21,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=22 THEN '1' ELSE NULL END ),0) AS X22,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=23 THEN '1' ELSE NULL END ),0) AS X23,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=24 THEN '1' ELSE NULL END ),0) AS X24,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=25 THEN '1' ELSE NULL END ),0) AS X25,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=26 THEN '1' ELSE NULL END ),0) AS X26,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=27 THEN '1' ELSE NULL END ),0) AS X27,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=28 THEN '1' ELSE NULL END ),0) AS X28,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=29 THEN '1' ELSE NULL END ),0) AS X29,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=30 THEN '1' ELSE NULL END ),0) AS X30,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')>30 THEN '1' ELSE NULL END ),0) AS X31,nvl(SUM(1),0) AS hjFROM t_xjgl_xjxx_yjsjbxx WHERE xslbdm!='99' */FROM dualUNION ALLSELECT'08'AS BH,' 其中:女'AS BHMC,/* nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')<=17 OR csrq IS NULL THEN '1' ELSE NULL END ),0) AS X17,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=18 THEN '1' ELSE NULL END ),0) AS X18,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=19 THEN '1' ELSE NULL END ),0) AS X19,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=20 THEN '1' ELSE NULL END ),0) AS X20,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=21 THEN '1' ELSE NULL END ),0) AS X21,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=22 THEN '1' ELSE NULL END ),0) AS X22,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=23 THEN '1' ELSE NULL END ),0) AS X23,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=24 THEN '1' ELSE NULL END ),0) AS X24,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=25 THEN '1' ELSE NULL END ),0) AS X25,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=26 THEN '1' ELSE NULL END ),0) AS X26,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=27 THEN '1' ELSE NULL END ),0) AS X27,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=28 THEN '1' ELSE NULL END ),0) AS X28,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=29 THEN '1' ELSE NULL END ),0) AS X29,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')=30 THEN '1' ELSE NULL END ),0) AS X30,nvl(sum( CASE WHEN to_char(sysdate,'YYYY')-to_char(csrq,'yyyy')>30 THEN '1' ELSE NULL END ),0) AS X31,nvl(SUM(1),0) AS hjFROM t_xjgl_xjxx_yjsjbxx WHERE xslbdm='01' AND xbdm='2'*/null AS X17,null AS X18,null AS X19,null AS X20,null AS X21,null AS X22,null AS X23,null AS X24,null AS X25,null AS X26,null AS X27,null AS X28,null AS X29,null AS X30,null AS X31,null AS hjFROM dualUNION ALLSELECT'09'AS BH,'普通本科生'AS BHMC,null AS X17,null AS X18,null AS X19,null AS X20,null AS X22,null AS X23,null AS X24,null AS X25,null AS X26,null AS X27,null AS X28,null AS X29,null AS X30,null AS X31,null AS hjFROM dualUNION ALLSELECT'10'AS BH,' 其中:女'AS BHMC,null AS X17,null AS X18,null AS X19,null AS X20,null AS X21,null AS X22,null AS X23,null AS X24,null AS X25,null AS X26,null AS X27,null AS X28,null AS X29,null AS X30,null AS X31,null AS hjFROM dualUNION ALLSELECT'11'AS BH,'普通专科生'AS BHMC,null AS X17,null AS X18,null AS X19,null AS X20,null AS X21,null AS X22,null AS X24,null AS X25,null AS X26,null AS X27,null AS X28,null AS X29,null AS X30,null AS X31,null AS hjFROM dualUNION ALLSELECT'12'AS BH,' 其中:女'AS BHMC,null AS X17,null AS X18,null AS X19,null AS X20,null AS X21,null AS X22,null AS X23,null AS X24,null AS X25,null AS X26,null AS X27,null AS X28,null AS X29,null AS X30,null AS X31,null AS hjFROM dualUNION ALLSELECT'13'AS BH,'成人本科生'AS BHMC,null AS X17,null AS X18,null AS X19,null AS X20,null AS X21,null AS X22,null AS X23,null AS X24,null AS X26,null AS X27,null AS X28,null AS X29,null AS X30,null AS X31,null AS hjFROM dualUNION ALLSELECT'14'AS BH,' 其中:女'AS BHMC,null AS X17,null AS X18,null AS X19,null AS X20,null AS X21,null AS X22,null AS X23,null AS X24,null AS X25,null AS X26,null AS X27,null AS X28,null AS X29,null AS X30,null AS X31,null AS hjFROM dualUNION ALLSELECT'15'AS BH,'成人专科生'AS BHMC,null AS X17,null AS X18,null AS X19,null AS X20,null AS X21,null AS X22,null AS X23,null AS X24,null AS X25,null AS X26,null AS X28,null AS X29,null AS X30,null AS X31,null AS hjFROM dualUNION ALLSELECT'16'AS BH,' 其中:女'AS BHMC,NULL AS X17,null AS X18,null AS X19,null AS X20,null AS X21,null AS X22,null AS X23,null AS X24,null AS X25,null AS X26,null AS X27,null AS X28,null AS X29,null AS X30,null AS X31,null AS hjFROM dualUNION ALLSELECT'17'AS BH,'网络本专科生'AS BHMC,null AS X17,null AS X18,null AS X19,null AS X20,null AS X21,null AS X22,null AS X23,null AS X24,null AS X25,null AS X26,null AS X27,null AS X28,null AS X30,null AS X31,null AS hjFROM dualUNION ALLSELECT'18'AS BH,' 其中:女'AS BHMC,null AS X17,null AS X18,null AS X19,null AS X20,null AS X21,null AS X22,null AS X23,null AS X24,null AS X25,null AS X26,null AS X27,null AS X28,null AS X29,null AS X30,null AS X31,null AS hjFROM dual ;IF in_czlx='3'THENSELECT COUNT(1) INTO t_count FROM t_xjgl_xjbb_xjtjrz WHERE bblx='221'AND to_char(tjsj,'yyyymmdd')=to_char(SYSDATE,'yyyymmdd');t_bbbh:=to_char(Sysdate,'yyyy-mm-dd')||'-'||to_char(t_count+1)||'-221';INSERT INTO t_xjgl_xjbb_xjtjrz(wid,bblx,bbbh,bbmc,tjsj,tjrgh,tjrxm,zt)VALUES (sys_guid(),'221',t_bbbh,'',sysdate,in_czrgh,'','0');LOOPFETCH out_cur_xjxx INTO t_bh,t_bhmc,t_x17,t_x18,t_x19,t_x20,t_x21,t_x22,t_x23,t_x24,t_x25,t_x26,t_x27,t_x28,t_x29,t_ x30,t_x31,t_hj;EXIT WHEN out_cur_xjxx%NOTFOUND;INSERT INTO t_xjgl_xjbb_zxxsnlfz(wid,bbbh,bh,bhmc,hj,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29 ,x30,x31)VALUES(sys_guid(),t_bbbh,t_bh,t_bhmc,t_hj,t_x17,t_x18,t_x19,t_x20,t_x21,t_x22,t_x23,t_x24,t_x25,t_ x26,t_x27,t_x28,t_x29,t_x30,t_x31);END LOOP;CLOSE out_cur_xjxx;COMMIT;END IF ;END IF;out_bbbh:=t_bbbh;EXCEPTIONWHEN OTHERS THENout_message:= '数据有误,请与系统管理员联系?:'||SQLERRM;ROLLBACK;END;5学位证书之类非常规纸张需要定义纸张尺寸为:自定义;还需设置自定义纸张宽度和高度:设置完成以后可以将扫描的图片做为底图进行临摹,坐标数据需要显示的位置(打印时和上传到服务器中时,图片不会显示)6用group分页有时候用户需求按照每个学院分组,每个学院之后必须分页,此时可以用group 设计,然后对group单元格呢设置为行后分页:7页脚的设置技巧如果页脚的上面单元格有边框的话,直接在下面加入页脚则在展示的时候会多出一条横线。

润乾报表基本介绍[技巧]

润乾报表基本介绍[技巧]

润乾报表3.0介绍润乾报表3.0是用于统计报表制作及报表及数据填报的大型企业级工具软件。

产品首次成功解决了报表单元格与关系数据库之间的关联规律性,特别适合于中国式报表的填报和统计。

一、产品优势1.绘制方便润乾报表采用类EXCEL的绘制方式,真正做到所见即所得,把程序员从繁重且无聊的报表格式设置工作中解脱出来,极大的提高的表格绘制的方便度和效率,产品特有的EXCEL导入功能(包括格式)可充分利用业务人员原有积累。

2.数据模型先进润乾报表独创的数据模型首次成功地解决了中国报表中单元格与数据字段之间的弱关联性,彻底打破传统行式报表方案,报表行列完全对称,特有的层次扩展机制使多层分组及交叉报表制作非常简单,提供针对关联格的跨行跨组运算,很容易计算小计、同期比等数据。

同一报表中支持多个异构的数据源,允许报表各片之间无关,可用多个简单的数据集成组合出复杂报表,程序员无须再为每张报表编程(脚本或存储过程)或写复杂SQL准备数据。

3.输出能力丰富润乾报表每个单元格属性均提供条件控制,如颜色、行高、是否可见等均可与格内数据相关;支持代码显示值对应、多种数据格式、图片文件和图片字段的处理。

产品提供十几种各类统计图,支持PNG/GIF/JPG三种格式。

每张报表均可生成HTML、EXCEL、PDF三种输出格式(输出结果完全不失真,包括其内的统计图)。

单元格与统计图例均可加带参数的链接从而实现数据钻取功能,多层报表可在线收缩展开。

4.打印控制强大润乾报表提供强大的打印控制功能,按行数和纸张大小分页分栏或强制分页,表头自动重复(包括左表头),允许一张纸上打多个报表,提供末页补足空行。

可采用像素和毫米两种计量单位,独创的底图描绘功能以支持套打;5.集成性好润乾报表采用纯JAVA开发,利用服务器端提供丰富的API调用和标记可完全无缝地嵌入到基于J2EE的应用程序中(可看作应用程序员自己写的代码),程序员可更换报表的数据库连接和数据源、采用应用服务器的连接池管理;设计器也提供外置的数据源和数据字典定义,可由应用程序员提供这些信息。

润乾报表安装步骤

润乾报表安装步骤

你配置步骤这个文档最好在自己机器上先部署关于润乾报表工具与cache连接与使用配置过程如下:1.安装jdk 如:(如果您要使用免安装的tomcat那就要配置环境变量如错误!未找到引用源。

:)图表1 jdk安装后部署图查看有没有安装好cmd下运行java –version 如错误!未找到引用源。

:图表2 查看当前系统jdk安装的版本2 安装润乾报表工具4.2.1(直接安装就好,如果让要选择jdk就选择您刚安装的jdk版本就ok 然后下一步到完成)如:错误!未找到引用源。

A : )图表3 工具安装A可根据情况选择(这里默认为中文)ok 如:错误!未找到引用源。

—>B : )图表 4 工具安装B点击下一步如:错误!未找到引用源。

—>C : )图表 5 工具安装C 点击下一步如:错误!未找到引用源。

D : )图表 6 工具安装D点击下一步如:错误!未找到引用源。

E : )图表7 工具安装E 最后点击安装——> 完成3 .由于报表工具要与cacha数据库连接起来,所以要对刚才报表工具在次配置,第一:点击东华医疗智能报表文件夹中的东华医疗智能报表.exe执行文件选择刚才您安装润乾报表工具根目录路径就ok(如:C:\Program Files\reportHome),点击导入就ok了如错误!未找到引用源。

:第二:也可以手工配置根据东华医疗智能报表部署文档.doc图表8 导入配置文件点击确定就ok4 .配置润乾报表与cache数据库交互先找到文件并打开修改这个文件把trakcarep8/trak/web替换成在cache中csp访问路径如:trakcare/trak/web然后在单独查找trakcarep8改换成如trakcare 保存,打开cache中的studio导入文件5 .打开润乾工具,创建数据源:可以通过菜单cache扩展—>数据源向导可以新建与cache连接的数据源如图:错误!未找到引用源。

润乾报表环境配置

润乾报表环境配置

基于Tomcat的润乾数据源配置第一步、配置连接池在tomcat安装目录下进入conf/Catalina/localhost文件夹新建.xml文件,文件名为你项目名称,如,然后打开文件开始配置数据源的连接池,输入<?xml version='1.0' encoding='utf-8'?><Context docBase="/slarms" path="/slarms" ><Resource name="AB" auth="Container" type="javax.sql.DataSource"maxActive="100" maxIdle="30" maxWait="10000"username="slarms"password="oracle"driverClassName="oracle.jdbc.driver.OracleDriver"url="jdbc:oracle:thin:@192.168.1.248:1521:bksvr" /></Context>需要配置参数说明:docBase、path:直接把斜杠“/”后的改成你的项目名称name:数据源名字,现在统一用AB;username:数据库登录用户名password:数据库登录密码driverClassName:数据库驱动url:数据库连接地址。

第二步、添加oracle驱动把数据库驱动ojdbc14.jar考到tomcat服务器的common/bin目录下第三部、配置reportConfig.xml文件进入slarms\WebRoot\WEB-INF目录打开reportConfig.xml文件,配置数据源<config><name>dataSource</name><value>AB,oracle,GBK</value></config>AB:为你刚才配置连接池时的数据源名称oracle:数据库名GBK :数据库编码。

润乾报表字符串组参数-概述说明以及解释

润乾报表字符串组参数-概述说明以及解释

润乾报表字符串组参数-概述说明以及解释1.引言1.1 概述概述部分的内容:在软件开发过程中,经常需要对报表数据进行处理和展示。

而其中一种常见的方式就是使用报表字符串组参数来实现对数据的格式化和灵活操作。

润乾报表字符串组参数就是一种用于报表设计和定制的软件工具,它能够有效地对报表数据进行处理和展示,并且具有一定的自定义能力。

润乾报表字符串组参数的基本思想是将报表的数据按照一定的格式组织成字符串,并通过字符串的操作和处理来实现对数据的展示和操作。

通过使用字符串组参数,我们可以对报表中的各个数据项进行灵活的排列和格式化,以满足不同的需求和要求。

同时,它还可以在报表设计和定制的过程中,方便地对数据进行修改和调整,以便更好地满足用户的需求。

润乾报表字符串组参数的使用非常灵活和方便。

我们可以通过设置参数的格式和内容,来实现对报表数据的格式化和展示。

例如,我们可以使用字符串组参数来设置表头、列名、数据行等信息,从而使报表具有更好的可读性和美观性。

同时,我们还可以通过设置字符串组参数的格式和样式,来实现对报表数据的精确控制和灵活操作。

这些功能的实现,使得润乾报表字符串组参数成为了报表设计和定制中的重要工具。

总之,润乾报表字符串组参数是一种非常实用和灵活的工具,它能够有效地对报表数据进行处理和展示。

通过使用字符串组参数,我们可以轻松地对报表进行定制和设计,满足不同需求和要求。

它的使用不仅可以提升报表的效果和质量,还能够方便地对报表进行修改和调整。

相信在未来的报表设计和定制中,润乾报表字符串组参数将发挥着越来越重要的作用。

1.2 文章结构在本文中,我们将讨论润乾报表字符串组参数的相关内容。

为了更好地理解和使用这些参数,我们将按照以下结构进行阐述:引言:在引言部分,我们将简要介绍本文的概述、文章结构以及目的,以便读者能够更好地了解本文的背景和目标。

正文:正文部分将分为两个要点进行讨论。

- 第一个要点:在这一要点中,我们将详细探讨润乾报表字符串组参数的定义、特点以及用途。

润乾报表入门

润乾报表入门

1 前言鉴于目前报表开发没有一个统一的规范,每个开发的风格和习惯也不一致,所以动手写了这份报表开发文档,一来有助于统一大家的报表的风格,提供一些常见问题的解决方案,二来方便以后新人的学习使用。

本人也是略懂皮毛,有什么错误和不足之处,欢迎大家补充修改。

2.报表工具安装解压后运行runqian-v4.5.5-install.exe安装文件,按引导完成安装。

其中,在初次打开报表文件和发布报表文件的时候(后续会提到),会提示我们需要lic文件,就是下图中的两个lic文件。

Figure 13.报表工具的使用3-1 配置数据源使用报表时需要先对数据源进行配置:Figure 2选择新建一个数据源:Figure 3项目中默认使用的数据源名称为reportjndi.参考图3进行配置后,点击连接,进行数据源连接,这样就完成了报表服务器与数据库的连接。

3-2 新建报表目前的报表形式分为两部分,一是用来显示查询结果的“报表名.raq”文件,另一个是用来提供查询条件的“报表名_arg.raq”文件。

我们只需要在保存文件的时候,按上述格式命名,打开.raq文件时,会自动打开相关的_arg.raq文件。

3-3 结果显示报表设计首先新建一张报表,直接点击左上角工具栏上的即可。

按照给定的表样设计好报表名名、列名。

如下图,这里提供一种样式当做参考模板,如客户无特殊需求,希望各开发按照统一的样式标准进行设计,有助于提高所有报表的统一性,后面还会提到一些规范,希望大家也可以遵守起来。

Figure 4报表名这一行,采用黑色、二号字,加粗。

列名采用白色、三号字,加粗,背景色使用淡紫色(颜色相近即可)。

若每一列下面还要分列,则使用黑色、小三号字,结果数据使用黑色、四号字。

Figure 5设定好报表样式后,开始根据逻辑进行取数,设置每一列的宽度时,如果需要在一行中完整显示的,要选择“按单元格内容扩大”,并去掉“自动换行”。

Figure 6报表通过配置的“数据集”进行取数。

润乾报表使用及Web部署

润乾报表使用及Web部署

润乾报表设计器使用及在报表在Web工程中的部署1.润乾报表设计器的使用步骤●安装jdk1.6,并配置好环境变量,配置好润乾报表设计器批处理文件中的JA V A_HOME;●配数据源●新建空白报表;●建数据集;●制作报表并保存;2.报表在Web工程中的部署●安装应用服务器(Tomcat6.0)●导包:将润乾实例工程下WEB-INF目录下的lib目录里的所有jar导入到自己建的web工程中的相同位置;将润乾实例工程下WEB-INF目录下的导入到自己建的web工程中的相同位置;将导入到自己新建web工程的WebRoot下●将class12.jar包导入到应用服务器的lib目录下●修改配置文件将润乾实例工程下WEB-INF目录下的web.xml中的<servlet>→</taglib>中的所有内容都粘贴到自己Web工程的web.xml中,由于xml版本的问题<taglib></taglib>需写在<jsp-config></jsp-config>在应用服务器下的conf目录下的context.xml,打开并在<Context></Context>之间配上<Resource name="Atom" auth="Container" type="javax.sql.DataSource"username="atom"password="atom"driverClassName="oracle.jdbc.driver.OracleDriver"url="jdbc:oracle:thin:@localhost:1521:oracle10"/>3.jsp页面的展现在jsp头部引入在需要展现报表的地方加上下面的代码即可:4.手动部署发布报表Tomcat能否正常启动,首先要配环境变量JA V A_HOME在Tomcat服务器的conf目录下的server.xml文件中配置<Context path="/runqian" docBase="C:\tomcat6-MyEclipse\webapps\RunqianTest"></Context>。

java开发润乾报表

java开发润乾报表

java开发润乾报表润乾报表设计1、安装润乾报表设计器2、设计报表模板3、数据集为存储过程的报表设计4、将设计好的模板部署到应用中过去5、存储过程1安装润乾报表设计器1.1获取安装包安装包在svn上:http://10.120.23.41/svn/core/开发组资料/开发工具/润乾报表v4.5.exe Check后安装即可.安装后的目录结构如下:1.2完成相关授权使用润乾报表设计器需要完成两次授权:A: 润乾报表设计器授权B: 设计完成后发布应用的服务器授权目前我们本机采用的是Windows的授权,服务器上的ycps项目采用的是Linux授权版本,所以我们在开发完成后不要commit授权文件1.3授权完成授权完成,启动后的界面如下:2简单报表设计2.1配置数据源A: 配置>数据源B: 数据源配置界面C: 点击新建自己的数据源D: 数据源配置细节,为了开发的统一数据源名称统一采用“oracle”E: 确定之后F: 连接成功2.2数据集的配置A: 新建报表如图:A: 配置数据集,也可以直接F11快捷键B: 数据集配置C: 选择模式、表、字段D:选择需要的字段E:此时你可以点击语法选项卡看看,聪明的你就明白了,然后确定即可F:数据集ds1已经创建完成2.3简单报表的实现A:利用配置好的数据集设计简单模板B:启动tomcat、发布模板、在浏览器中浏览C:浏览3数据集为存储过程的报表设计3.1配置数据源见2.13.2配置数据集3.2.1配置存储过程数据集B:弹出存储过程数据集,在此之前存储过程一定要测试成功C:配置数据集参数说明:1、参数的个数、顺序要和procedure严格一致2、结果类型应该指定具体类型如字符串3、注意输出参数及类型D:确定,但是没有完!3.2.2配置模板参数可以这样理解:刚才配置的数据集参数需要由报表模板来提供,那模板也需要配置参数A:配置> 参数B:参数编辑,然后确定模板设计完毕3.2.3在设计器中浏览报表A:按F11进入数据集设置B:点击浏览数据C:填入必填的参数确定即可浏览,注意此处的浏览只是证明数据集设置的正确性D:数据集设置完成且正确后会出现如下。

润乾报表在项目中的配置

润乾报表在项目中的配置
16
页面参数后台ACTION处理
在查询页面,点击查询按钮,调用后台对应的 ACTION,ACTION组织FORM中的参数,以润乾 能解析的参数方式传给润乾,代码参考 src/com/sinosoft/costctrl/ui/control/action/UIStat BudgetAuditAction.java。
</servlet> <servlet-mapping>
<servlet-name>reportServlet</servlet-name> <url-pattern>/reportServlet</url-pattern> </servlet-mapping> <taglib> <taglib-uri>/WEB-INF/runqianReport4.tld</taglib-uri> <taglib-location>/WEB-INF/runqianReport4.tld</taglib-location> </taglib>
河南费用管控组内部交流 ---润乾报表
中科软科技股份有限公司 2011年2月10日
主要内容
一、关于报表的简述 二、润乾报表在项目部署中用到的文件及jar包 三、相关文件的配置 四、页面JSP结构 五、页面参数后台ACTION处理 六、报表设计
2
报表
报表是企业管理的基本措施和途 径,是企业的基本业务要求,也是实 施 BI 战略的基础。报表可以帮助企业 访问、格式化数据,并把数据信息以 可靠和安全的方式呈现给使用者。深 入洞察企业运营状况,是企业发展的 强大驱动力。
点击增加按钮,选择自定义:

润乾报表的使用技巧

润乾报表的使用技巧

润乾报表的使用技巧
润乾报表软件是一个常用的Java报表工具,使用较为简单,可以轻松制作出各种各样的报表,是一个不错的Web报表工具,下面是我分享的一些使用润乾报表工具所总结的经验和技巧,供其他润乾报表的使用者参考。

1、按照千元单位显示
点单元格属性-显示值-表达式,将数值修改为if(value()!=0,value()/1000,0),这样,可以在数据数值不变的情况下将数值按照千元方式显示。

2、单行颜色改变
如果某几行数值为“小计”、“合计”等数值,需要将其背景颜色改变,假设第一列是A5,则点单元格属性-字体-背景色,将其数值修改为if (A5 like '*计*',-592192,-1),这样“小计”、“合计”行的颜色就会变化,而其他行颜色不变。

3、按参数隐藏列
在报表参数中,传入某个数值后,将某一列或几列隐藏,例如当报表日期大于2009年1月1日,则隐藏几列,可以选择该列,在右边的属性中,找到“是否可见”,在表达式中填写if(@reportdate>"20090101",false,true),即可按照输入参数隐藏列。

4、报表固定表头
报表在WEB页面输出的时候,需要设置横向、纵向滚动条来固定报表表头,选中需要固定的行或者列,点属性,将其所属区域设置为“表头区”,就可以固定表头。

以上是我使用过程中总结的一些技巧,另外,润乾报表中提供了很多详细的帮助文档和实例,也很方便简单,易于学习。

润乾报表开发

润乾报表开发

认识润乾报表什么是报表报表是具有一定格式、包含一定信心的载体润乾报表分类1.按报表是否填写数据分类:普通报表参数表单普通报表主要用于数据展示参数表单主要用于多条件数据查询填报表单2.按报表数据方式分类:普通报表——以一个单元格作为存储单位行式报表—-以一整行单元作为存储单元因此行式报表效率较高,但有诸多限制。

润乾报表简单示例开发示例一:普通报表目标:了解普通报表开发过程资源:参考润乾报表系统自带Demo数据源进行开发演示。

过程:1.打开润乾报表设计器2.选择配置|数据源单击,并选择连接Demo数据源填报表单主要用于数据更新提交操作,用户提交表单后,数据将自动提交至3.选择文件|新建报表一份报表主要包含三种对象(数据集、报表类型、报表定义);这里我们现在确定数据集,选择数据集类型为SQL检索并单击下一步,系统将进入SQL编辑器,开发人员通过填写配置信息,系统将自动生成相应SQL脚本。

确定数据集相关表确定数据集包含字段系统自动生成SQL脚本4.确定好数据集后,系统将提示确定报表类型,我们选择网格报表,单击生成网格报表5.系统生成报表如下单击预览效果如下:在对报表进行一些简单修饰,效果如下:示例二:参数报表目标:1.了解参数表单功能2.了解参数表单开发过程3.了解如何将参数表单与普通报表一起使用资源:参考润乾报表系统自带Demo数据源进行开发演示。

准备:1.已经设计好一个普通报表,命名为PuTongReport.raq2.将设计参数表单命名为PuTongReport_arg。

raq过程:1.选择文件|新建报表2.选择填报或参数表单,直接单击生成空白报表3.设计参数模板接下来,分别设置C2、C3、E2、E3四个单元格属性。

4.选择C2单元格,单击右键选择,弹出一个数据填报编辑窗口。

在是否可填写前打勾。

5.同理C3进行如下设置。

6.E2设置如下与C2设置相同7.E3设置如下:8.接下来,分别设置C2、C3、E2、E3四个单元格进行命名命名方法如下,以C2为例,选中C2.设置单元格属性web变量名为name,类似,我们设置C3为sex,E2为bonus,E3为birthday9.这样参数模板就设计好了,在浏览器端查看普通报表时,系统会自动找到相应查询模板如图所示。

润乾报表V4.0应用开发课程介绍

润乾报表V4.0应用开发课程介绍

润乾报表V4.0应用开发课程介绍
培训对象:
有java编程经验以及应用开发经验的程序员。

培训目标:
熟悉润乾报表API接口的架构,掌握润乾报表基本API接口的调用,掌握润乾报表与网页脚本的结合开发。

先修课程/基本技能:
熟悉java编程,熟悉至少一种java开发工具,如eclipse或者jbuilder等,对润乾报表的制作有初步了解,已经学习了《润乾报表入门教程》。

课程时间安排:
五个工作日。

培训大纲:
运算报表
浏览式报表的读入、计算、输出
填报表的导入、提交保存
swing中填报
报表模板编辑
创建新报表、打开已有报表
设置各种属性
保存报表
语义层编辑
读入语义层
设置、添加、删除各种属性
保存、输出语义层文件
自定义类
自定义函数
自定义数据集
填报监听类
参数监听类
自定义统计图
自定义菜单
数据集监听类
系统API
装载授权文件
装载语义层文件
清除缓存
网页脚本控制
单元格数据值的控制
单元格外观控制
超链接
触发事件
内置javascript函数介绍
考核方式:
在规定时间内上机编程,不得交流。

参考资料:
《润乾报表V4.0应用开发教程.doc》、应用开发教程例子。

免费开源JAVA报表工具对比BIRT报表VS润乾报表之初体验

免费开源JAVA报表工具对比BIRT报表VS润乾报表之初体验

免费开源JAVA报表⼯具对⽐BIRT报表VS润乾报表之初体验前⼀段时间,被导师安排对报表开发⼯具做调研,之后就⼀度泡在各⼤博客、论坛⾥,尽可能全⾯的搜集了⼏款报表⼯具的优缺点,攒成了《java报表⼯具报表软件选型经验总结分享》。

不过⼤多都是直接抄的百度百科的介绍(嘿嘿…),并没有真的去挨个进⾏试⽤。

还好导师看过后基本认可,接下来就只安排了对其中两种报表⼯具做深⼊对⽐,同样要求提交书⾯对⽐报告……对⽐报表⼯具:BIRT、润乾报表原因:⼀个是开源的免费,另⼀个是商⽤最便宜的……好吧,我承认我们真的很穷~~~意外的是,在试⽤润乾报表的过程中,在论坛上发现居然有免费的版本,相信到时⼼⾥的天平⼜会倾斜⼀点了吧。

润乾报表免费版参考链接是:/article/1543913283529试⽤环境:Window 10 操作系统、JDK 1.8.0_73对⽐内容1. 通过DEMO演⽰初步了解BIRT:暂时没找到相关信息。

润乾报表:地址:,包括:⼤屏多组件展⽰,基本报表(分组报表、⽹格式报表、报表组等),参数查询(模糊查询、下拉选择、下拉⽇历等),图形展⽰(仪表盘、地图、线图、柱状图、饼图等),复杂报表(折叠表、交叉报表等),填报表,多种打印导出⽅式…,等等。

⼩结:⼤致看完,润乾报表的demo演⽰,不管是不是⽼王卖⽠,总体感觉功能⽐较全⾯。

⽽BIRT因为没有找到demo演⽰,所以需要在后⾯的具体试⽤中慢慢积累总结和体会。

2. 下载和安装BIRT下载地址:,如下图所⽰,直接点击“Download Now”进⾏下载,建议下载All-in-One版本。

下载完成后,是⼀个包含了birt报表插件的eclipse⽂件夹。

选择下载All-in-One版本可以避免不少⿇烦事,特别是:在eclipse中安装birt插件时出现的各种问题。

安装BIRT时,需要注意All-in-One版本是免安装的,直接解压就可以使⽤(如下图),前提是操作系统事先要配置好java环境变量且版本⾼于jdk 1.7。

润乾报表在J2EE下的部署

润乾报表在J2EE下的部署

时间:AM 9:30—12:00 PM 13:30 —16:30方式:讲解+练习了解润乾报表WEB架构;熟悉润乾报表WEB报表展现机制;学会在J2EE WEB服务器上部署润乾报表;TomcatWeblogicWebSsphere学会在J2EE WEB应用中发布报表;润前报表缓存配置培训内容一、了解润乾报表WEB架构二、熟悉部署流程和步骤三、部署润乾报表四、发布报表以及TAG标签的应用五、润乾报表缓存配置六、常见部署发布问题一、润乾报表的WEB架构润乾报表—总体结构润乾报表---WEB应用结构润乾报表---计算流程润乾报表—总体结构W E B 应用服务器部署了润乾的WEB 应用报表模块客戶端服务器J2EE 应用服务器WEB 应用WEB 应用权限管理模块办公管理模块报表引擎报表模板报表是应用的一部分!润乾报表---WEB 应用结构Web 服务器应用系统输出报表到指定目录或发送EMAIL数据库打印或输出结果文档报表文件(*.raq)浏览器或文件系统润乾报表引擎报表调度器润乾报表设计器润乾报表---计算流程浏览器JSP文件报表引擎TAG APIReportEngine报表模板数据文件Contextconfig数据源配置授权配置日志配置语义层配置缓存配置……Html Tag Param tag二、部署流程和步骤配置应用服务器的数据库连接池创建新应用拷贝润乾报表web发布包配置润乾相关的配置文件发布报表应用打war包Web应用配置不同服务器配置方式不一样润乾报表核心配置文件reportConfig.xml2.1、安装J2EE WEB服务器Tomcat拷贝安装目录Weblogic安装创建domainWebSpher安装2.1.1准备JDBC驱动Tomcat拷贝JDBC驱动到common/libWeblogic修改cmd文件添加jdbc到classpath Webspher拷贝文件AppServer\lib2.1.2创建数据库连接池Tomcat修改配置文件Weblogic控制台Webspher控制台三、部署润乾报表安装服务器准备环境创建发布润乾报表应用3.1创建应用手动创建新应用创建目录拷贝文件手工修改配置文件导出开发环境中的应用发布应用选择授权文件选择服务器配置数据源3.1.1应用目录结构应用目录WEB-INFclasseslibweb.xml练习:创建应用创建名为runqian的应用必须含有WEB-INF目录WEB-INFclasseslib3.2复制报表引擎程序包七个jar程序包配置文件四个配置文件练习:复制润乾报表引擎复制报表引擎七个jar包四个配置文件操作:七个jar包拷贝到….\runqian\WEB-INF\lib四个配置文件拷贝到…..\runqian\WEB-INF\3.3复制报表打印程序程序包runqianReport4Applet.jar第三方插件j2re-1_4_1-windows-i586-i.exej2re-1_4_2_08-linux-i586.rpm复制位置应用根目录练习:复制打印程序程序包runqianReport4Applet.jarwidonws :j2re-1_4_1-windows-i586-i.exeLinux:j2re-1_4_2_08-linux-i586.rpm3.4相关的配置文件1. reportConfig.xml配置2. runqianReportLog.properties日志配置3. web.xml配置3.4.1 报表引擎基本配置<config><name>license </name><value>Server.lic </value></config> 授权文件<config><name>reportFileHome </name><value>/reportFiles </value></config> 报表模板位置<config><name>semanticsFile </name><value>/WEB-INF/demo.xml </value></config> 语义层文件<config><name>JNDIPrefix </name><value>java:comp/env </value></config> JNDI 前缀<config><name>dataSource </name><value>hsql,sqlsvr,1,iso8859-1,GBK,1;exercise,sqlsvr,1,iso8859-1,GBK,0</value></config>数据源配置数据源的JNDI 名称,数据库类型[,取数时是否需要转换编码,数据库字符集编码,显示报表时的字符集编码][,SQL 是否需要转码];3.4.2各服务器部署差异JNDI前缀不同服务器JNDI前缀说明Tomcat java:comp/env 4.1修改server.xmlWeblogic无Webspher无Resin java:comp/env Conf.xmlOracle IAS jdbc3.4.3报表引擎缓存配置<config><name>cachedParamsTimeout</name><value>120</value> 参数在缓存中保存的时间</config><config><name>cachedReportDir</name><value>c:\runqian\cached</value> 报表缓存的文件夹</config><config><name>cachedIdPrefix</name><value>A</value> 报表缓存的前缀</config><config><name>cachedReportTimeout</name><value>120</value> 报表缓存保存的时间</config><config><name>cachedToDiskOnly</name><value>no</value>缓存时是否只保存在硬盘上</config>3.4.4报表引擎并发配置<config><name>maxConcurrentForReport</name><value>9999</value> 同时计算的报表的个数</config><config><name>maxWaitForReport</name><value>9999</value> 等待计算的报表的个数</config><config><name>maxWaitTimeForReport</name><value>9999</value> 等待计算的最大时间</config>3.4.5配置润乾日志//日志级别可为OFF,ERROR,WARN,INFO,DEBUG,ALL, 优先级依次降低,若为OFF则不输出任何//日志信息;若为INFO,则只输出ERROR,WARN,INFO等级别的信息,依次类推。

润乾集算报表应用开发之修改数据源(学习资料)

润乾集算报表应用开发之修改数据源(学习资料)

润乾集算报表应用开发之修改数据源实际应用中通过程序动态修改报表模板的情况很常见,其中动态修改数据源SQL就是一种典型场景。

常见于系统中有一些结构相同而数据源不同的报表,为减少报表开发工作量,只开发一套报表模板,使用时通过程序动态修改数据源来满足实际需要。

下面通过一个使用JAVA程序修改集算报表数据源SQL的例子说明使用过程。

编辑报表模板:由于不同数据源的字段不同,因此这里使用动态表达式ds1.fname()获取字段名,ds1.field()获取字段值。

此外,第一行和第一列为辅助行列,设置其隐藏。

编写代码:1.读入报表String reportPath = request.getRealPath("/reportFiles/demo.rpx");ReportDefine rd = (ReportDefine)ReportUtils.read(reportPath);2.更改报表数据源DataSetMetaData dsmd=new DataSetMetaData(); //构造数据集元数据SQLDataSetConfig sdc=new SQLDataSetConfig(); //构造数据集定义sdc.setName("ds1"); //设置数据集名String sql = "";//根据不同参数,为报表设置不同数据源SQL,实际使用中可以从配置文件中读取switch(Integer.parseInt(type)){case 1:sql="select * from 员工表";break;case 2:sql="select * from 订单明细 order by 订单ID";break;default:sql="select * from 客户销售表";}sdc.setSQL(sql); //设置 sql语句dsmd.addDataSetConfig(sdc); //把数据集定义添加到数据集元数据rd.setDataSetMetaData(dsmd); //把数据集元数据赋给ReportDefine3.将ReportDefine存入request后使用defineBean方式发布报表rd.setDataSetMetaData(dsmd); //把数据集元数据赋给ReportDefinerequest.setAttribute("reportDefine",rd);<report:html name="report1"srcType="defineBean"beanName="reportDefine"exceptionPage="/reportJsp/jsp/myError.jsp"/>实现效果:当type=1时显示员工信息表数据:当type=2时显示订单明细表数据:【附】changeds.jsp完整代码:<%@page contentType="text/html;charset=GBK"%><%@taglib uri="/WEB-INF/raqsoftReport.tld"prefix="report"%> <%@page import="java.io.*"%><%@page import="java.util.*"%><%@page import="ermodel.Context"%><%@page import="com.raqsoft.report.model.ReportDefine"%><%@page import="com.raqsoft.report.util.ReportUtils"%><%@page import="ermodel.SQLDataSetConfig"%><%@page import="ermodel.DataSetMetaData"%><html><link type="text/css"href="css/style.css"rel="stylesheet"/><body topmargin=0leftmargin=0rightmargin=0bottomMargin=0><%request.setCharacterEncoding( "GBK" );String type = request.getParameter("type");//取得报表真实路径String reportPath = request.getRealPath("/reportFiles/demo.rpx");ReportDefine rd = (ReportDefine)ReportUtils.read(reportPath);DataSetMetaData dsmd=new DataSetMetaData(); //构造数据集元数据SQLDataSetConfig sdc=new SQLDataSetConfig(); //构造数据集定义sdc.setName("ds1"); //设置数据集名String sql = "";//根据不同参数,为报表设置不同数据源SQL,实际使用中可以从配置文件中读取switch(Integer.parseInt(type)){case 1:sql="select * from 员工表";break;case 2:sql="select * from 订单明细 order by 订单ID";break;default:sql="select * from 客户销售表";}sdc.setSQL(sql); //设置 sql语句dsmd.addDataSetConfig(sdc); //把数据集定义添加到数据集元数据rd.setDataSetMetaData(dsmd); //把数据集元数据赋给ReportDefinerequest.setAttribute("reportDefine",rd);%><jsp:include page="toolbar.jsp"flush="false"/><table id="rpt"align="center"width=100%height=100%><tr><td align=center valign=top height=100%><report:html name="report1"srcType="defineBean"beanName="reportDefine"exceptionPage="/reportJsp/jsp/myError.jsp" /></td></tr></table></body></html>。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

润乾报表设计
1、安装润乾报表设计器
2、设计报表模板
3、数据集为存储过程的报表设计
4、将设计好的模板部署到应用中过去
5、存储过程
1安装润乾报表设计器
1.1获取安装包
安装包在svn上:
http://10.120.23.41/svn/core/开发组资料/开发工具/润乾报表v4.5.exe Check后安装即可.安装后的目录结构如下:
1.2完成相关授权
使用润乾报表设计器需要完成两次授权:
A: 润乾报表设计器授权
B: 设计完成后发布应用的服务器授权
目前我们本机采用的是Windows的授权,服务器上的ycps项目采用的是Linux
授权版本,所以我们在开发完成后不要commit授权文件
1.3授权完成
授权完成,启动后的界面如下:
2简单报表设计
2.1配置数据源
A: 配置>数据源
B: 数据源配置界面
C: 点击新建自己的数据源
D: 数据源配置细节,为了开发的统一数据源名称统一采用“oracle”
E: 确定之后
F: 连接成功
2.2数据集的配置
A: 新建报表如图:
A: 配置数据集,也可以直接F11快捷键
B: 数据集配置
C: 选择模式、表、字段
D:选择需要的字段
E:此时你可以点击语法选项卡看看,聪明的你就明白了,然后确定即可
F:数据集ds1已经创建完成
2.3简单报表的实现
A:利用配置好的数据集设计简单模板
B:启动tomcat、发布模板、在浏览器中浏览
C:浏览
3数据集为存储过程的报表设计
3.1配置数据源见2.1
3.2配置数据集
3.2.1配置存储过程数据集
B:弹出存储过程数据集,在此之前存储过程一定要测试成功
C:配置数据集参数
说明:
1、参数的个数、顺序要和procedure严格一致
2、结果类型应该指定具体类型如字符串
3、注意输出参数及类型
D:确定,但是没有完!
3.2.2配置模板参数
可以这样理解:刚才配置的数据集参数需要由报表模板来提供,那模板也需要配置参数A:配置> 参数
B:参数编辑,然后确定模板设计完毕
3.2.3在设计器中浏览报表
A:按F11进入数据集设置
B:点击浏览数据
C:填入必填的参数确定即可浏览,注意此处的浏览只是证明数据集设置的正确性
D:数据集设置完成且正确后会出现如下。

说明:由于采用存储过程检索数据,返回的是游标,所以这里设计好的数据集看不到相关的字段名称等,在设计报表时要对应相应的表或存储过程来
3.3报表设计见2.3
根据上面的数据集参见2.3设计报表就可以了
4将开发测试好的模板部署到应用中
4.1添加配置
A:添加润乾所需的配置文件见ycps工程
在WEB-INF下添加
在classpath下添加见ycps工程
说明:
1、reportConfig.xml是润乾的web应用配置文件
2、runqianReportLog.properties日志文件
3、runqianSemanticFile.xml是语意层配置文件,目前我们没有使用到
4、runqianReport4.tld是页面标签描述文件,将数据展示到页面上的自定义标签
5、runqianWindowServer.lic是润乾的应用授权文件
B:添加润乾所需的jar包,所需jar包在润乾安装目录下demo中都可以找到
还有一个打印用的
这个jar文件要放到应用的根目录下才起作用见ycps工程
4.2修改相关配置
A: 在web.xml中添加润乾报表的配置见ycps工程
B:修改reportConfig.xml文件见ycps工程
主要关注3个地方:授权文件、reportFileHome和数据源配置
1、为web应用指定授权文件。

check到本地的为Linux授权,需修改为windows授权
2、reportFileHome为应用中模板文件存放的目录,需要将报表模板文件放到这里
3、数据源的配置
<config><!-- 数据源iepip在tomcate\conf\Catalina\localhost\scmz.xml里配置 -->
<name>dataSource</name>
<value>iepip,oracle,1,utf-8,utf-8,0;</value>
</config>
4.3开发报表应用
4.3.1页面上的设置
见WEB-INF\content\business\factory-inventory.jsp
传递给报表的参数
报表的输出设置,采用润乾的自定义标签report:html
4.3.2处理Action
见ycps\webapp\action\business\BaseReportActionSupport.java和FactoryAction.java
目前ycps工程中传递模板名称的方式是写死的,也就是说是保存在数据库中的
见src/test/java/com/petrochina/dataInit/dataInit.xml第944行
4.3.2浏览应用
5附:Oracle存储过程
5.1使用PL/SQL Dev开发存储过程
大家参考SNS上的Oracle pl/sql简单介绍
附:炼厂库存信息的存储过程/wlxm-ycps/docs/report/factory_inventory_pro.sql 5.2使用PL/SQL Dev测试存储过程
在过程名称上面右键菜单选择Test
执行后,需要点击右边的按钮才能看到游标的输出结果
Ok,测试完成
如果想debug的话可以采用这几个按钮来调试
Ok了
有未尽或不妥的地方,请指出或修改
6. 遇到的错误
处理办法:
文件根本不存在,所以才会报InputStream cannot be null的异常。

如果应用中没有用到语义层文件,重新设置正确的文件路径,如果没有用到,将此段代码注释或删除即可。

重启应用,异常排除,。

相关文档
最新文档