提交类型和提交方式

<< Click to Display Table of Contents >>

当前位置:  数据填报 > 数据库字段映射和提交设置 

提交类型和提交方式

复制链接

1. 概述

1.1 应用场景

设置填报的数据入库方式,不同的场景可以使用不同的方式。当需要向数据库中填入数据时,可以使用插入提交;当需要更新数据库中数据时,可以使用更新提交;当需要删除数据库中数据时,可以使用删除提交。当需要使用插入、更新、删除中两种以上提交时,可以使用智能提交。

在制作报告时,如果希望用户点击报告中按钮提交数据时,可以使用提交组件;如果希望通过菜单提交,可以使用工具栏中的提交。

1.2 功能介绍

提交类型包括:插入提交,更新提交,删除提交,智能提交。提交方式包括使用提交组件和工具栏两种。

2.提交类型

在填报字段设置中可以选择提交类型,如下图。

data_report_form_87

插入提交:对数据做插入的操作,在数据库中执行 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提交组件提交

在报告中先添加提交组件,共有两种设置方式。

填报提交

设置:提交组件右侧工具栏【设置>选项>提交类型】 选择“填报提交”,[参数] 选择需要提交的入库关系,即填报字段中的设置,如图:

data_report_16_zoom74

提交:查看报告中点击此提交按钮,将会把选中的填报同时提交,提交的类型为“设置填报”中所选择的提交类型 ,“提交类型”选项参考上文。

填报成功,自动关闭页面:即点击提交成功填报后,填报页面会自动关闭。

脚本提交

设置:提交组件右侧工具栏【设置>脚本】,在脚本对话框的“提交时运行”中书写提交脚本,请注意,执行提交脚本后需要通过refreshData()刷新数据。例如下图。

data_report_19_zoom74

提交脚本如下,脚本均支持同时提交多个填报关系和依次提交多个填报关系。

提交类型

脚本

使用举例

插入提交

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工具栏提交

如果填报报告中没有提交组件但是设置了填报的场景,报表顶部工具栏会出现“提交”按钮。

前置条件:报告中没有提交组件,并且报告的操作模式中配置了“提交”操作(默认已配置)。

data_report_24

data_report_20_zoom50