定义取数规则
当输入某个数据后,根据预定义的规则将另外一些数据取出来并自动填入到相关字段中,实现数据的自动录入操作。
按照目标数据源的类型(单行,多行)可以分为多行取数和单行取数。取数回填原则如下:
当取数动作被触发时,首先是清除相关数据,清除原则如下:
- 当目标字段所在数据源是单行数据源时,该字段内容被清除。
- 当目标字段与触发字段同属一个数据源时,且该数据源是多行数据源时,仅触发行上的目标字段被清除。
- 当目标字段与触发字段分属不同的数据源,且目标数据源是多行数据源时,该数据源的所有行被删除
当相关数据先被清除后,再将取出的数据填入到相应字段中,原则如下:
- 当目标字段所在数据源是单行数据源时,仅将取出的第一行数据的相关字段填写到目标字段中
- 当目标字段与触发字段同属一个数据源时,且该数据源是多行数据源时,仅触发行上的目标字段被填上相应的数据,如果取出的数据是多行的,仅取第一行
- 当目标字段与触发字段分属不同的数据源时,且目标数据源是多行数据源时,取出的所有数据都将填入目标数据源中。
常见的应用是当输入纳税人登记号后,自动将对应的纳税人名称,地址,电话等信息取出来。示例如下:
如下定义表示当“下岗失业减免”工作表中的绑定到“flow_gs_xgsyrysqb”表中“swdjzh”字段的单元格发生变化时,自动从“jdbc/tf2000”(参看数据源集成)中取数据。取数SQL语句如下图所示:

当取出数据后(通常是一条数据),按照如下图的对应关系将取出的数据分别填入到表单指定的的数据表的指定的字段中

由上面的示例可能得到如下结论:
- “取数”功能是当指定工作表中绑定到指定数据源指定字段中的单元格发生变化时才触发的(与指定工作表中指定单元格发生变化时触发具有相同的功能,只是定义形式不同)
- 使用一个表达式来定义取数SQL
- 在表达式中可以使用函数,单元格名,别名等,这样这能动态构建SQL语句
- 按指定的关系将结果自动填入到多个数据源的多个字段中。
多行取数:
当指定的SQL表达式取出多条数据时,将遵循一定的原则进行取数,为了便于下面的表述,先解释几个名词:
- 触发字段:当在某个字段中输入数据后,触发了一个取数动作,这个字段称为触发字段
- 触发字段所在数据源:触发字段所从属的数据源
- 目标数据源:当取数据后,需要将数据填到的数据源
- 触发行:触发字段所在的行号