润乾报表批量打印实例
润乾报表4

润乾报表实现将多个报表导入一个excel的多个sheet在实际的应用中,经常会有数据从excel导入系统数据库或者数据从系统中导入到excel,这两种业务操作润乾报表可以轻易地实现,但普通的导出数据大多都是导出到一个单独的excel中,还有一种客户经常使用的数据处理方式,是将多个报表的运算结果导入到同一个excel的多个sheet中。
下面讲述润乾报表如何实现这一业务。
一:实现思路先读取多个报表,分别计算多个报表,然后把多个结果添加到导出列表,最后实现导出到excel的多个sheet中。
二:实现步骤(以两个报表为例)1:首先制作两个报表one.raq和two.raq,如下图:One.raqTwo.raq2:利用润乾提供的方法读入两个报表,读入计算并导出,代码如下:<%@ page contentType=”text/html;charset=GBK” %><%@ taglib uri=”/WEB-INF/runqianReport4.tld” prefix=”report” %><%@ page import=”com.runqian.report4.model.ReportDefine”%><%@ page import=”com.runqian.report4.model.engine.ExtCellSet”%><%@ page import=”ermodel.Context”%><%@ page import=”ermodel.Engine”%><%@ page import=”ermodel.IReport”%><%@ page import=”com.runqian.report4.util.ReportUtils”%><%@ page import=”ermodel.PageBuilder”%><%@ page import=”com.runqian.report4.view.excel.ExcelReport”%><html><body topmargin=0 leftmargin=0 rightmargin=0 bottomMargin=0><%//创建context对象,设置报表的路径Context ctx = new Context();String path = “D:/Program Files/reportHome/webapps/demo/reportFiles/one.raq”;//读入报表ReportDefine rd = (ReportDefine) ReportUtils.read(path);Engine engine = new Engine(rd, ctx);//计算报表IReport report = engine.calc();Context ctx1 = new Context();String path1 = “D:/Program Files/reportHome/webapps/demo/reportFiles/two.raq”;ReportDefine rd1 = (ReportDefine) ReportUtils.read(path1);Engine engine1 = new Engine(rd1, ctx1);IReport report1 = engine1.calc();ExcelReport er = new ExcelReport();//导出的excel文件命名为moreSheetInExcel.xls,包括两个sheet,一个为one,另一个为two,保存在D盘下er.export(”one”, report);er.export(”two”, report1);er.saveTo(”D:/moreSheetInExcel.xls”); //输出到指定文件out.pr int(”导出成功!”);%></body></html>三:运行此jsp,执行其中的代码当页面中出现导出成功时,就说明两个报表已经成功导入到了moreSheetInExcel.xsl,并分别存储在one sheet和twosheet中,效果如下:总结:本文只是实现这一需求,具体项目中可以统一写一个方法类,动态传入要导出的报表名字,并且动态设置保存路径。
润乾报表4.0产品手册

润乾报表4.0产品手册企业级报表工具的理想选择北京润乾信息系统技术有限公司目录1、产品构成 (4)1.1产品构成图 (4)1.2产品构成 (4)2、核心优势 (6)2.1类Excel界面模型 (6)2.2非线性报表模型 (6)2.3强关联语义层模型 (8)2.4多源填报模型 (10)3、功能特点 (11)3.1报表设计 (11)3.2报表展现 (11)3.3数据填报 (15)3.4通用查询 (15)3.5即时报表 (16)3.6OLAP分析 (17)3.7报表分析 (18)3.8报表管理与调度 (18)3.9全面的部署集成方法 (19)3.10开发接口 (19)4、优势服务 (21)4.1我们的优势 (21)4.2服务与支持 (21)5、支持环境 (22)6、典型客户 (23)北京润乾信息系统技术有限公司简介北京润乾信息系统技术有限公司是北京市海淀高科技园区内的高新技术企业、软件企业,主要从事企业级报表工具产品的研发和推广。
润乾公司一直致力于在平台产品领域的探索,我们一直认为,报表在应用系统中是非常重要、不可缺少的组成部分,高效的报表工具不仅可以大大提高应用系统开发商的开发效率,而且可以使最终用户能够真正参与到报表的设计和修改中,从而不断灵活适应实际业务需要。
经过几个版本的积累和努力,润乾公司于2004年2月推出润乾报表3.0,率先实现了零编码处理复杂非线性报表的方式,配合以类EXCEL的绘制方式,润乾报表的制表效率数倍于以国外产品为代表的传统工具,且在展现输出、填报、集成性等细节方面也有全面超越,成为报表领域的新一代革命性产品。
在随后的版本中,润乾公司继续不断创新,相继推出了多源填报模型和强关联语义模型,大大扩展了报表工具的应用范围,改进了报表工具的应用方式,引领了报表工具的发展。
润乾公司深信,面对中国这样一个多样化需求、快速增长的软件市场,是可以以应用需求为基础、发挥中国人的智慧和创造力,做出优秀的报表工具,在企业级平台产品市场与国外厂商竞争的。
润乾报表如何实现查询参数和查询结果在一个表里

