历史版本13 :导入Excel提交前清空数据库表 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 版本编辑
报表服务器版本 |
---|
10.0 |
2. 描述编辑
2.1 需求描述
为了防止数据冗余,用户在导入 Excel 之前需要清空原表数据,确保清空完成后,再导入数据。
2.2 解决思路
通过填报页面设置中Excel导入前事件,设置在 Excel 导入前清空表数据,且添加回调函数判断清空表是否完成。
3. 示例编辑
3.1 模板准备
3.1.1 设计器准备
以模板 %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject|\ExcelImport\ExcelImport_1.cpt 为示例
已知 Excel 表: 导入 Excel 前清空表 .xlsx
添加数据库查询 ds1,SQL 语句: SELECT * FROM 产品
3.1.2 平台设置
打开数据决策系统,点击管理系统>安全管理>安全防护,关闭脚本调用公式限制。
注:该限制默认开启,会导致回调函数不生效。
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 只表示后台程序执行没有异常,不表示数据提交成功。
注: 确认页面提示表清空成功!后再导入数据!