反饋已提交
網絡繁忙
对于多张模板,用户希望一键打印出来。
对于动态参数模板,用户希望一键打印不同参数值时的报表。
例如有一张全国销售人员的业绩报表,传入不同地区参数后,批量打印出这些报表。如下图所示:
使用 JavaScript 调用 FineReport 的打印接口 FR.doURLPrint(config) 来批量打印报表。
FR.doURLPrint(config)打印接口内容可参考文档 JS调用FR打印接口 第 2 章。
实现批量打印需要对接口中 data 参数进行设置。data参数形式:
data: { reportlets: "[{reportlet: 'reportname1.cpt',param1: 'value1',param2: 'value2'}, {reportlet: 'reportname2.cpt',param3: 'value3',param4: 'value4}]"}
注:其中“[]”中的内容对应需要打印的内容,一个“{}”对应一个模板,“{}”中内容用“,”隔开,顺序依次为模板名称、模板中参数名称,若有多个参数也用","隔开。
举例给出不同应用场景下对应的设置:
1)打印同一个模板,传入模板的参数不同
"[{reportlet: 'GettingStarted.cpt',地区: '华北'}, {reportlet: 'GettingStarted.cpt', 地区: '华东'}]"
2)打印多个模板,传入的模板名称不同
"[{reportlet: 'GettingStarted001.cpt',地区: '华北'}, {reportlet: 'GettingStarted002.cpt', 地区: '华东'}]"
3)打印同一个模板,传入两个参数
"[{reportlet: 'GettingStarted.cpt',地区: '华北',销售员: '孙林'}, {reportlet: 'GettingStarted.cpt', 地区: '华东',销售员: '张珊'}]"
新建普通报表,新建数据集 ds1:
select 地区 from 销量
将地区字段拖入 A2 单元格,选中 A2 单元格,点击「单元格属性」>「高级」按钮,自定义显示值,如下图所示:
自定义显示值内容:
'<input id="config1" type="checkbox" value="'+$$$+'" checked />'+$$$
注:checked 代表初始化时参数复选框默认全选,如果不需要被选中,去掉此参数。
为了将 A2 显示成复选框样式,还需要将其样式设计成「用 HTML 显示内容」。
选中 A2 单元格,点击「单元格属性>其他」,设置显示内容为「用 HTML 显示内容」,如下图所示:
选中 A4 单元格,点击「控件」,设置为「按钮控件」。
按钮类型为「普通」,按钮名字为「批量打印」,如下图所示:
选中 A4 单元格,点击「控件」>「事件」,添加「点击事件」,输入 JavaScript 代码,如下图所示:
JavaScript 代码如下:
var printurl = "http://localhost:8075/webroot/decision/view/report";var p = [];//获取当前页面选中的参数值,并将值放入数组中 $(":checkbox").each(function() { if ($(this).attr("checked") == "checked") p.push("{reportlet: 'GettingStarted.cpt', 地区 : " + $(this).val() + "}");})if (p.length > 0) { //将参数值组成的数组转化为字符串 var rp = p.join(","); var reportlets = "[" + rp + "]"; var config = { printUrl: printurl, isPopUp: true, // 是否弹出设置窗口,true为弹出,false为不弹出 data: { reportlets: reportlets // 需要打印的模板列表 }, printType: 0, // 打印类型,0为零客户端打印,1为本地打印 // 以下为本地打印的参数,仅当 printType 为 1 时生效 printerName: 'Microsoft Print to PDF', // 打印机名 pageType: 2, // 打印页码类型:0:所有页,1:当前页,2:指定页 pageIndex: '1-3', // 页码范围。当 pageType 为 2 时有效 copy: 1, // 打印份数 }; FR.doURLPrint(config);} else alert("请选择需要打印的参数");
保存模板,点击填报预览,即可对选中的按钮值根据不同参数批量打印。效果如「1.2 节预期效果」所示。
注:不支持移动端。
已完成模板请参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\PrintReport\JS实现批量打印.cpt
点击下载模板:JS实现批量打印.cpt
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