# 代码表

# 分类

代码表分为内部代码表和外部代码表两种,内部代码表在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的父子联动