1. 概述
1.1 版本
版本 | 功能变更 |
---|---|
11.0 | - |
1.2 应用场景
使用 Excel标记导入插件 导入 Excel 数据提交时,希望先清空原数据库表的数据再将导入的数据写入数据库表。如下图所示:
1.3 实现思路
1)设置填报属性时,多个「内置SQL」的执行顺序为从上到下,串行执行。
2)利用此特性,在第一个「内置SQL」中设置「删除提交」清空表,然后在第二个「内置SQL」中设置「智能提交」插入数据。
3)该方式保证了事务的一致性,如果数据插入失败,清空表的操作也会回滚,确保数据库状态回到事务开始之前的状态。
2. 示例
2.1 新建模板
点击菜单栏「文件>新建普通报表」,新建一张普通报表。如下图所示:
2.2 准备数据
新建数据库查询 ds1,SQL 语句为: SELECT * FROM 产品。如下图所示:
2.3 设计报表
A1-K1 单元格输入文本,A2-K2 单元格设置扩展方向为纵向,设计报表样式。如下图所示:
注:设计表格时未添加控件,只支持导入数据,无法修改数据,如需修改数据可自行添加控件。
2.4 设置 Excel 标记导入
点击菜单栏「模板>Excel导入标记」,设置导入区域,「清空」、「增量」、「覆盖」三种导入方式皆可,此处设置导入方式为「清空」。如下图所示:
注:此处导入方式选择的「清空」只是清空页面数据, 2.6 节的「删除提交」设置才是清空数据库表中的数据。
2.5 添加标记导入按钮
1)点击菜单栏「模板>模板web属性」。
2)点击「填报页面设置」,选择「为该模板单独设置」,双击「标记导入」按钮添加到工具栏。如下图所示:
2.6 设置清空表
1)点击菜单栏「模板>报表填报属性」,添加「内置SQL」,提交类型为「删除提交」。
2)选择数据库 FRDemo 中的「产品」表 ,添加字段「产品 ID」并勾选为主键,值为公式:SQL("FRDemo","SELECT 产品ID FROM 产品",1) ,即查询出所有的「产品ID」作为主键来清空表。如下图所示:
注:设置清空表只需要一个字段,设置多个字段可能会出现笛卡尔积问题。
2.7 设置插入数据
1)继续添加「内置 SQL」,提交类型为「智能提交」。
2)选择 FRDemo 中的「产品」表,智能添加所有字段,并添加对应单元格,勾选「产品ID」作为主键。如下图所示:
注:添加「内置SQL 」的顺序不能错,先设置清空表,再设置插入数据,否则达不到效果。
2.8 效果预览
注:不支持移动端。
保存报表,点击「填报预览」,点击工具栏的「标记导入」,导入 Excel 文件,点击「提交」,数据库的数据表会先清空再将导入的数据提交入库。如 1.2 节所示。
3. 下载模板
点击下载模板:先清空数据库表再提交数据入库.cpt
点击下载 Excel :先清空数据库表再提交数据入库.xlsx