开发界面模型

栏目:u9cloud知识作者:用友来源:用友发布:2024-08-20浏览:1

开发界面模型

界面模型综述

界面设计词汇表

中文英文解释
界面模型UI Model实际界面和后台逻辑之间的抽象层,用于在不同类型的客户端显示相同的界面逻辑
界面视图UI View是界面模型的某种视角的扁平化表现形式
界面连接UI Link界面主子视图之间的关联关系
界面字段UI Field界面视图中的数据项。对于实体绑定视图,对应于实体中的类属性。
界面辅助属性UI Auxiliary Property

分类两类:

  1. 界面模型辅助属性:从属于界面模型的单值变量
  2. 界面视图辅助属性:从属于单个界面视图的单值变量,可跟随所属的视图存在于相同的表单容器中
界面记录UI Record界面视图的数据行
界面过滤器UI Filter界面视图的数据行过滤条件
界面动作UI Action响应用户界面操作的前端逻辑
动作特性Action Feature界面动作的一种共享与复用方式。将一组界面动作保存后,可复用于其它界面模型。

 

界面模型概述

界面模型的内容构成

界面模型是对终端界面的一种抽象,它由如下几部分组成:

  1. 视图(UI View):是界面显示数据的主体。可以来自于领域模型的实体(实体绑定视图),也可以在界面项目中自行创建(实体无关视图)。视图由如下几部分组成:
    1. 界面字段(UI Field):界面中显示的数据项,在具体界面中表现为数据绑定控件。类似于实体类属性,可以进行分组管理。
    2. 默认的过滤器:在当前视图中,只显示符合条件的界面记录(UI Record)。
    3. 属性组:视图内的界面辅助属性集合,用于显示一个视图只有一个取值的界面数据项。
  2. 连接组:用于描述各个视图之间的关系。对于实体绑定视图,界面连接对应于实体间的关系。
  3. 属性组:视图之外从属于整个界面模型的界面辅助属性集合,用于显示一个界面模型只有一个取值的界面数据项。
  4. 动作组:用于保存用户界面事件发生后的界面执行逻辑。除了通用的CRUD操作之外,开发人员可以定义新的动作及界面执行逻辑。动作组中的动作可以分组管理。

 

界面模型的开发流程

开发界面模型的主要流程如下:

  1. 创建界面元数据,界面元数据反映主要业务逻辑,是界面模型的源头和依据。
  2. 业务数据的筛选。选择界面模型使用的业务数据,过滤掉业务模型不需要的数据。
  3. 建立业务行为过程。以添加界面动作的方式创建。

 

创建界面元数据

界面元数据的创建有三种方式:

  1. 设计期绑定领域模型以形成界面模型元数据。
  2. 设计期不绑定领域模型,自定义界面模型元数据。
  3. 设计期不存在领域模型,运行期动态构建界面元数据。

以三种方式创建的界面元数据可以混和使用。

设计期绑定领域模型

设计期绑定领域模型实体的强类型界面模型,通过建立实体绑定视图实现。其中,界面模型就是用户业务逻辑的关注点,视图就是实体在抽象界面中的展现形式。在实体绑定视图中,实体的类属性、实体间的关系等等都在视图中有所体现。

对于设计期绑定领域模型的界面模型,一般使用通用CRUD来加载数据。

设计期自定义界面元数据

设计期不绑定领域模型实体时,也可以通过自定义界面元数据的方式建立强类型的界面模型。具体的方式是通过创建实体无关的视图和界面字段实现的。其用意在于不依赖于领域模型时,也可以在设计期提供界面元数据信息给最终界面,以加速界面的开发。

对于在设计期自定义界面元数据的界面模型,可以通过运行期的界面动作动态加载数据。

运行期动态创建界面模型元数据

运行期动态建立UIModel元数据。依序构建UI Model,UI View,UI Field,UI Record。参照MS Dataset的构建。

这种界面元数据的创建方式不需要使用UBF Studio中的界面项目,但需要手工编写更多的代码。

业务数据的筛选

在界面模型中,可以从三个角度对业务数据进行筛选:

  1. 纵向过滤:列级过滤,只创建需要关注的界面字段。
  2. 横向过滤:行级过滤,只选择关注的界面记录集。通过设置过滤条件来选择,支持复杂的智能检索。
  3. 业务数据的跨行列级选择:使用界面视图属性设计器,新增界面辅助属性到属性组。

 

业务行为过程