润乾报表如何实现查询参数和查询结果在⼀个表⾥如何把查询参数和查询结果做在同⼀张报表⾥需求说明快逸报表提供的参数模板例⼦通常都是分两张报表做的(如reportFiles\基础报表:参数报表.raq和参数报表_arg.raq),参数输⼊模板为⼀张报表,查询展现结果为另⼀张报表,然后通过showreport.Jsp⽂件把两个报表在⼀个页⾯中展现。
但是有些报表⽤户想在⼀个报表模板⾥就实现这两张报表的功能,快逸报表⽀持这样的⽅式吗?本⽂就来介绍⼀下快逸报表是如何解决这个需求的。
⼤致思路:在报表中创建⼀个超链接按钮,点击按钮触发onClick()事件,然后onClick()事件中定义页⾯跳转的url,并且把参数和参数值添加到url中,通过onClick()事件实现页⾯的调转。
1.下⾯是具体的实现步骤:⾸先连接demo数据源,制作⼀张空⽩填报表2.创建⼀个数据集ds2,⽤于查询表单中的下拉数据集,数据集中的内容将被选择作为参数传递。
sql语句:SELECT 订单.订单ID FROM 订单在A2单元格中输⼊“选择订单ID”,创建⼀个查询连接,把C2单元格的数据类型设为html,输⼊“查询”。
如下图3.设置B2单元格可写,并且为它设置的下拉数据集。
勾选B2单元格填报属性中的“是否可写”,并且设置它的下拉数据集为刚才新建的数据集ds2,显⽰列为“订单ID”,数据列也为“订单ID”,如下图4.新建⼀个参数⽤于接收B2单元格选择的订单ID。
新建参数“dingdan”,如下图5.新建⼀个数据集ds1,⽤于根据订单ID查询订单详细信息,sql语句:SELECT 订单.订单ID,订单.货主名称,订单.运货商,订单.货主地区FROM 订单WHERE 订单.订单ID =?在SQL编辑器中增加⼀个参数“dingdan”,表格中填写如下6.到现在报表已经做完了,下⾯给单元格C2增加onClick()事件,在onClick事件中先取B2单元格的显⽰值,然后定义页⾯跳转的url。
润乾常用报表开发实例

常见报表形式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页脚的设置技巧如果页脚的上面单元格有边框的话,直接在下面加入页脚则在展示的时候会多出一条横线。
润乾报表V3.0在WEB中的使用说明

润乾报表(新版)在WEB中的使用说明1WEB服务器配置使用本报表系统需要在WEB服务器中配置WEB应用和应用中用到的数据库连接池。
下面以TOMCA T为例进行说明:1、修改[tomcat]/conf/server.xml文件,在</Host>行之前插入如下的一段标签:/report" docBase="<value></parameter><parameter><name>password</name><value></parameter><parameter><name>driverClassName</name><value></parameter><parameter><name>url</name><value></parameter></ResourceParams></Context>以上用粗体表示的部分为应进行修改的内容。
如果在应用中要用到多个数据库,则应重复<Resource …… </ResourceParams>之间的内容。
2、要将相应的数据库JDBC驱动程序包放入[tomcat]/common/lib目录中2WEB应用配置2.1文件部署JA V A类的部署:如果报表系统提供的是jar文件,则将之放在WEB应用的WEB-INF/lib 目录中,如果提供的是呈目录结构的class文件,则将com目录和color.properties文件放到WEB应用的WEB-INF/classes目录中。
将runqianReport.tld文件放到WEB应用的WEB-INF目录中。
将xrq_license.dat文件放到WEB应用的WEB-INF目录中。
润乾报表V4.5初级教程

