页面树结构
转至元数据结尾
转至元数据起始

在上一讲中,创建了工单-零件的简单关联类。本章结合维修工单的创建为大家介绍如何创建关联类表单,以及如何创建关联类对象。创建工单功能涉及到了3个部分内容(3个表单):

  • 1是工单实体类:用于描述工单的基本信息,工单上半部分,这部分已经在第三章表单建模入门(三)中阐述。
  • 2是工单-零件的关联类表单:用于创建工单和维修零件的关联关系。
  • 3是工单-零件关联类表格:用于展示维修零件的列表,实现工单下半部分列表展示。

在本章中涉及的控件包括:

  • 单对象控件:对象选择框、操作前处理脚本
  • 多对象控件:表格过滤条件、操作列

1.创建关联

本节讲解的工单-零件(WorkOrderToPart)的关联类表单,主要实现创建工单时记录需要用到的零件和数量。关联类表单和实体类表单的创建大同小异,但是因为关联类对象不仅要记录关联类自身的数据,还需要记录左类和右类的数据。首先看下本案例设计的关联类表单,即:工单-零件单对象表单,该表单就是为了维护工单维修所需零件及数量,如下图。

图-创建工单中的维修零件

分析上图,我们要创建某个工单所需要用的维修零件及数量,需要用到工单-零件关联类(WorkOrderToPart),关联类表单需要记录工单(左类对象),零件(右类对象),以及描述该工单需要用到维修零件的数量,即:左类对象和右类对象关联关系的描述信息“数量number”。工单到零件关联类表单建模步骤如下:

1)在关联类表单管理中为工单-零件(WorkOrderToPart)创建一个英文名为SingleWOToPart的表单,进入表单定制页面;

2)在画布拖入一个分组框,并设置标题为”工单-零件的关联信息“,并在分组框中拖入一个2行布局控件;

3)需要注意的是,因为关联类需要记录工单(左类)和零件(右类)对象的信息,这里可以利用单对象控件来引用左右类信息。

  • 在第1行第1列中拖入一个对象选择框,绑定目标属性:关联类属性-"左对象(工单)标识leftOid"。再往第1行2列拖入一个新的对象选择框,绑定目标属性:关联类属性-“右对象(零件)标识rightOid”。
  • 单对象控件标签默认显示目标属性的显示名,我们可以将标签改为能够我们理解更容易的名称。在本案例中,将标签名“左对象标识leftOid”改为“工单代号”,“右对象标识rightOid”改为“零件代号”;
  • 工单对象和零部件对象进行关联,所有两个对象选择框,目标类分别设置为“工单(WorkOrder)”、“零部件(Part)”;

4)设置浏览字段的原则同表单建模入门(三)介绍的用法,分别设置对象选择框的浏览字段为工单的“工单标题woTitle”、“代号id”,零部件的“零件名称partName”、“代号id”;

5)关联类是需要记录左类(工单)和右类(零件)对象的信息,所以两个对象选择框的回填字段分别需要设置为工单的“全局唯一标识oid”属性和零部件的“全局唯一标识oid”;

6)显示字段的原则能帮助用户直观看到对象的基本信息,这里将两个对象选择框的显示字段分别设置为工单的“工单标题woTile”、“代号id”和零部件的“零件名称partName”、“代号id”;

7)描述工单对象和零件对象的关联关系,这里我们使用在数据建模时绑定的属性“数量number”,这个数量指的是该工单用到这种维修零件的数量。在画布区拖入一个数字框,绑定关联类属性-“数量number”;

完成以上步骤就能创建处一个最简单的工单-零件关联类表单,如果想要预览效果,可以在画布区拖入三个按钮,并分别绑定基本操作“新增”、“编辑”和“删除“,分享页面后可体验关联类对象的增删改。

图-创建关联表单中对象选择框属性设置

2.创建维修零件

在本案例中,创建工单后,负责的维修工程师需要去现场进行维修。因为第1部分创建工单只是记录工单基本的信息,并未创建维修设备具体需要那些零件以及零件的数量。这时,我们可以利用创建维修工单完成这一业务功能的实现。下面我们将介绍如何完成工单下半部分信息的创建,见下图。

图-进阶版工单信息维护

工单中的分组框“工单属性”和“工单信息”第1部分是我们在表单建模入门(三)介绍的工单维护表单,在工单维护的基础上,增加了新的分组框“所需零件”用于记录工单-零件的关联信息。“所需零件”按钮,打开弹窗为上一节创建关联,即:创建的工单-零件的关联类表单,用于添加当前工单和所需零件及数量。接下来为大家讲解工单信息维护下半部分的建模过程:

1)进入实体类表单管理-工单(WorkOrder)的SingleWO表单,鼠标悬停在表单卡片上,点击编辑,进入表单建模工具页面;

2)在工具条左上角,点击“复制表单”按钮,快速创建一个与SIngleWO表单内容一样的新表单,英文名取为“WorkOrderCard”;

3)页面跳转到“WorkOrderCard”表单建模页面,可以看到SingleWO的表单内容被快速复制到WorkOrderCard表单中,在该表单中拖入一个分组框,并修改标题为“所需零件”;

4)在“所需零件”的分组框布局内拖入一个1行2列的行列布局,在第2行中拖入一个表格控件。

