当前位置:文档之家› 润乾报表批量打印实例

润乾报表批量打印实例

报表批量打印开发全过程(从零开始)
第一步:安装报表开发工具
下载地址:
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’”否则将造成处理上的麻烦。

相关主题