20.5 动态决定弹出选择
我们知道,通过在字段上设置列表选择或树形选择数据规范,可以为表单填报过程提供极大便利,在我们前面学习的例子中,我们对每个字段指定“一个”数据规范,从而,填报时会弹出什么样的选择窗口是“确定”的。这一节我们要学习,对“一个”字段指定“多个”弹出选择的数据规范,也就是说,在填报时,会弹出哪一种弹出窗口,事前没有指定,只是给出了几种可能的选择,要根据填报时具体的输入内容,动态决定。若此时只指定了一个弹出选择的数据规范则必须输入条件来设定什么情况下弹出选择,不满足条件时则不弹出选择。
我们来看下面这个例子,下图是一个“记账凭证”模板,在其明细表上有一栏“往来单位”,我们的要求是,当科目是“应收账款”时,往来单位那里要输入客户的名称,当客户是“应付账款”时,往来单位那里要输入供应商的名称。假设在我们的系统中,客户信息和供应商信息是两个不同的模板,数据存储在两个不同的数据表中,因此我们定义了两个数据规范,“客户名称树”和“供应商列表”。我们希望,在填报时,根据“科目”字段的内容,动态决定在“往来单位”字段上究竟会弹出哪一种选择窗口。
具体的设置方法如下:
- 登录系统,进入设计栏目。
- 先定义好“客户名称树”和“供应商列表”这两个数据规范。
- 找到记账凭证模板,打开其“管理数据表”窗口。
- 选中明细表上的“往来单位”字段,对其设置数据规范,弹出“选择数据规范”窗口。
5.在“选择数据规范”窗口的左侧树形中选中“动态选择”,右侧列出所有的弹出选择类(树形和列表)的数据规范名称,勾选“客户名称树”和“供应商列表”,点击【确定】。
6.弹出“字段数据规范设置”窗口,在“动态选择”选项卡上,列出了刚才选择的两个数据规范。注意在数据规范列表中有一列“应用条件”,在那里,我们要设置每种数据规范应该在满足什么条件的情况下起作用。
7.选中第一个数据规范“客户名称树”所在行,在“应用条件”那里点击【】,弹出表达式窗口,输入条件表达式,点击【确定】,回到“字段数据规范设置”窗口,输入的条件显示在“应用条件”那里。
8.同样输入“供应商列表”的应用条件为:
本报表.记帐凭证_明细.科目名称形如 '应付'
或者本报表.记帐凭证_明细.科目名称形如 '预付'
9.最后点击【确定】。
设置好了之后,我们可以尝试填报一张“记账凭证”,选择应收或应付的科目,看一下在往来单位那里会弹出什么样的选择窗口。