如果有多张表样相同的excel需要在线导入到模板,并提交至数据库中,那么该如何实现先将所有excel导入进来,然后再一次性提交呢?下面就通过java报表开发工具来简单介绍一下。
前期准备工作(包括相关工具或所使用的原料等)
java报表开发工具FineReport7.1.1大小:148.2M 适用平台:windows/linux详细的操作方法或具体步骤
将下面2张表样相同的excel导入到FineReport模板中:

模板准备
以Excel导入行式报表中的模板为例,打开%FR_HOME%\WebReport\WEB-INF\reportlets\doc\SpecialSubject|\ExcelImport\ExcelImport_1.cpt,修改其表样,使其与excel中的标题名保持一致,如下图:

报表填报属性修改
修改报表填报属性中列和数据库中列的对应,这里只需要修改类别ID对应的值,修改为map(C2, "ds2", 2, 1)。
自定义导入按钮
点击模板>模板web属性>填报页面设置,双击工具栏中的自定义按钮,将该按钮添加到顶部工具栏中,同时删除内置的导入Excel按钮和提交按钮,如下图:

自定义事件编写
在解决思路中描述了自定义按钮需要执行的操作为:在点击按钮的时候将上一次导入到模板中的数据进行提交,同时刷新页面,让页面恢复到原始的空白状态,并实现excel导入操作。
在工具栏编辑界面,选中自定义按钮,点击自定义事件,如下图:

在JavaScript脚本中写下js语句,如下图:

js完整语句如下:
var value=contentPane.getCellValue(0,1,2);
if (value!="") {
FR.Msg.confirm("提示", "是否提交上一次导入数据", function(result){
if(result){
_g('${sessionID}').writeReport();
contentPane.refreshAllSheets();
contentPane.importExcel();
}
});
}
else{
contentPane.importExcel();
}
效果查看
点击填报预览,点击导入Excel这个自定义按钮,选择第一个需要导入的Excel,然后再点击第二个需要导入的Excel,页面会提示是否提交上一次导入数据,点击确定,则会将上一次导入数据提交至数据库,然后再弹出文件选择框,这时就可以选择第二个Excel,以此类推,如下图:

- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
