# 代码表
# 分类
代码表分为内部代码表和外部代码表两种,内部代码表在InfoPlus IDE中维护,外部代码由Messenger提供数据。
# 维护
在IDE中点Preferences->Enterprise菜单下的Codes即可进入代码表维护页面
# 代码表
在代码列表页点击图示的加号就可以新增一个代码
新增代码的界面中按图示填入内容,再点击右上方存盘按钮即可创建一个内部代码表
字段说明
名称 | 描述 |
---|---|
Code | 代码表代码 |
Description | 代码表名称 |
Type | 代码类型 [Internal|External] |
TipFormat | 代码tip格式 |
DeptAccess | 可维护的部门 |
Tags | 分类标签 |
Public | 是否公开 |
其中DeptAccess以及Tags可用于维护代码表的权限管理,一个开发者可以对一个部门的代码表有权限,也可以对一个分类标签下的代码表有权限。另外对于Public为true的代码,即使DeptAccess和Tags没赋予权限的情况下也是可见的,公开代码表适合存放一些全校通用业务的代码。
# 代码项
如果是内部代码表,可在IDE内维护代码项,外部代码表则直接在Messenger里组织数据。
在代码维护页点击Code Items右侧的加号,即可新增一个代码项
字段说明
名称 | 描述 |
---|---|
Code | 代码 |
Name | 名称 |
Description | 描述,Suggester中使用时会显示在代码名称后的()内 |
Index | 排序,按序号显示 |
Parent | 父代码项代码,用于代码联动 |
Enabled | 是否可用 |
# 代码项属性
点击选中一个代码项后,再点击Code Item Properties右侧的加号就可以添加该代码项下的属性了。
字段说明
名称 | 描述 |
---|---|
Name | 属性名 |
Value | 属性值 |
# 外部代码表数据
当代码表的类型选择为External,该代码表即为外部代码表,外部代码表所有代码项都不在InfoPlus IDE中维护,直接在Messenger里提供数据。代码示例请参见Messenger中的外部代码表。
# 联动
支持代码表数据类型的控件可以支持联动,一般联动的儿子控件是Suggester、Select、OptionList,联动的父亲控件可以是任意支持代码表的控件。利用代码表中的parent字段,可以直接在两个代码表之间联动,只需要设置儿子字段的parent属性为父亲字段即可。另一种联动是儿子控件根据父亲字段的某个属性联动,此时有两种设置方法:
1 设置儿子字段的parent属性为父亲字段;设置儿子字段的DataSource属性为父亲某属性名称
2 设置儿子控件在某个视图下的动态dataSource为$fieldParent.attribute。
属性作为联动的dataSource,这个属性中的多个值用回车分割,对于显示值需要另外设置一个属性名称为attribute_Names的属性,其内容为所有显示值用回车分割。
例子A:
代码表CodeParent,包含以下项{id:"f1",name:"name1"},{id:"f2",name:"name2"}
代码表CodeChild,包含以下项{id:"f1c1",name:"f1c1",parent:"f1"},{id:"f1c2",name:"f1c2",parent:"f1"},{id:"f2c1",name:"f2c1",parent:"f2"}
控件A字段fieldA的CodeTable设置为CodeParent,控件B字段fieldB的CodeTable设置为CodeChild,其parent属性设置为fieldA,这样就能实现A和B的父子联动
例子B:
代码表如同例子A,CodeParent中的id为f1的CodeItem含有属性child:"F1C1\nF1C2",child_Names:"父亲1儿子1\n父亲1儿子2"。
控件A字段fieldA的CodeTable设置为CodeParent,控件B字段fieldB不用设置CodeTable,设置其parent属性设置为fieldA,datasource属性设置为child,就能实现A和B的父子联动
← 动态脚本 FieldChange →