2.1 所需零件列表维护

下面来介绍如何实现工单中增加所需的维修零件的功能,创建维修零件采用的是工单-零件多对象表格来实现,工单中用到的第3个表单实现过程如下:

1)首先讲解表格控件的设置。拖入该表格的目的是为了能够查看完成该工单需要的零件及数量。这里我们将表格的目标类设置为关联类——工单-零部件(WorkOrderToPart);

2)表格为了展示完成该工单需要那些零件,所以“选择属性”时,可以勾选右类零部件(Part)的“零件名称partName”、“零件规格partSpec”、“零件材料partMaterial”等。为了描述所需零件到数量,可以勾选用于描述工单-零件(WorkOrderToPart)关联关系的属性——“数量number”。勾选完成后点击确定;

3)表格默认展示为工单-零件关联类(WorkOrderToPart)上的所有数据,但是我们只想查看与该工单相关的关联类对象,即与该工单所需要用到的维修零件及数量。

  • 这里需要用到表格的过滤条件,目的是过滤与该工单相关的零件。
  • 点击过滤条件输入框,弹出过滤条件生成器。过滤条件设置——当前工单-零件(WorkOrderToPart)关联类对象的“左对象标识leftOid”与工单(WorkOrder)的“全局唯一标识oid”一致时,过滤满足条件的数据。

表格过滤条件内容如下:

//单引号需要用英文符号的‘’
and obj.relation_leftOid=‘$obj.oid’

2.2 创建工单-零件关联按钮

上一节所用到的关联类表格,仅能展示与工单与维修零件的信息。那么现在有一个问题,如何“创建”该工单上所需要维修的零件呢?这个问题的本质是如何在一个工单上“创建”(WorkOrderToPart)的关联类对象。这里我们利用按钮完成关联类对象的创建。建模步骤如下:

如何在某一个工单上实现创建工单-零件(WorkOrderToPart)的关联类对象。这里我们利用按钮完成关联类对象的创建。建模步骤如下:

1)在“所需零件”的第1行布局內中拖入一个按钮控件,选中画布区按钮控件,右滑出按钮的属性设置框;

2)在事件-单击事件处新增并绑定一个创建工单到零件的操作;

3)需要明确的是,创建此操作的目的是创建一个工单-零件(WorkOrderToPart)的关联类对象,即该工单的维修零件,所以操作的动作为“create”,目标类是“工单-零件(WorkOrderToPart)”,目标类表单为“SingleWOToPart”,操作设置如下:

图-创建维修零件操作编辑框

4)完成上一步后,可以实现在关联类表单上点选对应的工单对象和零部件的对象进行关联,即:完成创建维修的零件。但这样还不够智能,点击“添加零件”按钮时,还需要下拉点选想要建关联的工单对象。接下来为大家介绍如何利用操作的前处理脚本,实现点击“添加零件”按钮时,关联类表单自动回填该工单的对象,即:过滤该工单,过滤脚本设置如下:

return{
	obj:{
		relation_leftOid:`${this.obj.oid}`
	} 
}


5)设置了完后为某个工单绑定零部件关联时,关联类表单效果如下: 

图-创建工单-零件关联时回填工单编号

6)“添加零件”按钮完成一次关联类对象新增后,并不能及时反映在关联类表格上。这时需要为“添加零件”按钮绑定表格id(操作方法件同表单建模入门(二)),实现操作数据时关联类表格数据及时更新。

以上步骤可以完成针对具体某个工单对象创建维修零件。

为了能维护好工单-零件(WorkOrderToPart)关联类数据,还可以开启关联类表格的操作列功能,增加一个“编辑”和“删除”维修零件的操作。具体操作方式不再赘述,可参考以下示意图:

图-创建维修零件-操作列编辑框

注意

1)”编辑“:是指编辑的关联维修零件的的信息,即关联的零件和数量的信息(关联信息),弹出的是工单的第2部分。

2)”删除“:是指删除该工单上维修零件和工单的关联关系,并没有删除零件本身。

工单的建模过程比较复杂,下面再总结一下工单表单所用到的3个表单:

  • SingleWO表单:工单实体类表单,即第1个部分,描述了工单的上半部分工单基本信息。
  • SingleWOToPart表单:工单-零件的关联类表单,用于创建维修零件,即第2部分:工单所用到维修零件及数量,该表单是在点击”所需零件“按钮弹出的表单。
  • WorkOrderCard表单:是关联类(工单-零件)的表格,即第3部分,展现的是工单下半部分的维修零件列表。在点击列操作“编辑”按钮后弹出的是第2部分SingleWOToPart表单。

3.小结

创建简单关联类——工单-零件(WorkOrderToPart)的表单SingleWOToPart

  • 单对象控件
    • 单对象控件:回顾单对象控件的引用,关联类属性“左对象标识leftOid”和“右对象标识rightOid”用于记录左类工单对象和右类对象零部件对象

创建工单(WorkOrder)信息维护表单WorkOrderCard

  • 单对象控件
    • 按钮:操作前处理脚本
  • 多对象控件
    • 表格:关联类表格、过滤条件、操作列

4.附件

表单建模进阶.zip


  • 无标签