业务行为过程通过界面动作来实现,作为前端逻辑代码,是程序员关注的焦点。主要包括以下交互行为过程:

  1. 与通用BP的交互
  2. 与专用BP的交互:如工作流, Tooltip式的ATP数据查询等
  3. 数据的收集,合并和验证等

 

界面模型设计(UI Model)

界面模型的设计目标在于为不同类型的客户端表示层提供一致的前端业务逻辑的模型和控制,充当MVC框架中的模型和控制器的角色。常见的客户端包括网页浏览器、Windows界面、手机终端、掌上电脑等。

界面模型设计器用于为系统设计和开发人员提供前端业务逻辑的模型建模和控制建模工具,它提供了界面模型语言的可视化定义,并为界面模型代码框架生成提供用户化的工作平台。

创建界面模型

建立界面项目

建立界面模型之前,需要首先建立界面项目。在解决方案浏览器中选中解决方案,进行如下操作之一:

  1. 点击鼠标右键,选择“新建”
  2. 主菜单 → 新建 → 新建
  3. 工具栏 →新建

 

打开界面创建窗口:

选择界面项目组的界面项目,输入项目名称,点击确定即可建立界面项目。

说明:新建界面项目后,系统会自动建立一个同名的界面模型项。

 

新建界面模型

除了新建界面项目时自动创建的界面模型外,用户可以手工创建更多的界面模型。在解决方案浏览器中选中一个界面项目,进行如下操作之一:

  1. 点击鼠标右键,选择“新建”
  2. 主菜单 → 新建 → 新建
  3. 工具栏 → 新建

 

打开界面项目的新建子项窗口:

选择界面数据类型,输入新建界面模型的名称,点击确定即可新建界面模型。

 

界面模型编辑界面说明

新建界面模型后,系统会自动打开界面模型编辑器界面:

如图所示,设计器显示为层级树和网格的组合体:

  1. 左侧的层级树:以层级树的形式显示了界面模型的结构。
  2. 主体部分的网格:显示各种末级元素的属性信息。

 

编辑界面模型整体属性

双击层级树根节点,或者点击根节点右键,选择“编辑模型”打开界面模型整体属性编辑界面:

说明:

  1. 命名空间:根据编程规范的要求输入,目前需要以“Ufsoft.”开头。

 

界面模型设计器图标说明

 

图标

说明

绑定实体的主视图
实体无关的主视图
一对一的实体无关子视图
其它类型的子视图

绑定实体的界面字段

实体无关的界面字段

界面辅助属性

界面动作

界面连接
界面过滤条件

 

创建视图

创建界面视图时,可以绑定实体创建,也可以脱离领域模型自定义实体无关的界面视图,甚至有时还可以采取二者的混和形式。相对于实体的主子之分,视图也可以分为主视图和子视图。

界面视图是由界面字段组成的,界面字段可以绑定于实体的类属性,也可以创建新的不依赖于实体的界面字段。在实体绑定视图中以实体绑定字段为主,但也可以新增实体无关字段。在实体无关的视图中只能使用实体无关字段。

创建实体绑定的视图

在模型浏览器中,直接拖曳领域模型的实体类到界面模型设计器中即可。根据拖曳方式不同,实体的主子关系是不同的:

  1. 直接拖曳实体的根节点,该实体将作为界面模型中的主视图。
  2. 拖曳主实体的关联子实体节点:
    1. 子实体将作为子视图加入,除了与第三方实体关联的类属性之外,其它类属性都将加入到子视图中作为实体绑定字段。
    2. 主实体尚未建立主视图时,此时将自动建立其对应的主视图,系统默认创建的类属性也将自动加入视图作为实体绑定字段。
    3. 主子实体为一对一关系时,主视图中将自动加入表示关联关系的字段。
    4. 主子实体之间的关系也将转换为连接加入到连接组中。

 

实体绑定视图的相关规则说明:

  1. 关于界面模型的引用实体:界面模型不能直接引用解决方案外部的打包实体组件,但通过领域模型的BE项目引用的外部打包实体组件,界面模型可以通过该BE使用。
  2. 界面模型中的视图:一个界面模型中可以存在多个主视图。主视图可以独立存在,而子视图必须依赖于主视图而存在。
  3. 实体中的外部引用:
    1. 实体中引用有其它实体时,一般不会自动加入到界面模型中。需要时可通过拖曳的方式手工添加。
    2. 实体中引用有枚举类型时,反映到最终到具体界面中,将被自动设置为下拉列表控件。
    3. 实体中引用有属性类型时,属性类型将被直接展开为多个字段。字段数和属性类型包含的类属性数量相同。
  4. 界面字段的分组:
    1. 实体类属性的分组带入到视图中时保持不变,且不可修改。
    2. 可以在视图中新增自定义分组,但其中只能包含实体无关字段。
  5. 实体间的关系:实体间的关系在加入到界面模型中时被转换为连接。界面模型支持关联关系和组合关系,支持一对一和一对多的关系基数。

 

