-
1505121235 数据老手Lv5
发表于2020-2-21 18:37
楼主
本帖最后由 1505121235 于 2020-2-21 19:28 编辑
功能介绍:对话框钻取就是点击钻取将子表显示在一个对话框里面,然后点击确定,取子表的某个值去改变主表的某个值或者子表赋值传参给主表的参数,重新计算主表过滤主表的数据,对话框钻取有三种方式,参数回写,数据回写,脚本方式。
应用场景:表格回填时,发现需要回填的字段信息在历史表中已存在,希望将历史信息一样的直接进行导入,减少重复手填的操作
1.参数回写
功能介绍:对话框钻取就是点击钻取将子表显示在一个对话框里面,然后点击确定,取子表的某个值去改变主表的某个值或者子表赋值传参给主表的参数,重新计算主表过滤主表的数据,对话框钻取有三种方式,参数回写,数据回写,脚本方式。
应用场景:表格回填时,发现需要回填的字段信息在历史表中已存在,希望将历史信息一样的直接进行导入,减少重复手填的操作
1.参数回写
参数回写是将子表里面的某个表元的值赋给主表里面的某个参数,然后重新计算主表,过滤主表的数据。
在对话框式钻取设置页面有参数输入和参数输出。
参数输入是作用于子表,点击钻取,会在对话框里面将子表先计算出来,此时如果设置了输入参数,计算子表的时候就会把参数带过去。
参数输出是作用于主表,点击确定,会计算主表,设置了输出参数,计算主表的时候会把参数带着一起计算。
如下图所示: 主表的参数为@rq,子表的参数为@rq1
实现效果:点击主表的每一行的钻取,会把主表对应行的A2的值赋值给子表的参数@rq1,然后子表过滤后的值算出来展示在对话框上,点击确定后会把子表A2表元的值赋给主表的参数@rq,然后重新计算主表,过滤主表的数据。
2.数据回写 数据回写,是将子表某个单元格或者某个组件的值写到主表的某个单元格或者组件,它与参数回写的区别是数据回写是直接设置主表的值,不对主表进行计算。
实现效果:点击钻取,弹出对话框,选择子表某一个单元格,点击确定,子表单元格的值直接写入主表对应的单元格
3.脚本方式脚本的方式就比较灵活,提供子表脚本和主表脚本,子表的脚本可以获取子表的值或者一些处理,主表脚本可以将子表脚本的返回值通过getScriptData()f方法获取到,然后对主表进行一些赋值或者其他处理,如果子表的脚本要传值到主表的脚本就得要求定义一个var result来装这个值,那么主表就可以通过getScriptData方法拿到值。
比如:子表脚本:var result = g_formmgr.getValue({name:"HHH33.HHH35"});
主表脚本:var v = getScriptData(); g_formmgr.setValue({name:"GRID2.A2",value:v});
上述脚本产生的效果就是,点击钻取,子表显示在对话框后,点击确定,子表脚本会获取子表里面HHH35这个组件的值,然后主表脚本会把这个值设置到主表的GRID2表格的A2表元上,脚本方式比较灵活,使用者可以自由发挥。
3个回答
我想咨询一下,使用对话框钻取时数据回写方式是数据回写,子表和主表使用的都是表格,从子表的表格表元取数都主表的表元中,当取主表第一行数据时没有问题,取第二行数据时会出现将子表第三个数据回写到第一行第一个表元的情况。请问这个是什么问题呢,是对话框钻取不支持多行数据回写吗?
还有如果使用脚本的话,取多个表元进行回填时,这个脚本是按照表元依次往下写吗,还是有什么固定的写法才可以生效?