目录1. 前言1.1. 使用对象1.2. 文档目的2. 入门2.1. 制作一张报表的步骤2.2. 启动报表设计器2.3. 选择设计器授权2.4. 连接数据源2.5. 一张最简单的报表2.6. 将报表发布到web上3. 网格式报表3.1. 网格式报表,体会扩展3.2. 显示格式、显示值3.3. 报表区域3.4. 设置预警条件3.5. 增加动态背景色3.6. 取数排序3.7. 导出excel3.8. 内建数据集3.8.1. 内建数据集的概念3.8.2. 内建数据集的用途3.8.3. 编辑内建数据集3.8.4. 内/外部数据集的转换4. 参数4.1. 参数的概念4.2. 参数的使用4.3. 参数模板设计4.4. 将报表和参数模板结合起来发布5. 行式报表5.1. 行式报表的概念5.2. 把网格报表变成行式报表6. 分组报表6.1. 分组报表,体验主子格概念6.2. 多层分组6.3. 汇总统计6.3.1. 分组汇总6.3.2. 汇总样式变换16.3.3. 汇总样式变换26.3.4. 汇总样式变换36.4. 组表头重复6.5. 计算列的汇总6.6. 三维饼形统计图,初步了解统计图的使用6.7. 跟随扩展的统计图7. 交叉报表7.1. 交叉报表,体会横向扩展7.2. 多层交叉,深入了解扩展7.3. 汇总统计,深入了解汇总规则7.4. 定位与拉伸7.5. 柱形统计图,与交叉报表的结合7.6. 跟随扩展的统计图8. 自由报表8.1. 自由格式的报表,深入了解主格概念8.2. 图片字段9. 主子表9.1. 单表式主子报表9.2. 嵌入式主子报表9.3. 引入式主子报表10. 打印10.1. 打印设置10.1.1. 纸张与方向10.1.2. 打印缩放10.1.3. 页边距与对齐10.1.4. 镜像打印10.2. 分页10.2.1. 页眉页脚、表头表尾等的打印方式10.2.2. 分页方式10.2.3. 强制分页10.3. 分栏10.3.1. 业务背景10.3.2. 实际操作10.4. 套打10.4.1. 业务背景10.4.2. 实际操作11. 宏11.1. 宏的概念11.2. 实例11.3. 参数与宏的区别,在web上如何使用宏12. 动态参数的应用12.1. 需求背景12.2. 1实例介绍12.3. 总结12.4. 临时变量13. 动态宏的应用13.1. 需求背景13.2. 实例介绍13.3. 总结14. 高级统计图14.1. 双轴柱线图14.2. 双轴折线图14.3. 时间走势图14.4. 时序状态图14.5. 甘特图14.6. 仪表盘14.7. 雷达图14.8. 里程碑图14.9. 工字图14.10. 全距图京C备05019289号版权信息@CopyRight 北京润乾信息系统技术有限公司第 1 章前言上一页下一页第 1 章前言目录1.1. 使用对象1.2. 文档目的1.1. 使用对象润乾报表V4.5初级教程适用于对报表业务有一定的了解,需要学习润乾报表的初学者。
excel批量打印出库单的方法

excel批量打印出库单的方法以Excel批量打印出库单的方法为标题,本文将介绍如何使用Excel 批量打印出库单,以提高工作效率。
在日常工作中,出库单是一个常见的文件,需要打印多份以便于发货和备案。
如果每次都手动打印出库单,不仅费时费力,还容易出错。
而使用Excel批量打印可以一次性打印多份出库单,大大提高工作效率。
我们需要准备一个Excel表格,其中包含了需要打印的出库单的相关信息。
可以按照以下步骤进行操作:1. 打开Excel,并创建一个新的工作表。
2. 在工作表中,按照需要打印的出库单的格式,设置好表头和列名。
3. 逐行填写每个出库单的信息,在每一列中填入相应的内容,例如出库单号、客户名称、货物数量等。
完成上述步骤后,我们可以开始批量打印出库单了。
以下是具体的操作步骤:1. 在Excel的工作表中,选中需要打印的出库单的区域。
可以通过鼠标拖拽或按住Shift键选择多个区域。
2. 点击Excel菜单栏中的“文件”选项,然后选择“打印”。
3. 在打印设置页面中,选择打印机和打印机设置,根据需要调整纸张大小和方向等参数。
4. 点击“打印区域”选项,选择“选择区域”。
5. 在选择区域对话框中,Excel会自动识别之前选中的区域,点击“确定”即可。
6. 在打印设置页面中,点击“打印”按钮,Excel会自动批量打印选中的出库单。
通过以上步骤,我们可以轻松地实现Excel批量打印出库单的功能。
而且,这种方法不仅适用于小规模的出库单打印,也可以应用于大规模的批量打印需求。
我们还可以通过自定义打印样式和设置打印区域等方法,进一步优化打印效果。
例如,可以设置页眉页脚、调整每个出库单的打印布局等。
如果需要对打印出的出库单进行进一步处理,例如扫描二维码或粘贴条形码等,可以借助相关软件或工具实现。
这些工具可以将Excel 中的数据导入到特定的软件中,然后进行进一步处理和操作。
使用Excel批量打印出库单是一种简单高效的方法,可以极大地提高工作效率。
润乾报表查询所有汇总