创建实体无关的视图

右键点击界面模型根节点,在上下文菜单中选择“新建视图”打开新建视图窗体:

 

其中,有两个输入项是在建立子视图时使用的,说明如下:

标签

含义

输入说明

主视图子视图不能单独存在,必须选择一个它所从属的主视图下拉列表选择,可选项为当前界面模型中已有的主视图。
关系基数用于选择主视图和当前要建立的子视图是一对一关系,还是一对多关系。下拉列表选择:One – One、One – More。

 

新建视图后,系统会自动新建如下系统字段:

编辑界面字段

界面字段分为实体绑定字段和实体无关字段。实体绑定字段来源于实体的类属性,建立后其核心内容将不能修改;实体无关字段则完全以手工方式建立。

新增分组

一个视图中可能会有很多字段,为了便于使用,可以对字段进行分组管理。对于实体绑定视图,字段的分组与类属性的分组是完全对应的,且不可更改。对于实体无关视图,系统会自动建立Key和Sys分组,其它分组需要手工添加。

选择层级树中的视图节点,点击右键,在上下文菜单中选择“新增分组”打开界面分组设计器窗体:

新建实体无关字段

选择视图中的一个分组,点击鼠标右键,选择上下文菜单中的“新建字段”,则打开自定义字段设计器:

主要输入项说明:

  1. 是否作为参照:该字段在界面操作时是否需要以参照的方式输入。注意:在选择以参照方式输入时,必须与参照实体间建立引用关系。建立方式:从模型浏览器中将要参照的实体拖动到当前字段上,此时将自动建立参照引用关系,本选项也会自动被选中。
  2. 是否可空:选中时本字段将允许空值。
  3. 是否只读:选择为True时,表示该字段仅供显示。
  4. 是否国际化,选择为true时,该字段最按国际化字段处理。

 

编辑实体绑定字段

实体绑定字段的创建

在界面模型打开的情况下,切换公共管理工具区到模型浏览器,直接拖曳实体或实体的类属性到界面模型中:

  1. 如果该实体尚未建立视图,则自动建立实体对应的实体,实体的类属性自动创建为视图的界面字段
  2. 如果该实体已经建立视图,则只添加被拖曳的实体类属性。

 

实体绑定字段的编辑维护

双击一个实体绑定字段,打开字段设计器窗口:

其中各输入项信息是系统根据来源的实体类属性自动添加的,有部分信息可进行修改:

  1. 显示名称
  2. 描述信息
  3. 帮助信息
  4. 是否可空:是否可空的默认值来自于实体类属性,这里可以修改。
  5. 是否作为参照:对于表示关联的实体类属性,在生成界面字段时会自动使用参照输入方式。这里可以取消选择。但对于不表示关联的类属性,是无法以实体参照的方式进行输入的。

 

设置过滤条件

新建视图时,系统都会建立一个空白的默认过滤条件,开发人员可以对默认的过滤条件进行编辑修改。

进行如下操作之一,打开过滤条件窗口:

  1. 双击视图分支下的缺省过滤条件行
  2. 右键单击视图分支下的缺省过滤条件行,选择上下文菜单中的“编辑过滤条件”项

 

界面主要分四个区域:

  1. 基本信息,以及界面字段、实体类属性待选区
  2. 表达式编辑及显示区:可直接输入修改,也可通过辅助输入按钮、界面模型和实体模型待选区的可用节点输入
  3. 表达式辅助输入按钮区:包括可用的操作符、操作数的辅助输入按钮
  4. 参数管理区:进行参数的编辑维护

 

过滤条件中的表达式建议使用OQL语句,表达式中的操作数可以是常量、实体类属性、界面字段和参数等,操作符包括普通运算符和函数等。

  1. 常量、普通运算符和函数的输入:通过辅助输入按钮输入。
  2. 实体类属性或界面字段的输入:通过实体模型、界面模型待选区的层级树输入。
    1. 实体模型:列出当前界面视图绑定实体的类属性结构

 

  1. 界面模型:列出当前界面视图中的字段,实体绑定与实体无关字段均可。

 

  1. 参数的输入:通过参数管理区辅助输入。
    1. 新增参数:点击“参数”按钮。
    2. 删除或修改参数:直接在表达式编辑显示区进行删除修改。

 

