树形编辑 TREEDEF
在编辑中增加树形结构,
当前编辑中只能编辑树形结构的页节点(即一个实体对应的记录),树形结构涉及两方面的内容:
具体定义同参与树结构。
- 如何构造树结构;
- 编辑界面中的内容修改后如何更新树结构.
具体实现步骤如下:
- 在实体下增加数据集属性,查询树结构中的内容
- 在编辑中设置树形结构
<ATTRIBUTE TYPE="ED" PROGID="PPDomainEditReqSingle" SVRERI="_PP.EDT.SVREDT" RELEASE="0~0~0" USERVERSION="1">
<TREEDEF CODE='数据集的代码,用户查询' ERI="..TREE" ALIAS="DEFAULT"
TYPE="type" PARENTTYPE="parenttype" LEAFTYPE =""
ID="ID" PARENTID="ParentID"
REFTYPE="type" REFID="cpid" //tree数据集的参数名称,用于查询数据更新节点(全局模式更新部分节点,局部模式更新整个树结构)
LABEL="FIELDNAME">
<NODE ID="0" TYPE="1" LABEL="组织结构" PARENTID="" ICON="TB_Root.bmp" SELECTEDICON="TB_Root.bmp"/>
... 可以有多层
</NODE>
如果没有指定NODE节点,默认<NODE ID='0' TYPE='0' LABEL='根' PARENTID=''/>
</TREEDEF>
ERI:树形结构对应的数据集,即第一步构造的数据集,
ALIAS: 这个数据集的别名
树形结构的模式:全局模式,局部模式(根据当前编辑记录形成树形结构)
MODE : LOCAL/GLOBLE ;//由当前编辑记录决定的树结构
全局模式只更新节点,局部模式只有当前id同实体更新事件中的id才更新,而且更新整个树结构。
TYPE: 用于在第一步构造的数据集中查询记录字段。
PARENTTYPE: 用来查询在树中上层结构数据的类型字段。
ID:用来查询记录ID的字段 id的值小于等于 0 不能编辑
PARENTID:用来获得上层记录ID的字段
LABEL:在树中标签的字段
。
LEAFTYPE: 只作为叶节点的类型,不能用于递归型的叶节点,如部门等,增加叶节点的设置可提高构造树的性能。 例如人员档案下面,人员下无子节点。
举例:
<TREEDEF CODE="TREE" ERI="..TREE" LEAFTYPE="2" ALIAS="DEFAULT" TYPE="type" PARENTTYPE="parenttype" ID="id" PARENTID="parentid" LABEL="ename" REFTYPE="type" REFID="zzjgid" MODE="GLOBLE">
<NODE ID="0" TYPE="0" LABEL="销售区域"/>
</TREEDEF>
构造树结构的数据集SQL如下:
SELECT c_xsqy.xsqyid as id,
c_xsqy.ecode as ecode,
c_xsqy.ename as ename,
isnull(c_xsqy.c_x_xsqyid,0) as parentid,
type ='1',
parenttype='1',
icon = 'TB_Folder.bmp'
into #tmp
FROM c_xsqy c_xsqy
union
SELECT c_zzjg.zzjgid as id,
c_zzjg.ecode as ecode,
c_zzjg.ename as ename,
c_zzjg.xsqyid as parentid,
type='2',
parenttype='1',
icon= 'bl_item.ico'
FROM c_zzjg c_zzjg
select id,ecode,ename,parentid,type,parenttype,icon from #tmp tmp
order by type,id
编辑中的布局如下:
<LAYOUT TYPE="HORIZON">
<LAYOUT WIDTH="200" TYPE="TREE" CODE="TREE">
</LAYOUT>
Created with the Personal Edition of HelpNDoc: Free Web Help generator