润乾报表批量打印实例
润乾报表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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 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’”否则将造成处理上的麻烦。