<< Click to Display Table of Contents >> 提交类型和提交方式复制链接 |
1. 概述
1.1 应用场景
设置填报的数据入库方式,不同的场景可以使用不同的方式。当需要向数据库中填入数据时,可以使用插入提交;当需要更新数据库中数据时,可以使用更新提交;当需要删除数据库中数据时,可以使用删除提交。当需要使用插入、更新、删除中两种以上提交时,可以使用智能提交。
在制作报告时,如果希望用户点击报告中按钮提交数据时,可以使用提交组件;如果希望通过菜单提交,可以使用工具栏中的提交。
1.2 功能介绍
提交类型包括:插入提交,更新提交,删除提交,智能提交。提交方式包括使用提交组件和工具栏两种。
在填报字段设置中可以选择提交类型,如下图。
•插入提交:对数据做插入的操作,在数据库中执行 insert 语句。
•更新提交:对数据做更新的操作,在数据库中执行 update 语句。指定条件列在更新提交中是必要的,相当于 update 语句中定位要修改的数据的 where 条件部分。
•删除提交:对数据做删除的操作,在数据库中执行 delete 语句。指定条件列在删除提交中是必要的,相当于 delete 语句中定位要删除的数据的 where 条件部分。
•智能提交:根据数据变动,智能判断做"增删改"操作,使用此方式必须设置条件列。
场景1:Form类组件上绑定的数据和回填的目标表是同一个,并且数据库目标表有主键(主键下文以"id"为例),智能提交判断如下:
•删除行的数据做 delete。
•新增已存在的id数据,将此id数据做update;新增不存在的id数据,将此id数据做 insert。
•修改行的数据做 update。
场景2:Form类组件上绑定的数据和回填的目标表是同一个,并且数据库目标表没有主键,智能提交判断如下:
•删除行的数据做 delete。
•新增行的数据做 insert。
•修改行的数据做 update。
场景3:Form类组件上绑定的数据和回填的目标表不是同一个,并且数据库目标表有主键(主键下文以"id"为例),智能提交判断如下:
•删除行的数据做 delete。
•新增目标表已存在的id数据,将此id数据做 update;新增目标表不存在的id数据,将此id数据做 insert。
•修改目标表已存在的id数据,将此id数据做 update;修改目标表不存在的id数据,将此id数据做 insert。
场景4:Form类组件上绑定的数据和回填的目标表不是同一个,并且数据库目标表没有主键,智能提交判断如下:
•删除行的数据做 delete。
•新增行的数据做 insert。
•修改目标表已存在的条件列数据,将此条件列数据做 update;修改目标表不存在的条件列数据,将此条件列数据做 insert。
3.提交方式
填报的提交支持"提交"组件 和 工具栏“提交"两种提交方式。
3.1提交组件提交
在报告中先添加提交组件,共有两种设置方式。
设置:提交组件右侧工具栏【设置>选项>提交类型】 选择“填报提交”,[参数] 选择需要提交的入库关系,即填报字段中的设置,如图:
提交:查看报告中点击此提交按钮,将会把选中的填报同时提交,提交的类型为“设置填报”中所选择的提交类型 ,“提交类型”选项参考上文。
填报成功,自动关闭页面:即点击提交成功填报后,填报页面会自动关闭。
设置:提交组件右侧工具栏【设置>脚本】,在脚本对话框的“提交时运行”中书写提交脚本,请注意,执行提交脚本后需要通过refreshData()刷新数据。例如下图。
提交脚本如下,脚本均支持同时提交多个填报关系和依次提交多个填报关系。
提交类型 |
脚本 |
使用举例 |
插入提交 |
insert(String formParmeter):void |
insert("my_first_form"); //同时提交多个填报 insert("填报的名称,my_first_form"); //依次提交多个填报 insert("my_first_form");insert("我的填报_db2") |
更新提交 |
update(String formParmeter):void |
update("my_first_form"); //同时提交多个填报 update("填报的名称,my_first_form"); //依次提交多个填报 update("my_first_form");update("我的填报_db2") |
删除提交 |
remove(String formParmeter):void |
remove("my_first_form"); //同时提交多个填报 remove("填报的名称,my_first_form"); //依次提交多个填报 remove("my_first_form");remove("我的填报_db2") |
智能提交 |
autoCommit(String formParmeter):void |
autoCommit("填报的名称"); //同时提交多个填报 autoCommit("填报的名称1,填报的名称2"); //依次提交多个填报 autoCommit("填报的名称1");autoCommit("填报的名称2") |
3.2工具栏提交
如果填报报告中没有提交组件但是设置了填报的场景,报表顶部工具栏会出现“提交”按钮。
前置条件:报告中没有提交组件,并且报告的操作模式中配置了“提交”操作(默认已配置)。