页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

上一章,以设备管理系统中的零部件自关联构成产品结构为案例,介绍了高级关联类父件到子件(PartToPart)。这一讲中,我们将围绕设备管理中的”产品结构“、设备列表功能中的”查看详情“—设备综合看板的建模过程,介绍高级关联结构树、可视化控件和查询控件使用,并扩展介绍一些基础的查询语法。表单建模进阶章节以设备管理系统中的零部件自关联构成产品结构为案例,介绍了高级关联类父件到子件(PartToPart)。这一讲中,我们将围绕设备管理中的”产品结构“、设备列表功能中的”查看详情“—设备综合看板的建模过程,介绍高级关联结构树、可视化控件和查询控件使用,并扩展介绍一些基础的查询语法。

...

产品结构建模过程分解

在之前的教程中,我们完成了实体类工单(SingleWO, MultiWO)、设备(SingleAsset, MultiAssets)、零部件(SinglePart, MultiParts)的表单定制,接下来就需要对高级关联类父件到子件(PartToPart)进行表单建模。与之前相似,维护父件到子件关联关系的单对象表单以及多对象列表建模方式同工单-零件(WorkOrderToPart)的建模过程,在本章中将不再赘述。

...

  • 1是创建子件和产品结构表单(PartToPartRight):基于产品创建零件和产品结构关系,即基于左对象创建右对象和关联类对象。
  • 2是产品结构树表单(PartToPartTree):用于产品结构树展示,在该表单“创建子件”操作弹出第1个表单(PartToPartRight)实现”创建子件“和建立产品BOM关系。
  • 3是零件的表单(SinglePart):其目标类为零部件(Part),目标类表单为SinglePart,用于产品结构树”创建产品“,即创建根节点,该表单的建模过程在表单建模入门(二)中有阐述。3是零件的表单(SinglePart):其目标类为零部件(Part),目标类表单为SinglePart,用于产品结构树”创建产品“,即创建根节点。

下面将讲解产品结构建模的过程。

...

创建子件和产品结构

创建子件和产品结构是产品结构建模中所设涉及的第1个表单。根据下图设计的功能,实现基于已有产品或父件(左对象)创建子件的关系(BOM关系)及新增零件(右类对象)。

...

完成以上步骤后,点击保存表单。关于该表单的用途,将在接下来的内容中介绍。

...

产品结构树

从用户角度看,对于具有层级关系的数据,用结构树的形式浏览比通过列表的形式更加直观。从父件到子件类(PartToPart)的列表中,很难一眼就看出某个产品关联了多少个系统,系统又关联了哪些零件。而且两个不同产品(不在同一关联体系)的零部件关系在列表中交叉排列,看上去比较混乱。但树控件能够有效梳理这些关联关系。关联结构树专门针对关联类设计,并且可以通过设定根节点查询条件来截取完整结构树中所需的一部分。接下来,我们通过新建一个父件到子件(PartToPart)表单来介绍关联结构树的使用方法。

图-产品结构树

...

(一)产品结构树

产品结构树是产品结构建模所涉及到第2个表单。建模过程如下:

...

完成上面的步骤后,如果关联结构树有数据,点击更新预览按钮,即可在建模端看到产品结构树(如下图)。

图-关联结构树属性设置

...

(二)产品结构维护

上一节为大家演示了如何利用关联结构树将父件到子件的关联关系用结构树的形式展示出来。下面介绍如何在结构树的基础上,维护父件到子件(PartToPart)的产品结构。主要分为:创建产品(新增根节点)、创建子件(新增子节点)、删除节点三部分。

...

(1)创建产品

我们之前有谈到根节点标签实际上是关联类的左类对象的属性。所以想要新增根节点,实际上是增加零件类型为“产品”的零件(根节点查询条件为"partType='产品'")。下面讲解根节点操作的的建模过程:

...

4)点击确定,根节点按钮绑定“创建产品“成功。

图-创建产品操作编辑框

...

(2)创建子件

完成根节点操作后,下面讲解如何添加子节点操作。子节点与根节点不同,子节点上记录的是关联类对象的信息(包括左右类对象),为一个节点添加下级子节点时,实际上是在新增关联类的同时新增关联右对象。这就可以用到我们在上面降到讲到的“创建子件和产品结构”表单。下面讲解具体建模过程:

...

代码块
languagejs
linenumberstrue
var tree = this.GetAddinById("RelationTree1");//获取关联结构树实例
var nodes = tree.getSelected();//获取关联结构树节点对象
return {
    obj:{
		//将选中节点的右对象oid赋值给新的关联类对象的左对象oid
        relation_leftOid: nodes[0].relation_rightOid
    }
}

...


(3)删除节点

从左到右的关联类结构树,删除某个节点(根、子节点)相当于删除了一个关联类的右对象,这时只要为子节点操作配置添加一个按钮,绑定基本操作-删除右对象即可。

...

信息
title删除和删除左/右对象的含义

在上面的案例中,根节点和子节点绑定的操作是删除右对象,删除节点实际是解除了关联关系并删除关联的右对象;

如果用户只想要解除关联关系,并不想删除零部件对象(关联的右对象),子节点绑定基本操作-删除即可实现。

...

综合看板定制-设备产品结构

综合看板是为设备管理系统中设备列表模块中”查看详情“功能定制的一个表单。在上面阐述了实现的关联结构树除了方便用户查看和添加父子件的关联关系,也可展示在设备看板中,针对当前设备类型显示它的产品结构。这里,我们再为设备类创建一种左树右表结构的综合看板表单。下面是我们设计的设备结构看板效果图。

...

3)设备信息展示所用到的基本控件,我们在之前的讲解中已经介绍,本节不再赘述。下面分别讲解设备相关的产品结构树和工单表格的定制过程。

...

(一)综合看板定制-产品结构树

产品结构树的基本属性设置同上讲的PartToPartTree表单,两者的区别在于当前表单需要完成的业务不同——选中一个设备后,能够显示该设备的产品结构树,由此需要将该关联结构树根节点的查询条件设置如下。

...

信息
title注意

在表单定制页面,当关联结构树查条件中带有变量时($obj)点击更新预览不会有效果,因为建模端未带数据,相当于$obj对象为空。

...

(二)综合看板定制-工单列表

产品结构树完成,现在对工单列表进行设置。首先设置工单表格列展示属性——代号id、工单标题woTitle、故障设备partOid、工单状态woState等。右表的业务功能——将与该设备有关的工单列表过滤显示。需要根据因此可将表格属性设置如下:

...

完成以上操作后,点击保存按钮,综合看板定制完成。同样的,为了和设备列表结合起来使用,需要在MultiAssets表单中新增一个按钮,新增并绑定操作——操作动作为“edit”,目标类Asset和表单
“AssetComposition”。

...

小结


创建表单PartToPartRight时,利用前处理脚本,可以实现基于一个已有对象创建一个关联关系(对象)及关联的右/左对象。

...

创建综合设备看板AssetComposition时,使用一些查询过滤条件,完成一个左树右表的综合看板定制。

6.附件

...

示例模型包

表单建模高级.zipheight250