报表知识库
我要提问

关于批量打印runqian_getPrintReports方法说明

有的客户使用批量打印的时候用到了runqian_getPrintReports()方法来实现打印前的一些操作。

但在实现批量打印以及runqian_getPrintReports()方法的时候存在如下问题:

1、 批量打印必须使用教程中提到的大段代码吗?如以下代码是否必须?

<object classid=”clsid:8AD9C840-044E-11D1-B3E9-00805F499D93″ codebase=”<%=appRoot%>/j2re-1_4_1-windows-i586-i.exe#Version=1,4,1,0″ width=”40″ height=”16″ id=”report1_directPrintApplet” style=”vertical-align:middle”>

<param name=”name” value=”report1_directPrintApplet”>

<param name=”code” value=”com.runqian.report4.view.applet.DirectPrintApplet.class”>

……

2、 runqian_getPrintReports()方法何时调用?如何实现返回的reports为空时不进行打印操作?当前无论返回何值或不返回值都会打印一张空白纸。

问题解答

1、 若不希望配置批量打印时的一些相关属性,如教程中提到的namecodearchive等。可以直接在发布报表的标签中增加needDirectPrint=”yes”,然后在runqian_getPrintReports()方法中返回要打印的报表列表即可。

如下面实现的方式:

<body>

<div style=’margin-top:5px;’>

<report:html name=”report1″ reportFileName=”directPrint1.raq”

funcBarLocation=”top”

needPageMark=”no”

needPrint=”yes”

needDirectPrint=”yes”

exceptionPage=”/reportJsp/myError2.jsp”

/>

</div>

</body>

<script>

function runqian_getPrintReports(){

var reports = “{directPrint1}{directPrint2}”; //可以不带后缀名

return reports;

}

</script>

2runqian_getPrintReports()函数

函数说明:此函数返回的格式为:“{无参数报表名}{报表1(参数1=value1;参数2=value2;…)}{报表2(参数1=value1;参数2=value2;…)}…”

function runqian_getPrintReports() {

//请在此函数里加上打印前需要的处理,最后返回需要打印的报表

return “<%=report%>”;

}

该函数在点击直接打印或批量打印按钮时自动调用。

若希望返回值为空时不进行打印操作,需返回“”,见如下实现:

function runqian_getPrintReports(){

var reports = “”;

alert(“请选择报表!“)

return “”;

}

当进行打印时,弹出“请选择报表”的提示后不再进行打印操作。

注意:此处必须以上面的方式返回,不返回或返回false以及其他值均无法达到不打印的效果。