Aras学习笔记(16)- Aras官方项目Tree Grid View Sample原理介绍

官方项目Tree Grid View Sample是以PackageDefinition为例实现的,介绍原理前先说明下PackageDefinition的组成结构。

 

PackageDefinition结构分为PackageDefinition、PackageGroup和PackageElement三个部分组成。

PackageDefinition为Package的基本属性。

PackageGroup指元素类别或分组,比如ItemType、Form、Relationship及Item等,相同类别的元素都存放在一起。

PackageElement指具体元素,比如具体ItemType Item、Method、数据等。

通过用Export工具导出后会生成PackageDefinition目录结构及.mf文件,最终都是以AML格式的XML文件保存。

 

接下来再回到Tree Grid View Sample的话题上。它的实现方式很类似Reporting Service及SAP的Query(Tcode-SQ01/02/03)。第一步先创建数据集(Query Definition),第二步设置显示格式(Tree Grid View) ,最后实施到具体ItemType中。生成后的效果就是给ItemType增加一个Relationship,并将数据以树的方式展现出来。 在此之中最重要的还是查找各个ItemType间的关联关系(Relationship),开始操作前心中先有个大致的框架。

大致作步骤如下。

1、首先创建PackageDefinition包,将相应的元素添加到Package中。(具体操作步骤见另外一篇文章) 。TGV创建的包结构如下。

 

2、创建Query Definition,将内容目标(Item Type)指向到PackageDefinition。

 

图中1创建关联关系,2设置排序字段,3设置过滤条件,4选择显示列字段。

3、创建Tree Grid View, 设定基本信息。图中1选择创建好的Query Package Definition,2表示最多可展开的层数、3设置Grow每次展开的层数。

 

4、格式设定。图中1双击某一个列选定显示内容,2设置过滤条件,3右键添加新列。

 

5、将Tree Grid View应用到Item Type中。点击菜单Action –> Set Tree Grid View Usage出现使用方式选择。

 

Relationship Tab表示会给ItemType增加一个Relationship的Tab,JavaScript Method选项会生成一个Client Side方法,用于外部调用或event事件。

6、New表示新建,Existing表示对现有设置进行更新。

 

7、指定Relationship的名字,Label为新增Tab标签的名字。Access Identity为可访问的角色,对所有人开发选择world。

 

8、Define Starting Conditions为定义第一行的显示内容。正常显示当前记录,默认值就可。

在我另外做的例子中,数据是Department,即所有部门结构,Property属性ParentId表示上下级关系。可以通过设置Starting Conditions来确定第一行显示什么内容。

 

9、设定完成后查看Tree Grid View生成效果。图中1,2,3表示Package Definition、Package Group和Package Element。

猜你喜欢

转载自www.cnblogs.com/61007257Steven/p/10034769.html