历史版本3 :JS实现批量选择数据并打印 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

1. 问题描述编辑

对于填报网格式报表,每行前面有个复选框,希望实现点击页面中设置的打印按钮希望将选中的复选框中的值按照一定的样式打印,如分栏、页面固定显示几行等格式。

2. 实现思路编辑

可以定义另外一个有固定格式的模板,此模板的数据是根据填报网格式报表中选中的值进行过滤,而在填报网格式报表中则需要在按钮的点击事件中定义js,js首先要获取选中行的数据,然后调用FineReport内置的打印方法,将选中的值以参数的方式加入到打印方法的URL中传到被打印的模板中。

3. 示例编辑

预览模板效果如下所示
选中一些数据让其按照以如下图所示的样式进行打印,下面我们来看下具体的实现步骤。
3.1 新建需要打印格式模板
  • 定义数据集
由于此模板要根据选中的值进行打印,因此要在此模板中定义参数,在此我们将参数定义成数据集参数。
新建工作簿,增加数据集ds1,SQL语句为:SELECT * FROM 订单 where 订单ID in (${ID})
  • 表样设计
将表样设计成要打印的效果,在此我们将模板设置成如下样式:
将B2单元格的左父格设置成无,并将其余单元格的左父格设置为B2。
将B3和D3设置形态
同样也可以对模板进行分栏
  • 保存模板
保存模板,具体的设置可参考模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\FormFAQ\PrintCol.cpt
3.2 修改预览模板
  • 打开模板
打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\LineForm\LineForm7.cpt
  • 修改模板
此模板,我们只要修改按钮的名称和按钮的js即可,因此我们将按钮名称修改成“打印”,并将js修改成如下代码: