1.需求背景
客户在Smartbi的电子表格报表上的某一个参数上输入多个值,希望可以做到按照该参数值批量下载pdf文件和批量打印文件。
2.功能说明
电子表格可以按照参数值的多选,进行批量下载pdf文件和批量打印文件。
批量下载:按照该参数值(有多参数值),分别导出一份一份pdf文件和一个合并的pdf文件,然后将这些文件打成压缩包下载到本地。(例如:该参数有10个值,则导出10个pdf文件和一个合并这10个文件的合并文件,然后把这11个文件打成压缩包下载)
批量打印:按照该参数值(有多参数值),分别导出多分对应参数值的内容然后并成一个汇总的pdf文件,然后打印该汇总的pdf文件。(例如:该参数有10个值,则导出10份数据,然后将这10份数据合并一个pdf文件,最后打印该合并pdf文件的内容)
注意:
1)批量下载 只支持 pdf格式的文件。合并的pdf文件,每一份数据之间,开头都要以新的页面开头。例如:第一份数据有1.5页,接上第二份数据的时候,从pdf的第3页开始,而不是接着第2页的中间开始。
2)批量下载 和 批量打印 功能,不支持多sheet的电子表格。
3)批量下载 和 批量打印 功能,不支持报表的宽度超过纸张页面的表格。(PS:若是报表很宽,导出pdf的时候,超出宽度的部分会自动挤到下一页,最后的效果会很差,所以客户使用时要自行避免)
4)枚举的参数只支持 多选下拉 或 列表对话框 或 下拉树 等有备选值的参数类型。(PS:建议枚举的参数的枚举值不超过20个,参数越多,导出所消耗的服务器资源就越大,导出的时间越慢)
3.使用说明
3.1. 扩展包部署
部署说明:扩展包部署
注意:更新扩展包之前,请做好知识库以及扩展包的备份。
3.2. 使用操作
(1)宏代码
前提:需要在对应的电子表格中,添加宏
模块:客户端模块
对象:spreadsheetReport
事件:onRenderReport(打开报表后)
宏代码说明:
只需要配置6-8行内容,其他不需要修改;
spreadsheetReport.ext_mutilParam:需要枚举的参数的名称;
mutilExportLabel:批量下载的按钮显示名称;
mutilPrintLabel:批量打印的按钮显示名称;
(2)枚举参数
当枚举参数没选择任何备选值时,会默认获取该参数的所有备选值枚举导出对应的pdf文件,如果枚举的参数有勾选对应的值,则按勾选的参数值进行枚举合并导出,打印功能的参数逻辑相同;
(3)导出效果
枚举参数导出,把每个pdf文件再合并成一个文件,再把每个参数的文件以及合并的文件打包成压缩包进行下载;
(4)打印效果
枚举参数导出,把每个文件合并成一个文件打印;