根据条件显示隐藏最为经典的例子大概是这样的吧:
客户表单既需要存储“团体/个人”客户,通过“客户类型”字段(假设客户类型对应的数据库字段为__CustomerType__,后面脚本中要用到)来进行区分,如果:
“客户类型”=“个人”就需要录入性别,年龄等个人信息;
“客户类型”=“团体”,那么则可能需要录入法人信息,注册地址,证件号码等等。
这种需求显然是需要用到脚本的,用到了E6开发平台的IF,AND,Visible,GetValue等4个脚本,书写方式和Excel 的公式非常像,都是“脚本名(参数1,参数2,...参数N)”这样的。
1、GetValue脚本:用于根据某个输入框对应的数据库字段名,取这个输入框的值,比如GetValue("__CustomerType__")就可以取得“客户类型”;
2、IF脚本:IF脚本需要3个参数,格式为:IF(条件, 满足条件执行的脚本, 不满足条件执行的脚本) ;
3、AND脚本:AND脚本至少需要1个参数,格式为:AND(参数1, 参数2, ...参数N) 其中“参数1”、“参数2”、“参数N”可以是其他脚本,AND会顺序执行所有的脚本;
4、Visible脚本:Visible脚本至少需要2个参数,格式为:Visible("控件1名称或者数据库字段", "控件2名称或者数据库字段",...."控件N名称或者数据库字段", true/false)。其中最后一个参数为true则表示这些控件显示,false则表示隐藏这些控件,前面的N个参数表示控件名称(开发平台上可以看到)或者控件的数据库字段,当然也可以用“分组标签”。
假设客户类型为个人时,需要填写个人信息,如下图:
假设客户类型为“团体”时,需要填写团体信息,如下图:
怎么实现呢?
首先为了操作方便,我们在开发平台上把“个人信息”、“法定代表人或负责人信息”、“授权业务经办人”这三类信息分别放在开发平台的“分组控件”中。
如下图。我们可以给每个“分组控件”设置一个分组标签(比如如果是个人客户要填的则设置为personal,如果是团体客户要填的则设置为team)后面脚本中要用到,不设置也没关系。因为隐藏显示脚本也可以这么用:Visible("这里也可以填写分组标签", true/false),这种方式可以通过把多个控件设置相同的分组标签后,批量隐藏显示。
然后再“客户类型”的“内容改变”事件中
设置如下脚本:
脚本的意思是:如果当前“客户类型”等于“团体”则显示“分组标签”为team的控件,隐藏分组标签为personal的控件,反之。
其中team和personal也可以用控件名称或者数据库字段名,当然把多个控件的分组标签设置相同,然后统一用分组标签更方便快捷一些。如果不用分组标签,要单独显示几个控件怎么办呢?可以这样:Visible("控件1的数据库字段名", "控件2的数据库字段名", "控件3的数据库字段名", true);
附录:分组标签
E6开发平台中,每个控件都有一个“分组标签”属性,分组标签主要是用于把一批控件分成一组(比如上面的personal,team),用于通过分组标签批量显示或者隐藏这批控件。比如“个人”信息假设有“姓名(数据库字段__Name__)”,“年龄(数据库字段__Age__)”,“性别(数据库字段__Gender__)”,如果要设置他们隐藏显示可以这么设置:
Visible("__Name__", "__Age__", "__Gender__", true/false)
如果要隐藏显示的字段少,感觉也没啥,但是如果多呢?我们就可以把这几个控件的“分组标签”设置为相同(比如设置为personal),那么设置他们隐藏显示可以这么设置:
Visible("personal", true/false)
这样就很简单了,这就是分组标签。