<< Click to Display Table of Contents >> 填报提交复制链接 |
本章为您介绍入库关系设置,填报提交的类型以及设置方式。
➢注意:
填报功能本身不会自动创建表,因此在制作填报报告前,需要先在数据库中建立填报的数据库表
1.建立入库关系
如图所示,制作好填报报告后,在编辑填报报告页面顶部菜单点击【填报】,即可添加入库关系。
添加:添加入库关系,一个填报报告支持添加多个入库关系。
删除:删除入库关系。
重命名填报关系:双击入库关系名称即可以进行编辑。
数据源:下拉框选项为【添加数据源】模块中已经建立好的数据源连接。支持回填数据的数据源参考数据填报。
选择目标表:选择数据源后,自动列出数据所选数据源的数据库和表。加载出表后可以对数据源下的表进行搜索,详细用法可参考数据源部分。
智能匹配字段组:选择数据源和目标表后,点击智能匹配字段组按钮,自动将组件上绑定字段与选中的目标表中的字段进行匹配。如果填报表中有多个填报组件,需先在弹出的填报组件下拉列表中选择对应的的填报组件后再自动匹配字段。字段匹配后会将填报组件的所有字段添加到源字段列,目标表字段与填报组件字段匹配后会添加到目标字段列。
字段:通过源字段和目标字段的匹配使报表中的组件和要提交到数据库的表的字段对应起来。
·条件列:提交到数据库时作为条件的提交的列,可以选择一个字段,也可以选择多个字段。无条件列时不能更新和删除数据。从V9.3版本开始,支持普通参数组件、系统参数作为条件。
·提交列:希望可以提交到数据库的列,不勾选时不能提交到数据库。
·源字段:当前报表中的所有填报参数组件所绑定的字段列/自由表填报组件中的单元格,参数组件,4个内置参数,例如:填报参数1:销售额、填报参数2:订单ID、自由表填报1:cell1、自由表填报1:cell2:cell3、文本参数1、下拉参数1 、_NOW_...
·目标字段:所要提交到的数据库中表的字段,即目标表中所选中表的字段。
·条件校验:数据填报支持条件校验,根据具体的业务需求,确定填写校验规则。
校验失败时回退全部:勾选后,单次提交有多个入库关系,只要有任一入库关系中的数据检测发生错误,则所有数据都回退不入库。默认不勾选,检测正确的入库关系对应的数据正常入库,检测错误入库关系对应的数据不入库。
提交类型:填报提交的类型,参考填报提交类型。
条件校验使用说明:
•条件校验的右侧比较对象为填报报告中的参数组件时,参数组件必须要在字段中设置入库关系,否则无法正常获取参数组件值。
•填报参数组件中,条件校验右侧比较对象可以选择组件中的其他列。
•自由表填报组件,右侧比较对象可以选择组件中的其他单元格。
•参数组件的条件校验右侧比较对象可以选择其他参数组件。
入库设置操作步骤如下,
•点击添加按钮,设置名称为“入库关系1”。
•在填报对话框中,选择要入库的数据源和目标表,点击智能匹配字段组,自动匹配源字段和目标字段,并勾选订单ID行对应条件列的复选框。
•设置源字段销量的条件校验:销量 是 >= 5。
•设置提交类型为更新提交,并点击确定。这样入库关系便设置完成。
填报的提交的类型包括:插入提交,更新提交,删除提交,智能提交。
•插入提交:对数据做插入的操作,在数据库中执行 inset 语句
•更新提交:对数据做更新的操作,在数据库中执行 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工具栏提交
如果填报报告中没有提交按钮但是设置了填报的场景,报表顶部工具栏会出现"提交"按钮。
前置条件:报表中没有提交按钮,并且工具栏中配置了“提交”操作(默认已配置)