润乾报表查询手册整理:Yangmc1.怎么实现报表中行(列)的按条件隐藏?在报表设计器中,选择相应报表的主格对应的单元格,在其属性“是否隐藏本行”的表达式中输入if(ds1.count()==0,true,false),具体用法请参考润乾报表的函数帮助。
(设计器中的函数帮助查看对应函数的用法)2.怎么实现报表与jsp文件的无缝结合?在Tag页面中输入<body style="margin: 0px 0px 0px 0px>。
扩展:实现定制结合。
如果还不能达到要求,一般到解析报表文件的那个jsp文件中找错误设置。
如我在应用中遇到这样的情况,我在Tag页面中输入<body style="margin: 0px 0px 0px 0px>,但是在页面顶部还是有一块空白区域,经检查发现是多了一个无用的<table></table>所制。
3.报表中参数传递步骤首先,保证报表中设计没问题,具体表现是在设计器中浏览要达到目标。
其次,在解析报表文件的jsp文件的<% …%>设置参数,具体设置参考testinput.jsp。
最后,在连接中设置传递参数值。
如%root%testinput.jsp?report=””?¶m1=””+¶m2=””+ …4.报表样式设计报表样式设计是在设计器中进行的,通过相应的前景颜色或背景颜色来设置颜色样式。
通过相关的属性设置其他的样式。
基本可以满足开发的需要。
5.层效果设置选中要实现层效果的行(1,2,3,……)或列(A,B,C,……),在对应行类型或列类型的属性值中选择值(表头区,标题区,……)。
在网通项目应用中,我们是把表头设置在jsp页面中,这样也可以实现我们需要的效果。
至于具体怎么设好,可以根据具体应用以及方便性来实现。
6.显示特殊字符如果想要显示特殊字符,最好是用英文中的特殊字符,如果用GBK中的特殊字符,在设计器中没有问题,但是在发布的时候显示为问号(?)。
润乾报表批量打印不用触发直接打印

1. 问题概述润乾提供批量打印的方案, 在jsp中用<object></object>标签来直接调用applet程序进行批量打印,但还是需要点打印按钮来触发打印这个事件,客户希望不用触发,不需要点打印按钮直接执行批量打印,然后提示打印完成直接关闭页面。
难点:此问题以前也有客户提过,但当时没有找到好的解决办法。
查找了一些相关资料,原来发现用JS去触发不行,但是applet自己的start()是可以.2. 案例中国登记结算上海分公司3. 解决思路1.重写一个打印的类DirectPrintWithoutShow.java,这个类要继承原来的直接打印的类DirectPrintApplet,然后在这个类中直接调用DirectPrintApplet.java中的print方法,跳过触发的步骤直接打印所传的报表文件2.将这个类打入runqianReport4Applet.jar,注意:打包时先把包解压缩,然后删掉mete这个文件夹。
3.对新包进行签名。
4. 在directprint.jsp代码里把<param name="code"value="com.runqian.report4.view.applet.DirectPrintApplet.class">改为:<param name="code" value="com.runqian.report4.view.applet.DirectPrintWithoutShow.class"> 为了打印完直接关闭,可以在jsp最后面加上一些js来关闭页面,如:<script>alert("打印完成!");window.close();</script>4. 具体设计步骤1.写DirectPrintWithoutShow.java代码:package com.runqian.report4.view.applet;public class DirectPrintWithoutShow extends DirectPrintApplet {public void start(){super.start();super.print();}}2.编译java文件打包到runqianReport4Applet.jar中3.对修改后的新包进行签名在命令行中执行:keytool -genkey -alias RUNQIAN -keypass "你的密码" -keyalg RSA// RUNQIAN是证书的别名,这里随便起,但是要和下面的签名过程保持一致// 如果提示找不到命令请检查环境变量...Enter keystore password: 输入证书库密码What is your first and last name?[Unknown]: 北京润乾信息系统技术有限公司What is the name of your organizational unit?[Unknown]:What is the name of your organization?[Unknown]: What is the name of your City or Locality?[Unknown]: BJWhat is the name of your State or Province?[Unknown]: BJWhat is the two-letter country code for this unit?[Unknown]: CNIs <CN=北京润乾信息系统技术有限公司, OU=Unknown, O=, L=BJ, ST=BJ, C=CN>; correct?[no]: yes中间的输入过程也可以输入别的内容。
润乾报表4.0高级设计

润乾报表软件的核心特点在于开创性地提出了非线性报表数学模型,采用了革命性的强关联语义模型、多源关联分片、不规则分组、自由格间运算、行列对称等技术,使得复杂报表的设计简单化,以往难以实现的报表可以轻松实现,避免了大量的复杂SQL编写与前期数据准备,报表设计的效率提高了一个数量级。
培训内容多源关联分片不规则分组动态格间运算动态参数动态宏报表组高级统计图一、多源关联分片多层交叉报表分片行列对称多片扩展1.1 多层交叉报表扩展模型主格模型交叉扩展扩展模型不可扩展当单元格的数据值表达式为单值表达式时,该单元格默认为不可扩展单元格。
扩展单元格当单元格的数据值表达式为集合表达式时,该单元格默认为可扩展单元格。
可扩展横向扩展纵向扩展主格模型基本概念扩展变化规则主格模型-基本概念主格和附属格左主格和上主格多层扩展直接主格和直接附属格根格(`0)主格与附属格单元格进行扩展的过程中,缺省情况下,相对于其右(下)边的单元格而言,扩展格是主动复制的,被称为其它格(其右/下的格)的主格,而其右(下)的单元格是被动跟随复制的,被称为扩展格的附属格或子格。
只有扩展格才能是其它格的主格!主格和附属格是相对的概念,即某格是另一格的主格或附属格,不存在单独的主格和附属格。
左主格和上主格在缺省情况下,单元格进行纵向扩展时,我们称其右的格的左主格在缺省情况下,单元格进行横向扩展时,我们称其下的格的上主格在缺省情况下,扩展格左(上)的格并不是其附属格,只有右(下)的格才是其附属格。
某个单元格的左主格或者上主格属性可以人为的被改变多层扩展多个单元格同时进行扩展时,一个扩展格可以既是某些格的主格又是另一个扩展格的附属格,这种情况下就形成多层扩展的情况。
一级主格即为直接主格,一级附属格即为直接附属格根格根格即报表首格,用(`0)表示扩展变化规则单元格进行横向扩展时,会将其同列的上主格拉大,把其附属单元格复制,特别地,如果其某个上主格不在同列上,则该上主格不会被拉大;举例单元格进行纵向扩展时,会将其同行的左主格拉大,把其附属单元格复制,特别地,如果其某个左主格不在同行上,则该左主格不会被拉大。
润乾集算报表呈现一组多个报表

