当前位置:首页  >  表格软件专题  > 

自定义FineReport网格式填报表打印样式

作者:finereport

浏览:10,321

发布时间:2023.7.31

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

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

预览模板效果如下所示

报表模板效果预览

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

var $span = $(".x-checkbox-checkon");  //获取选中的复选框   
var darray = [];   
var $tds = $("td").has($span); //获得选中复选框的单元格   
for (var i = 0, len = $tds.length; i < len; i ++) {    //遍历选中的单元格   
   var id = $($tds[i]).attr("id");  //给选中的单元格增加id属性   
var idn = id.replace("A","B"); //将复选框所在的A列换成客户编号所在的B列   
var vv=document.getElementById(idn).innerHTML;    //获取选中单元格所在B列的数据   
  darray.push(vv);     
}   
FR.doURLPDFPrint("${sevletURL}ReportServer?reportlet=/doc/Form/FormFAQ
/PrintCol.cpt&productID="+darray);  //调用打印方法,URL为之前做好的模板路径

注:若获取的vv值为字符串,要将其放入数组中则需要修改成darray.push("'"+vv+"'")
2.3 保存模板
保存模板,具体的设置可参考模板:
%FR_HOME%WebReportWEB-INFreportletsdocFormFormFAQPrintOtherStyle.cpt
3. 效果查看
填报预览PrintOtherStyle.cpt,选中几行数据后,点击打印按钮,就会按照上图的效果进行打印。

管理驾驶舱指南,业务指标,数据分析报表需要展现大量的数据和文字,提高信息传递的效率

报表工具产品更多介绍:www.finereport.com


在线客服

电话咨询

技术问题

投诉入口