历史版本9 :导入Excel提交前清空数据库表 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 描述编辑
为了防止数据冗余,用户在导入excel之前需要清空原表数据,确保清空完成后,再导入数据。
2. 解决方案编辑
通过填报页面设置中“Excel导入前”事件,设置在Excel导入前清空表数据,且添加回调函数判断是否清空表完成。
3. 示例编辑
3.1 模板准备
以模板 %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject|\ExcelImport\ExcelImport_1.cpt 为示例
已知Excel表: 导入Excel前清空表.xlsx
添加数据库查询ds1,sql语句: SELECT * FROM 产品
3.2 设置提交事件
点击模板>模版Web属性>填报页面设置,选择为该模板单独设置,添加Excel导入前事件:
事件类型选择“提交入库”,提交类型选择“删除提交”,选择需要清空的数据表,通过添加字段添加主键“产品ID”,值使用公式“SQL” 查询出所有主键 id

注: 值公式 =SQL("FRDemo","SELECT 产品ID FROM 产品",1)
3.3 设置回调函数
点击下方回调函数,判断是否已经成功清空表

JS代码:
if(fr_submitinfo.success){
FR.Msg.toast('表清空成功!');
}else{
FR.Msg.toast('表清空失败!');
}
注:success只表示后台程序执行没有异常,不表示数据提交成功。
注: 确认页面提示"表清空成功!"后再导入数据!
已完成的报表,可参见%FR_HOME%\webapps\webroot\WEB-INF\reportlets\demo\form\导入Excel前清空表.cpt。