报表组打印
与导出类似,在<report:group>标签中加入 needPrint="yes"属性即可加入报表打印按钮, 报表组打印时会提示打印组内某个或某些报表,如下图示:
用户可以通过“预览”查看报表打印预览效果,通过“打印”完成报表组的打印操作。
设置后的报表组(group.rpg)如下:
到这里报表组的设置已经完成,报表组中的订单表和订单明细表制作可参考集算报表相 关文档。
由于报表组中带有参数,发布到页面需要参数输入界面,所以这里再制作一个参数模板 (group_arg.rpx),联合报表组发布:
报表组展现
编辑报表组展现的 JSP(showReportGroup.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.util.ReportUtils"%> <%@ page import="com.raqsoft.report.model.ReportDefine"%> <%@ page import="ermodel.ReportGroup"%> <%@ page import="ermodel.SubReportConfig"%> <html> <link type="text/css" href="css/style.css" rel="stylesheet"/> <body topmargin=0 leftmargin=0 rightmargin=0 bottomMargin=0> <%
润乾报表的使用技巧

润乾报表的使用技巧
润乾报表软件是一个常用的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页面输出的时候,需要设置横向、纵向滚动条来固定报表表头,选中需要固定的行或者列,点属性,将其所属区域设置为“表头区”,就可以固定表头。
以上是我使用过程中总结的一些技巧,另外,润乾报表中提供了很多详细的帮助文档和实例,也很方便简单,易于学习。
润乾集算报表呈现输出之精确打印

润乾集算报表呈现输出之精确打印润乾集算报表提供了报表精准的打印控制方式,使得用户的报表可以精确地打印到纸张或镜像中。
集算报表打印属于Applet打印方式,用户在使用前应先安装JRE,如果在使用WEB报表打印时,本机未安装JRE,报表应用会提示用户下载并安装。
集算报表在打印控制上可以从两方面进行设置,一是报表的打印属性,二是报表打印预览中打印选项,下面分别来看一下。
打印属性设置报表模板编辑时,在设计器的菜单报表-报表属性中,可以找到报表打印属性的设置,如下图:纸张:纸张类型除了常见的纸张大小外,还可以自定义纸张,对于对纸张有特殊要求的用户将大有裨益。
纸张方向可以控制纵向或横向打印,对于报表列较宽,还需要将所有列打印在同一页纸上时非常有帮助。
打印缩放:集算报表提供按纸张进行缩放的选项,以便内容可以适应纸张大小,包括不缩放、与纸张等高和与纸张等宽。
注:1.如果在报表属性的分页标签下,选择了按行分页,则该报表不允许进行缩放打印。
2.如果报表行数或列数比较少,缩放后出现报表的宽度或高度大于给定纸张的宽度或高度而无法分页的情况,这时系统会在弹出提示消息后,自动将报表的打印缩放设置为"无"。
布局行/列数:布局行数:如果报表是按照行数分页的,那么一张打印纸上可能打印多页报表,该参数设定一张打印纸上纵向可以打印几排报表。
布局列数:如果报表是按照行数分页的,那么一张打印纸上可能打印多页报表,该参数设定一张打印纸上横向可以打印几排报表。
对于卡片式报表,可以在一张打印纸上布局多页报表,这样打印出来的报表不但美观,而且可以任意切割。
此外,还可以设置报表的打印次序(先行后列或先列后行),对齐方式等。
此外,如果报表包含背景图,还可以设置是否打印背景图。
打印预览设置除了在报表开发时控制打印属性,还可以在打印时(打印预览窗口)进行打印设置。
在设计器或WEB端进行打印时默认弹出打印预览窗口,如下图:打印比例:设置显示比例,根据报表的大小进行缩放。
润乾报表使用技巧分享

润乾报表
1.关于隐藏列的导出问题:
如果报表中使用了隐藏列,则在保存为EXCEL后会出现如下情况:
(1)被隐藏的列或单元格中的值会显示出来。
2.如何分页打印表头:
在分页打印报表的时候,如果想将表头在每页都打印出来,则可以将表头做冻结。
3.如何确定表格的分页方式:
在设计器中选择属性报表属性。
在弹出的窗口中可以设置报表的分页方式。
4.创建报表时应注意的问题:
创建报表时通常选空白报表选项,使用其它模板创建出来的报表,会出现一些扩展后不显示之类的奇怪问题。
5.扩展时注意事项:
(1)在选取字段的时候尽量使用数据集函数group();
(2)这个函数中字段与条件之前是两个“,”号分开的,他省略了一个对数据集的排序方式选项。
(3)尽量在数据集中排序,在报表级排序对性能有一些影响。
6.属性格中的一些使用技巧:
在属性窗口中每一个属性后都会有一个“…”按钮,这个可以用来写表达式控制该属性是否起作用。
如:
当满足某种条件是该行显示,则可以这样写
也可以设置满足某种条件后,某行或某单元格的背景色等等。
7.报表列过多:
有时报表计算的列过多会报JA V A堆空间不足异常,这时可以修改一下TOMCAT JVM 中内存区的值。
润乾集算报表绘制批量统计图

润乾集算报表绘制批量统计图
报表应用中往往要在一张报表中显示多个统计图,如按照一级分类扩展,再按照该分类下某维度进行统计图绘制。
润乾集算报表提供了批量绘制统计图的方式,下面通过实例来看一下实现方式。
根据订单表中地区和城市分组汇总订单金额,需要显示每个地区下各城市订单总额统计图,如下图示:
在报表设计器中新建报表,报表样式如下:
报表按照地区和城市分组,将统计图(B3格)置于地区扩展格A3下跟随扩展,统计图
设置如下:
再看一个例子。
查看每个地区每年订购的产品类别数量占比,如下图示:
这是一个典型的交叉报表,统计图随横向和纵向扩展同时生成多个。
报表设计如下:
将第二和第三行隐藏,B4中统计图设置如下:
可以看到在集算报表中,通过将统计图放置在附属格中,跟随主格扩展即可完成批量统计图绘制,支持横向和纵向同时扩展。
批量打印使用方法

批量打印使用方法
批量打印使用方法
批量打印是指一次性打印多份文件的功能,适用于需要大量输出文件的场合,如公司会议资料、教育培训材料等。
以下是批量打印的详细步骤:
1. 准备好需要打印的文件
将需要打印的文件保存在同一个文件夹中,并确保文件格式正确、内容完整。
2. 打开文件夹并选择要打印的文件
双击打开保存有需要打印的文件的文件夹,按住Ctrl键选择要打印的所有文件。
3. 右键点击选中的文件并选择“打印”
右键点击选中的所有文件,选择“打印”选项。
此时会弹出“打印”对话框。
4. 配置打印设置
在“打印”对话框中可以配置一些基本的设置,如纸张大小、单双面等。
如果需要更高级的设置,可以点击“属性”按钮进入高级设置界面。
5. 确认并开始批量打印
在确认所有设置无误后,点击“确定”按钮开始批量打印。
此时会弹出一个进度条显示当前正在进行第几个任务和剩余任务数量。
6. 完成批量打印
当所有任务都完成后,会弹出一个提示框告诉您已完成所有任务。
此时可以关闭打印对话框和文件夹窗口。
注意事项:
1. 在批量打印前最好先预览一下每个文件的内容,以免出现错误。
2. 如果打印机出现故障或者需要更换纸张等情况,可以在打印对话框中点击“暂停”按钮来暂停当前任务,处理完问题后再点击“继续”
按钮恢复任务。
3. 如果需要取消某个任务,可以在打印对话框中点击该任务旁边的“X”按钮来取消该任务。
总之,批量打印是一种非常方便的功能,只需要几步操作就能完成大
量文件的输出。
希望以上方法能够帮助您更好地使用批量打印功能。
润乾报表使用手册(可编辑修改word版)

报表使用手册报表使用手册XX 股份有限公司中国济南目录1 概述............................................................................................................................. .- 3 -2 安装...............................................................................................................................-3 -2.1 准备好安装程序...........................................................................................- 3 -2.2 安装中的选项...............................................................................................- 3 -2.3 授权文件配置...............................................................................................- 4 -3 报表制作.......................................................................................................................- 5 -3.1 报表制作要求...............................................................................................- 5 -3.2 制作一张报表的步骤...................................................................................- 5 -3.3 启动报表设计器...........................................................................................- 6 -3.4 连接数据源...................................................................................................- 7 -3.4.1 数据源对话框..........................................................................................- 7 -3.4.2 编辑数据源..............................................................................................- 7 -3.4.3 注意事项..................................................................................................- 9 -3.5 设计报表格式.............................................................................................- 10 -3.5.1 格式设计................................................................................................- 10 -3.5.2 需注意事项............................................................................................- 11 -3.6 定义参数.....................................................................................................- 11 -3.6.1 参数的编辑............................................................................................- 11 -3.6.2 常用参数举例........................................................................................- 12 -3.7 定义宏.........................................................................................................- 12 -3.7.1 宏的编辑................................................................................................- 12 -3.7.2 常用宏举例............................................................................................- 13 -3.8 建立数据集.................................................................................................- 13 -3.8.1 数据集的编辑........................................................................................- 13 -3.8.2 常用数据集举例....................................................................................- 14 -3.9 设置单元格属性.........................................................................................- 16 -3.9.1 数据集在单元格中应用........................................................................- 16 -3.9.2 显示格式................................................................................................- 16 -3.9.3 设置预警条件........................................................................................- 16 -3.9.4 增加动态背景色....................................................................................- 17 -3.9.5 按参数隐藏列........................................................................................- 17 -3.9.6 主格应用................................................................................................- 17 -3.10 报表预览.....................................................................................................- 18 -3.11 报表发布.....................................................................................................- 18 -4 报表部署.....................................................................................................................- 19 -4.1 部署位置.....................................................................................................- 19 -4.2 Web 中显示................................................................................................- 19 -5 重要概念.....................................................................................................................- 20 -5.1 数据源.........................................................................................................- 20 -5.2 数据集.........................................................................................................- 20 -5.3 参数.............................................................................................................- 20 -5.4 宏定义.........................................................................................................- 21 -5.5 单元格....................................................................................................... .- 22 -5.6 主格.............................................................................................................- 22 -6 常用函数.....................................................................................................................- 24 -6.1 数据集函数.................................................................................................- 24 -6.1.1 select() .....................................................................................................- 24 -6.1.2 select1() ...................................................................................................- 24 -6.1.3 count() .....................................................................................................- 25 -6.2 单元格函数.................................................................................................- 25 -6.2.1 if() ............................................................................................................- 25 -6.2.2 row() ........................................................................................................- 25 -6.2.3 value()......................................................................................................- 25 -6.3 字符串函数.................................................................................................- 25 -6.3.1 pos().........................................................................................................- 25 -6.3.2 mid() ........................................................................................................- 25 -6.4 数据类型转换函数.....................................................................................- 25 -6.4.1 dateTime() ...............................................................................................- 25 -6.4.2 str() ..........................................................................................................- 25 -1概述该文档主要满足iES-E200 电量采集系统中自定义报表制作编写。
表格制作软件打印功能对比—FineReport和润乾报表

一、表格制作软件打印方式灵活性1.功能描述现在的表格制作软件打印主要有Flash、PDF、Applet、activex等几种方式。
不同的表格制作软件打印方式需要安装不同的程序,各自的安装繁琐程度不同。
由于目前几乎所有的网页都安装了flash插件,所以几种表格制作软件打印方式中,flash报表打印是最优最便捷的一种打印方式。
支持程度:FineReport表格制作软件支持Flash、PDF、Applet、activex等多种表格制作软件打印方式,几乎不需要安装任何插件;润乾报表只支持Applet、activex两种报表打印方式,需要安装插件。
2.示例FineReport表格制作软件打印设置:润乾报表打印设置:二、表格制作软件打印时浏览器安全级别设置1.问题描述浏览器都有一个默认的安全级别,当下载什么插件或是浏览什么网页时,有时其会进行阻止或拦截。
在润乾报表浏览界面进行报表打印时会弹出下载提示框。
如果下载插件,浏览器的安全级别就会自动进行了调整,而在FineReport 报表浏览界面进行报表打印时,就不会出现这个问题。
2.示例润乾报表打印设置:三、表格制作软件打印在线实时编辑功能1.功能描述由于现在报表都是基于java平台,而预览的页面都是html格式,这样在浏览器上预览时可能会出现一些偏差。
这时就需要对展示页面进行实时的编辑,可能包括边框、格式、内容等。
在线实时编辑器,就是用于在线编辑报表的工具,编辑的内容是基于HTML 的报表内容。
支持程度:FineReport报表完全支持,特别是套打功能。
FineReport对表格制作软件打印功能做了进一步提升,可以通过调整内容的对齐方式对内容的布局方式进行微调,以适应各种不同打印机在报表打印时的细微偏差,编辑后的报表可直接提交至打印机进行打印。
润乾报表:仅能更改内容。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
报表批量打印开发全过程(从零开始)
第一步:安装报表开发工具
下载地址:
ftp://172.18.33.219/URP开发必备软件/报表/可执行文件/报表工具客户端设计器的安装文件将该目录下的文件下载到本地并安装
目录内的”江苏金智内部开发版设计器v355.dat”注册用
第二步:开发报表
一般是在现有的报表基础上修改出自己的报表,这样可以快一些,这些报表可以从报表服务器上下载到,
地址::9093/report/console/index.jsp
host文件:172.18.33.250
用户名:amadmin/11111111
(1)配置数据源,数据源可以通过报表控制台查询
(2)进行宏定义(类似于系统变量,将来可以通过外部页面传递进报表)
(3)配置数据集(可以使用宏定义的变量)
(4)开发报表
第三步:将开发好的报表上传至报表服务器(1)找到要上传的位置,点击新增报表
(2)选择本地报表,完成后点击添加完成报表添加
第四步:开发批量打印程序,一般界面如下图所示
批量打印逻辑:先检查是否勾选,若勾选则打印勾选记录,若不存在则检查查询条件是否为空,不为空则打印所有满足查询条件的记录,否则提示“请选择要打印的记录”
涉及的文件:
开发服务器中:swms.propertie,BGTAG.jsp,JB.jsp
报表服务器中:batchPrint.jsp
(1)swms.propertie文件中增加报表服务器打印地址
#报表服务器打印地址
REPORT_PRINT=:9093/report/run/reportJsp/batchPrint.
jsp
(2)BGTAG.jsp
1)头文件中增加:
<%@ page import="com.wiscom.app.swms.service.factory.SwmsConfig" %>
2)toolbar中增加:
<ext:toolbutton id="btn_print" value="打印"
imgSrc="/epstar/web/swms/client/resources/images/toolbar/print.gif"
action="printReport" styleClass="" hiliteStyleClass="" />
3)Pane中增加(蓝色代码部分)
</ext:datagrid>
<script language="javascript">
<%
String filterRep="";
if(request.getParameter("filter")!=null){
filterRep=request.getParameter("filter");
}
%>
var filterRep="<%=filterRep%>";
var printReportUrl="<%=SwmsConfig.getConfig("REPORT_PRINT")%>";
window.onresize = function (){
document.getElementById("div_V_DK_DKHTST").style.width =
document.body.offsetWidth;
};
window.onresize();
</script>
</ext:Pane>
(3)JB.jsp中增加printReport()函数
备注:修改该函数中和自己模块相关的参数
//打印函数
function printReport(){
/*================================================================================ 功能描述 : 打印所有选中的报表
作用窗体 :
输入参数 : 无
输出参数 : 无
================================================================================*/ var report="";
var objStr=DataGrid_GetSelectedRows("V_DK_DKHTST");
//首先检查过滤条件以及是否有勾选,若都不满足,直接返回
if((filterRep=="")&&(objStr==""||objStr==null)){
alert("提示:请选择要打印的记录!");
return false;
}
//然后检查是否有勾选,若有则处理勾选记录,否则处理过滤条件
if(!(objStr==""||objStr==null)){
for(var i=0;i<objStr.length;i++){
report+="{学工系统/助学贷款管理/助学贷款申请审批
表.raq(condition_1='"+StringURLEncode(objStr[i].cells[1].XH)+"';condition_2='"+Stri ngURLEncode(objStr[i].cells[1].HTH)+"')}";
}
report+="&prompt=yes";
}else{
if(filterRep!=""){
var objPath="SWMS/GJZXDKGLZXT/HTGL/V_DK_DKHTST";
var fieldName="XH,HTH";
//从filter中获取过滤条件
var filter=filterRep.substring(12,filterRep.length);
var xmlDoc;
xmlDoc=Page_GetServerDataXmlCP(objPath, fieldName, filter, "","");
var XH=xmlDoc.documentElement.selectNodes("//XH");
var HTH=xmlDoc.documentElement.selectNodes("//HTH");
if(xmlDoc.documentElement.selectNodes("//XH").length!=0){
for(var i=0;i<XH.length;i++){
report+="{学工系统/助学贷款管理/助学贷款申请审批
表.raq(condition_1='"+StringURLEncode(XH[i].text)+"';condition_2='"+StringURLEncode (HTH[i].text)+"')}";
}
}else{
alert("提示:请选择要打印的记录!");
return false;
}
}
}
//此JSP参数格式为:report={无参数报表名}{报表1(参数1=value1;参数
2=value2;...)}{报表2(参数1=value1;参数2=value2;...)}...prompt=yes
report="?report="+report;
url =printReportUrl+report;
window.showModalDialog(url,"","dialogHeight: 150px; dialogWidth: 250px; resizable:Yes; status:no;center:yes");
}
(4)batchPrint.jsp见附件
第五步:打印测试
(1)在本地安装1.5.0以上(包含1.6.0)的jre,本进行相关设置,打印时可以看到Java控制台。
在控制面板里将plug-in设为显示,在IE里将Applet选择1.5以上的JRE
通过该控制台可以随时监视时的打印情况。
注:批量打印时的小技巧:
宏定义的时候:采用conditon_1:’0301010001’的形式(如下图),而不要采用condition_1=”XH=’0301010001’”否则将造成处理上的麻烦。