9.4.10 数据源-明细

填表公式:数据源-明细

1.什么是数据源

“数据源”可从模板的数据接口、系统内设的全局数据接口、新建表单、打开表单、导入excel、摄像头扫码、上传文件、询问对话框、本表单明细等获取数据,并将获取到的数据传给后续的操作中使用。返回的数据是一个二维表(结构类似明细表),一行表示一条记录,一列表示一个数据项。

2.作用

①“数据源”的作用是给后续的操作提供数据;
②数据源中有多少条记录,则驱动操作执行多少次。首先会取出二维表中第一条记录,驱动操作的执行一次,在操作中可以访问该条记录参与计算,操作完成后,“数据源”会取下一条记录继续驱动操作执行,以此类推,直至所有数据消耗完。
例如“数据源”有三条记录,则将驱动执行三次操作。

3.参数说明

明细数据源,支持在客户端、移动端运行。
①过滤条件:填入表达式,对数据源(本表单的明细)中所有的记录进行过滤,过滤出符合条件的记录。若满足过滤条件的记录只有一条,则将驱动执行一次,若满足过滤条件的记录由二条,则将驱动执行二次操作....;
②显示对话框:默认不勾选,若不勾选该项,数据源所有过滤后的记录都会被使用;若勾选该项,将用对话框显示明细内容,只有被选中的明细记录才会被使用。
③可多选: 勾选“显示对话框”才可见该项。若勾选该项,在对话框中可以选中多条记录;若不勾选该项,每次只能勾选对话框中的一条记录。
④多选时合成记录为一条: 被选中的多条记录会合并成一条记录,结果只返回一条记录。
⑤包含被隐藏的行:若勾选该项,在对话框中显示的记录包含明细中被隐藏的行;若不勾选该项,在对话框中显示的记录不包含明细中被隐藏的行。

4.示例

我们以《采购入库单》中明细金额合计为例,输入明细中的金额,总金额自动进行合计。有2种实现方法:数据源多选合成一条记录/数据源相加
4.1 数据源多选合成一条记录
①添加“明细.金额”的值变化事件。在“采购入库单”模板表单设计界面中单击【填表公式】,在弹出的“填表公式管理”对话框中找到“值变化”事件,添加数据项——本表单明细的“金额”。
②为了在本表单明细“金额”的值发生变化的时候能给“总金额”在该事件下添加“赋值”公式。选中事件,单击【添加公式】,选择“赋值”公式,并将公式重命名为“赋值_金额合计”;
设置公式。为了将“明细”中的“金额”进行合计,“数据源”选择“明细”,并勾选“多选时合成记录为一条”则数据源的多条记录合成一条,数据源中的文本数据项直接用“,”连接,数值相加,因此直接引用“数据源.金额”即可;
4.2 数据源相加
①添加“明细.金额”的值变化事件。在“采购入库单”模板表单设计界面中单击【填表公式】,在弹出的“填表公式管理”对话框中找到“值变化”事件,添加数据项——本表单明细的“金额”。
②为了在本表单明细“金额”的值发生变化的时候能给“总金额”在该事件下添加“赋值”公式。选中事件,单击【添加公式】,选择“赋值”公式,并将公式重命名为“赋值_金额合计”;
设置公式。为了将“明细”中的“金额”进行合计,“数据源”选择“明细”;
给本表单的“总金额”赋值。每次“明细”的“金额”发生变化,“数据源”都会将“明细”的所有记录都读取一次,数据源中有多少记录,操作将执行多少次,开始先读取“明细”的第一条记录,驱动“赋值”操作一次,给“总金额”完成第一次赋值后,“数据源”会取下一条记录继续驱动操作执行,以此类推,直至读取完数据源所有的记录,得到所有“金额”相加的“总金额”。因此,给“总金额”绑定表达式“本表单.总金额 + 数据源.金额”。
③由于明细“金额”的每次发生值变化,就会驱动“赋值”操作执行,“总金额”就在已有的数据上不断累加,得出的结果就会有误。因此,我们还需要添加清空操作,先确保“总金额”已为0,再将所有明细的记录累积;
添加清空操作。选中已有的事件,单击【添加公式】,选择“赋值”公式,将“名称”改为“赋值_清空合计金额”,给“总金额”赋“0”,将该操作提到“赋值_金额合计”操作之前执行,先进行清空已存在的“总金额”的值后,再对明细中的“金额”进行合计。
④应用效果。在表单中,填写明细金额的值,总金额自动赋值。
2022-09-26
2122
Baidu
map