参数的新增和修改界面是类似的:

 

输入实体类属性、界面字段以及与其相关的参数时,可以使用快捷方式。在界面模型或实体模型的层级树中,选择一个类属性节点,点击输入右键,出现上下文菜单:

  1. 粘贴到表达式:将当前节点的实体类属性或者界面字段作为操作数加入到表达式中,与双击鼠标到操作等效。
  2. 粘贴到参数列表:将当前节点加入到参数列表中
  3. 粘贴到表达式和参数列表:将当前节点加入到参数列表中,并自动建立当前节点与新建参数的关联表达式。

 

主子视图和连接组

UBF界面模型支持主子视图间的两种关联基数:

  1. 一对一:此时主视图中会有一个字段来记录与子视图的关联关系。
  2. 一对多:此时子视图中会有一个字段来记录与主视图的关联关系。

 

界面视图间关联字段的来源:

  1. 主子视图均来源于实体时,关联字段来源于实体中的关联类属性。需要说明的是,与主子视图对应的实体,不见得是组合关系的主子实体,也可以是关联关系的两个实体。
  2. 子视图为实体无关视图时,系统会自动新建关联字段:
    1. 一对一关系:主视图中会自动建立一个关联字段
    2. 一对多关系:子视图中会自动建立一个关联字段

 

视图间关联的关系是随着子视图的建立而建立的,这种关联关系在界面模型中被称为连接。通常,这些连接会统一放置子连接组中。在界面模型中,连接的核心内容是不允许修改的,只有界面描述类的信息才允许修改,如下图所示:

 

创建界面辅助属性

界面辅助属性是从属于UI Model或某个UI View的单记录字段,可用于存储显示界面字段的多记录合计值等信息。

 

界面辅助属性有两类:

  1. 从属于整个界面模型的,是界面模型辅助属性
  2. 从属于某个视图的,是界面视图辅助属性

 

选择UI Model中或UI View内的属性组,点击右键,在上下文菜单中选择“新增属性”,打开界面辅助属性设计器窗口:

 

主要输入项说明:

  1. 是否只读:是否允许用户修改该字段内容。
  2. 是否可空:是否允许输入空值。

 

创建界面动作

动作是响应用户界面操作的前端逻辑。界面动作保存在界面模型的动作组中,动作组中可以划分若干个不同的组,每个动作都需要保存在一个分组中。

新增动作分组:

选择动作组,点击鼠标右键,在上下文菜单中选择“新增分组”,打开界面分组设计器窗口:

在界面中输入分组相关信息即可。

 

新增动作

选择一个分组,点击鼠标右键,在上下文菜单中选择“新增分组”,打开界面动作设计器窗口:

主要输入项说明:

  1. 代码模板:C#的模板文件,需要手工创建。
  2. 模板参数:与代码模板配套使用的模板参数。

 

界面动作的共享与复用

建立界面动作后,可以保存为界面动作特性以供其它界面模型复用;也可以应用已有的界面动作特性来快速建立界面动作。

应用界面动作特性

选择动作组,点击鼠标右键,在上下文菜单中选择“应用特性”,打开应用特性窗口:

在图中,选择完要载入的组件以后,可以显示出该组件所包含的动作。在点击确定载入组件以后,其包含的动作将加入到当前界面模型中。对于当前界面模型中已有的同名动作,仍然会保留当前界面模型中的原动作。

 

应用缺省特性

对于界面中常用的通用动作,系统默认带了一套缺省特性以加快开发速度。选择动作组,点击鼠标右键,在上下文菜单中选择“应用缺省特性”,系统将自动添加如下常见动作到Misc组中:

  1. 编辑行为:NewClick, DeleteClick, EditClick, SaveClick, CancelClick
  2. 显示行为:RefreshClick
  3. 翻页行为:FirstPage, lastPage, NextPage, PrevPage

同时,这些缺省动作中也包含了缺省的代码模板。

 

另存为特性

选择动作组,点击鼠标右键,在上下文菜单中选择“另存为特性”,打开另存为特性窗口: 

新建组件文件后,系统将把动作组中的所有界面动作保存在动作特性文件中。由于特性是针对整个动作组进行处理的,不存在将部分动作保存为新特性的可能。

 

开发界面模型

界面模型综述界面设计词汇表中文英文解释界面模型UI Model实际界面和后台逻辑之间的抽象层,用于在不同类型的客户端显示相同的界面逻辑界...
点击下载文档
标签: # U9C
分享:
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息