更新属性- 表单填报属性-属性及效果 -表单工具
目录

更新属性

更新属性

更新属性是指表单填报数据提交至服务器后的进一步更新存储方式,如:填报数据更新至数据库表、字段的属性。

使用【增加】按钮,可以新增一个更新属性。对于已有的更新属性,也可以进行重新定义名称、删除、上移、下移等操作。

可为填报表设置多个更新属性,所以一张填报表中的数据,能够以多种方式进行更新。

更新方式

更新方式包括:“更新数据库表”、“用储存过程更新”、“用自定义类更新”。根据选择的更新方式的不同,更新设置的内容会发生不同的变化,常用的更新方式是“更新数据库表”。

更新数据表

要更新的数据表需要先通过数据管理进行登记,登记后的数据表才能被选择具体参见:数据表登记。数据表更新设置,需要依次选择数据源、模式、更新表名、更新格,通过更新字段列表右侧的【增加】或【批量增加】按钮,设置更新字段和该字段对应的更新表达式。更新属性具体设置如图:

系统提供多种提交类型,默认使用智能提交方式,具体的介绍可参见文档下方的“提交类型”小节。

对于行数填报表,默认情况下只更新编辑过的行数据,如果需要将未修改的行一起更新,需要勾选“是否更新未修改行”

注意:

1.更新值的表达式必须以等号开头。

2.更新字段列表中的“参数”这个属性一般情况可以为默认,但当主键为自动增长时,参数类型必须设置为自动增长。

3.系统会自动将更新值处设置的单元格的可写属性,设置为可写。

存储过程更新

用存储过程更新:系统调用存储过程完成更新,更新属性的问号与对应的取值表达式中,如果此问号要求取单元格的填报值进行表达式计算,那么应写成: =inputValue(单元格名) 的形式,如果直接写单元格名,表示是取单元格填报前的原始值。

例如oracles数据库中新建存储过程如下:

create or replace procedure class_set_in
    (v_o_id varchar2,
     v_class NVARCHAR2,
     v_t_code nvarchar2,
     v_note nvarchar2,
     v_c nvarchar2
    )is
    begin
    if v_c ='TRUE' THEN
    INSERT INTO CLASS_TYPE_SET_ON SELECT to_number(v_o_id),v_class,to_number(v_t_code),v_note from dual;
    else
    INSERT INTO CLASS_TYPE_SET_OFF SELECT to_number(v_o_id),v_class,to_number(v_t_code),v_note from dual;
    END IF;
    end class_set_in;

上述存储过程根据参数v_c的取值判断将传进来的其它数据存储到哪张业务表中。

注意:数据库中需要有对应的业务表CLASS_TYPE_SET_ON 和 CLASS_TYPE_SET_OFF。

设置更新属性时如截图:

自定义类更新

用自定义类更新:由用户写自定义Java类来完成对数据的更新。

提交类型

对于数据库表更新,存在四种提交类型(存储过程更新和自定义更新无此属性),每条更新属性可以设置不同的提交类型

1.智能提交:根据主键 insert/update,若为行式报表则还能delete,默认为此方式(报表组暂时只支持智能提交)

2.删除提交:根据主键 delete(删除页面上显示的数据,与智能提交的删除不同,智能提交是delete页面上少掉的数据)

3.插入提交:根据主键 insert页面上所有数据

4.更新提交:根据主键,执行update页面上修改的数据或delete页面上少掉的数据,不能插入数据