电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

NC5客开培训资料-NCV55-功能建模红皮书.doc

NC5客开培训资料-NCV55-功能建模红皮书.doc_第1页
1/50
NC5客开培训资料-NCV55-功能建模红皮书.doc_第2页
2/50
功能建模红皮书NC-UAP5.5用友NC-UAP2024-05-12第一章........................................................................................................4第二章UI框架介绍..................................................................................61、功能说明............................................................................................................................72、基本类图............................................................................................................................73、使用方式...........................................................................................................................11第三章功能建模框架的物理结构.........................................................14第四章集成开发环境核心API实现.....................................................161、功能说明..........................................................................................................................162、基本类图..........................................................................................................................183、扩展方式..........................................................................................................................19第五章数据模型与视图的一致性.........................................................211、功能说明..........................................................................................................................212、主要类图..........................................................................................................................22第六章UI组装........................................................................................231、功能说明..........................................................................................................................232、基本类图..........................................................................................................................243、界面操作..........................................................................................................................25第七章节点发布.....................................................................................261、功能说明..........................................................................................................................262、基本类图..........................................................................................................................263、界面操作..........................................................................................................................28第八章参照构造.....................................................................................291、功能说明..........................................................................................................................292、基本类图..........................................................................................................................293、界面操作..........................................................................................................................31第八章使用方法介绍.............................................................................321、模块及组件的管理和维护...............................................................................................322、开发向导的使用..............................................................................................................353、实体的处理......................................................................................................................414、模板的管理和维护(单据、查询、打印)........................................................................4225、流程平台的管理和维护...................................................................................................426、参照的创建......................................................................................................................477、自定义按钮及UI组装.....................................................................................................508、节点的发布......................................................................................................................513第一章总体介绍NC功能建模在NC业务建模之后进行,只要是以业务建模完成的业务组件为中心和主线定制业务组件的功能及UI界面展现。NC功能建模提供了集成的开发环境,该开发环境中一些功能是对NCUAP原有功能模块的修改再组织,有些功能是经过重新开发的。这些功能都通过一个统一的平台框架进行组织和进行相互的交互支持。NC功能建模框架进行分层设计。最底层是一套UI框架,该框架提供了菜单、工具栏的管理、编辑器的创建及管理、视图的管理与维护,另外也提供了编辑器与菜单、工具栏的交互的支持与维护、编辑器与视图的监听关系的创建与维护。UI框架由一套API接口规范及其默认实现构成,可以为该框架的接口API完成不同的实现,同样可以达到一套UI应用所具有的基本功能。本功能建模开发环境平台是该套UI框架的一套具体应用,提供对业务组件的资源进行管理维护、创建功能与UI的统一实现。1、整体架构此集成开发环境的整体架构如上图所示。最底层是一套支持插件开发的框架及FlexDock项目,其中插件框架提供进行插件开发的支持,提供对UI框架编辑器、视图、菜单和工具栏等信息的插件化配置开发,目前该框架只定义了一套API,还没有具体实现;FlexDock框架是一个免费开源框架,提供对dockable停靠技术的支持。4UIFramework基于上面两个框架,定义了一套接口并给出了默认实现。这套接口定义了对编辑器、视图、菜单、工具栏以及他们之间进行交互支持的API,菜单和工具栏的设置采用Action实现。在该套接口的实现中使用了上面介绍的插件框架和FlexDock框架,实现了基于插件的配置以及控件的可拖拽停靠技术。在UI框架的设计中,将容器、管理器进行分离,只有容器部分依赖于UI实现(SWING/SWT),因此可以做到比较方便的技术迁移。模型设计集成开发环境核心API是基于该UI框架的一套具体应用,它在UI框架的基础上设置自己应用需要的控件信息,建立其自身维护的对框架暴露事件的监听关系。它结合集成开发环境的具体应用提供对资源树及其响应事件的配置实现,并提供了Editor编辑数据与资源树呈现的一致性维护。在集成开发环境平台之上,是对集成开发平台资源树的各个扩展实现。比如模板和单据类型对资源树的扩展,作为本集成开发平台内置的UI设计及节点发布的功能也作为资源树的扩展进行实现。下面章节将进行详细介绍。5第二章UI框架介绍1、功能说明此套核心API定义了UI中用到的菜单、工具栏、编辑器、视图的创建、管理维护以及他们之间的事件交互机制。在核心框架中,包含两大类对象:编辑器和视图。其中编辑器是主要的操作界面,可以进行资源管理维护以及UI界面组装等功能,是整个框架中的主要编辑控件;视图是一种被动操作的控件,一种视图在框架中仅维护一份实例。核心框架中提供了编辑器和视图的容器及管理器,使用者可以利用该编辑器接口实现自己的编辑器控件,可以使用该框架进行管理维护。该框架不进行任何设置而运行,会出现一个菜单栏、工具栏为空,中间是编辑器区域和左右下分别三个视图区域的UI框架,可以对界面的呈现进行后期设置。使用者可以在各个区域任意添加自定义控件,也可以根据接口规范定义添加自己实现的编辑器和视图控件。2、基本类图下面分别介绍UI框架的主要API设计:62、Editor/View部分核心API上图是Editor/View部分的主要接口设计。Editor/View通过各自的Manager进行管理,Container只是为相应控件提供存放的容器,本接口不限制采用何种控件实现,在本框架的默认实现中采用了TabPane实现。在本部分设计中,也是采用严格的分层设计,Editor/EditorManager/EditorContainer逐层深入,只有EditorContainer才与具体的实现控件相关,其他都是无关的,这些为以后可能的移植提供尽可能的保证。管理器对Editor/View的管理主要包括提供增、显示、隐藏、删除等接口,提供Editor激活对象变化时的事件通知功能等。71、menubar/toolbar部分核心API上图是菜单栏和工具栏部分的主要接口设计。菜单和工具栏都与IActionDelegator进行绑定,IActionDelegator是对用户定义Action的包装(装饰),使用者可以提供自定义的ActionDelegator实现,并通过FrameworkRegistry类进行注册,如果使用者没有自定义实现,则使用系统默认实现:DefaultActionDelegator,该类只是简单的对Action执行前后的相应方法的调用,没有增加任何附加的功能。IActonDelegator的创建依赖于ActionDescriptor,该类是对用户定义的Action的描述信息,包括类名以及所贡献的菜单和工具栏描述。IActionContributor获取ActionDescriptor的信息,是Editor贡献菜单、工具栏需要实现的接口。84、Editor与菜单工具栏的交互上图是Editor对菜单和工具栏部分的贡献的接口示意。菜单工具栏与IActionDelegator进行绑定,而Editor实现IActionContributor从而可以创建IActionDelegator。菜单和工具栏的管理主要分为两大类,可见性与可用性。可见性的管理是由容器负责维护的。可见性的维护通过事件监听机制完成,保证了组件间的松耦合EditorStateChangedEvent是用于描述Editor进行切换的事件,它用于表达Editor的激活与非激活的切换,该事件的源头IEditorStateChangedSource由IEditorManager进行扩展,从而EditorManager对Editor的激活状态切换进行事件发送与监听器的通知。任何对Editor切换事件感兴趣的对象都可以监听该事件。在框架的内置实现中,有三个类实现了IEditorStateChangeListener,包括图中看到的MenubarEditorMediator和ToolbarEditorMediator,这两个类对Editor的切换感兴趣,负责根据Editor的切换维护菜单和工具栏的显示与当前Editor同步,它使用IMenubarManager和IToolbarManager的功能,并实现了对Editor切换的监听响应,该类作为Editor与Menubar/Toolbar的中介存在,避免他们之间的硬编码耦合;IEditorStateChangeListener的另一个内置实现类没有在9中画出,名称为StateInfoEditorMediator,它负责协调Editor的切换与框架状态栏的显示。这种关系在整体框架创建时建立。这样由菜单和工具栏的管理器在Editor进行切换时保证相应的菜单和工具栏进行显示与隐藏的操作。可用性的维护由用户实现,由容器建立关联关系。编辑器与菜单工具栏的可用性的关系通过属性监听器完成。从图中可以看出,IEditor扩展了IPropertyChangedSource,而Editor提供的Action实例BaseAtion又实现了IPropertyChangedListener,这样编辑器及其Action之间有一对属性监听的关系,这些接口的实现是用户提供编辑器和Action时必须实现的,当Editor的状态发生变化时,可以通知Action进行相关可见性的修改。这种监听关系的注册,是由MenubarManager和ToolbarManager内置完成。3、使用方式框架的使用主要包括两方面的内容,一是框架控件内容的创建,另一个是建立各部分的可能存在的监听关系。该UI框架在没有任何特殊设置时,显示的界面如下所示:105、框架主界面框架主界面分为三个视图导航区、一个编辑区、下面的状态栏区还有上面的菜单栏共工具栏区域。左右两个视图导航区可以由用户添加设置面板内容,下部的控制台作为系统的输出显示使用。菜单栏、工具栏可以由用户定制添加。框架提供FrameworkRuntimeEnv单例类提供框架运行时对象的获取,可以通过它获取每个面板对象以及菜单、工具栏、状态栏等信息。左右两个导航区域可以通过FrameworkRuntimeEnv.getInstance().getLeftExplorePanel()和FrameworkRuntimeEnv.getInstance().getRightExplorePanel()方法获得。获取的面板可以通过setContent()方法设置其内容面板,在内容面板中可以根据需要随意设置其控件内容及布局器。框架下部的状态栏可以通过FrameworkRuntimeEnv.getInstance().getStatePanel()方法获取。该面板的setNormalStateInfo(Strings)可以设置普通的状态信息,位于状态栏的顶端,即”就绪”所在的位置。在普通状态栏信息后面,有一个定制状态栏信息的预留地方,这里可以设置自定义状态栏面板,通过createCustomePanel()方法完成,调用此方法后将产生一个面板,以及面板上的两个分割栏,这两个分割栏可以分别设置状态信息,通过调用方法setCustomStateInfo(Strings1,Strings2)方法完成状态信息的设置。用户也可以自己设置该面板的布局及内容信息。创建Editor可以通过实现IEditor接口实现,如果对菜单工具栏有贡献,可以实现IActionContributorEditor接口。接口中ActionDescriptor[]getActionConfig()方法返回该Editor需要创建菜单、工具栏的描述信息。如果想增加工具栏,请设置toolbarPath属性,它由”/”分割的两个部分组成,其中第一部分是工具栏组的ID,后一部分是工具栏项目的ID,相同组的工具栏项目将被组织在一起显示。如果想增加菜单,需要设置menubarPath属性,它是由”/”分割的几个部分组成,描述菜单项的路径,比如”文件/新建/单据”将产生”文件”、”新建”两个menu和下面的”单据”一个menuItem,对于相重合的配置系统会进行合并。Action属性设置BaseAction的子类实例,用于完成菜单被点击时的业务动作响应。BaseAction声明实现PropertyChangeListener接口,而IEditor扩展了IPropertyChangeSource接口,这样Action可以对对应的Editor的属性变化进行响应,设置自身的可用性,关于这两个部分的监听关系的注册是由框架内部实现的。11第三章功能建模框架的物理结构集成开发平台是以上框架的一个应用,该应用是以元数据业务组件为对象和起点,对其资源进行创建、管理和维护。所涉及的资源、UI以及节点都是针对业务组件设计的。12业务组件信息表主键ID元数据组件自定义按钮常量接口名所属模块组件编码显示名称char(20)varchar(100)varchar(100)varchar(50)varchar(50)varchar(100)<pk>组件的自定义按钮主键No按钮按钮编码按钮显示名称按钮类名No父按钮是否可参与流程平台是否虚按钮组件外键char(20)smallintvarchar(30)varchar(30)varchar(50)smallintchar(1)char(1)char(20)<pk>UI基本信息表主键UI类名UI类别界面名称组件外键char(20)varchar(50)smallintvarchar(100)char(20)<pk>UI拥有的按钮信息主键ID按钮按钮位置按钮序号ID父按钮是否虚按钮UI外键char(20)smallintsmallintsmallintsmallintchar(1)char(20)<pk>UIUI工厂类型的信息主键界面类型是否基本档案UI外键char(20)smallintchar(1)char(20)<pk>UI工厂拥有的树形信息主键构造方式编码规则编码字段ID自身字段ID父字段显示字段UI工厂外键char(20)smallintvarchar(30)varchar(30)varchar(30)varchar(30)varchar(30)char(20)<pk>组件的资源信息主键ID资源类型pk所代表真实资源的显示信息pk直接父资源的组件外键char(20)varchar(200)varchar(1000)varchar(100)char(20)char(20)<pk>UI节点关联表主键pk注册节点功能节点号UI外键char(20)char(20)varchar(50)char(20)<pk>UI拥有的资源信息主键UI主键资源标识资源外键char(20)char(20)varchar(100)char(20)<pk>6、集成开发平台物理模型设计业务组件信息表用于存储业务组件的相关描述信息,它与元数据中的组件对应,表中存储了“元数据组件ID”字段,此字段与元数据组件ID对应。在业务组件导航树加载时通过元数据服务获取组件及其父子关系,以及组件下面存在的业务组件,此时与本工具表“业务组件信息表”进行比对,如果开发环境中不存在相应记录,则建立记录并存储在数据中,元数据导航树的树形结构以实际的元数据组件为准。“自定义按钮信息表”用于存储自定义按钮信息,以业务组件为单位对其进行维护。“组件的资源信息表”用于存储该组件所拥有的所有资源信息,现在主要包括模版和单据类型信息,它与下一节介绍的资源配置文件配置,通过资源类型ID以及业务组件对真实资源的标识和显示值进行存储(资源标识可以是PK,也可以是可以唯一定位资源的标识;显示值用于在组件资源树中显示使用,为了不需要在显示组件资源树时再进行查询才这样设计)。“UI基本信息表”用于存储业务组件所拥有的UI的基本描述信息。其中包括UI的类别(普通Toftpane还是UI工厂,以后可以扩展)等信息。“UI拥有的资源信息”是一个中间关联表,用于存储UI具有的被引用资源(非按钮等由本工具维护的资源)。“UI拥有的按钮信息”用于存储UI装配时的按钮设置。“UI工厂类型UI描述信息”,此表用于补充描述UI工厂类型UI的特征信息。13“UI工厂拥有树形结构信息表”,此表用于针对树形单据的树形控件的配置描述。“节点UI关联表”,此表建立UI与业务节点的关联关系,用于节点发布使用。以上这些表结构只是该平台基本的表结构,随着不断的功能完善,表的数量可能会不断增加。第四章集成开发环境核心API实现1、功能说明此部分代码是UI框架的一个使用,提供了以业务组件为对象,对其资源、UI、节点进行创建、管理和维护的功能平台。该部分应用提供了两个导航树形结构。左边的树为14元数据业务组件树,直接通过元数据的Service获取。右边的导航树为业务组件资源树,也是主要的操作对象。此树通过配置进行创建骨架,通过数据库进行存储资源项目信息,就存放在上面介绍的“业务组件资源表”中。由本工具进行维护和管理的资源是可以扩展的。管理资源的类别以及资源之间的主子关系是通过配置文件进行配置的。7、集成开发环境整体界面构成配置文件中配置的是资源树的骨架结构,真正的资源引用存储在“组件资源信息表”中。骨架结构直接对应着资源树的树形结构,在配置文件中可以定义该节点的事件监听。现在暴露的事件有双击事件和右键事件。<resources><resourceid="template"label="模板"><resourceid="billtemplate"label="单据模板">15<nodeRightClicknodeRightClickFilter=""nodeRightClickListener="nc.ui.modeldesigner.template.billtemplate.listener.BillTemplateRightClickListener"><rightMenuid="new"label="新建"/></nodeRightClick><resourceItemid="billtemplateItem"nodeDbClickListener=""/></resource></resource>上面是配置文件片断。它对应着资源树上的”模板”节点及其子节点”单据模板”节点。其中<resource>标识直接可以通过配置文件建立的树节点,比如”模板”节点。<resourceItem>节点代表的是被数据库存储数据的节点,这些节点的显示值是由用户约定的,比如不同的单据模板项的显示值。这些节点在建立树形结构时会去查询数据库,获取该业务组件的所有的此类资源显示,其显示值即为”“组件的资源信息表”中的”显示信息”字段。对资源节点事件的监听,通过配置实现。其中,双击事件通过”nodeDbClickListener”树形进行设置,设置值是接口IResourceNodeDoubleClickListener的实现类的全类名。右键通过<nodeRightClicknodeRightClickFilter=""nodeRightClickListener="nc.ui.modeldesigner.template.billtemplate.listener.BillTemplateRightClickListener"><rightMenuid="new"label="新建"/></nodeRightClick>进行配置。其中<rightMenu>配置所有可能的右键菜单,其中id是该菜单的标识,下面会用到,label是右键菜单的显示值。nodeRightClickFilter属性设置接口:IResourceNodeRightClickFilter的实现类全名称。该接口会在右键点击资源节点时首先调用。该Filter用于判断当前环境信息判断是否显示右键菜单以及显示哪些右键菜单。16nodeRightClickListener用于设置IResourceNodeRightClickListener接口的实现类全名称。此接口会在点击右键菜单时调用,其中通过传递参数menuId说明当前点击的右键菜单ID。在配置文件中,每个项目都有一个ID属性,该属性用于区别不同类型的资源。在数据库”组件资源信息表”中存储的ID是全标识ID,即从资源顶层算起来的ID路径,比如单据模板的存储资源全标识ID是:template.billtemplate.billtempateItem。这样是为了避免资源存储重复,也是为了解决资源递归引用的问题,比如”单据类型”节点下的”子单据类型”就是一个递归引用的例子,这样情况下有一个算法来保证数据库中存储的子单据类型的唯一性识别。2、基本类图8、对资源树进行监听需要实现的接口3、扩展方式对于本开发工具管理维护的资源如模版、单据类型等,在本系统中只存储一个资源标识和显示值。这些信息通过资源ID在库中进行存储,资源ID是在配置文件中配置的某项资源的全路径,例如上面配置的”单据模板项目”的资源ID17为:”template.billtemplate.billtemplateItem”。注意:”单据模板项目”与”单据模板”节点是不同的,前者是对单据模板真实数据的引用节点,每个节点代表着一个单据模板对象,而后者仅代表资源树结构中的”单据模板”节点。对每个资源节点的事件响应通过配置文件完成,在1中已经说明。对于事件响应接口,返回值是一个IEditor类型,此处是一个可能情况的设置。扩展者可以根据实际情况选择是否开发一个IEditor,如果仅是处理业务逻辑,而不打开编辑器进行资源编辑,则返回null。如果返回IEditor,则系统为其打开该IEditor到编辑器容器中,打开后,会根据当前触发的资源信息,进行数据设置,调用IEditor的initData(IEditorInputinput)方法。在本模型设计器中,IEditorInput的实现类是ModelDesignerEditorInput。真正为Editor传入的数据类型是ModelDesignerEditorInputObject,在该对象中设置了当前资源节点的三要素:所属业务组件的pk,当前资源ID和真实资源的标识。对于真实资源的维护,采用Action的方式处理,本系统接受的Action类型是BaseAction,它对AbstractAction进行必要的封装。可以将Action提取到工具栏和菜单上来处理。对于这些编辑器可以实现IActionContributorEditor接口,也可以同时实现IEditor和IActionContributor,这些接口增加了Action的设置。ActionDescriptor是对Action在菜单、工具栏贡献的描述类,本系统所有的Action需要继承BaseAction,对于Editor相关的Action可以继承DefaultEditorAction,该Action提供了获取当前处于激活状态Editor实例的方法。对于涉及到由本工具维护的资源的标识和显示值维护的操作请继承SaveAction和DeleteAction,其中SaveAction可以处理新增和修改情况下的保存操作,DeleteAction处理被引用资源的删除操作。对于这两种类型的Action,会在容器提供的外层包装代理类IActionDelegator中进行工具本身维护资源标识的修改和删除操作,否则将造成数据的不一致。18第五章数据模型与视图的一致性1、功能说明在一个基于GUI界面的应用系统中,如何保证视图与数据模型的一致性是一个很重要的问题。在本次开发的集成开发平台中,也涉及到数据模型与视图的同步问题。在开发平台中,有两棵树形结构。左边的业务组件导航树,它的数据是直接来自元数据系19统的,根据模块与组件之间的包含关系及层次关系构造出树形结构。由于此树形结构在界面呈现时构造出来,中间操作过程中不会涉及到此树形结构的编辑操作,因此树形结构不会涉及到同步的问题。在界面右边的业务组件资源树,是一个复杂的结构。它的数据会在开发运行过程中,得到编辑和维护,因此该树涉及到运行时的数据模型与视图的同步问题。本平台数据模型与组件资源树的同步,主要采用观察者模式来实现。本系统提供了一个统一的数据访问入口UAPDEDataAccessFacade类,此为单例类,保证实例的唯一性。同时它也是平台数据模型发生变化的源头。当左侧的数据导航树选择节点发生变化时,右侧的资源树会发生响应,根据当前激活的元数据资源标识通过数据统一入口获取该业务组件的相关资源,该入口类提供前台缓存功能,提高重复访问的响应效率。2、主要类图9、数据模型与视图同步类图设计从类图中可以发现,右侧的组件资源树对数据访问入口具有监听关系。当数据访问入口的数据发生变化时,它会更新缓存数据、进行数据库数据更新并通知所有监听器,资源树是20它其中一个观察者,资源树会根据数据的变化更新资源树的结构,使显示与当前的数据模型保持同步。第六章UI组装1、功能说明对UI上的动态数据资源进行抽象,归纳出UI模型,形成了UI资源组装功能。此应用功能,进行UI描述信息的可视化设置,组装各种UI资源,包括按钮设置、模板设置、校验规则设置、单据类型设置、以及其他一些必要信息如类名、界面类型等供代码生成使用。基本信息设置:提供下拉框进行UI类型选择,UI类型包括普通类型、卡片类型、列表类型、管理类型,后三种为UI工厂模式界面。另外还有设置UI类名,设置是否为基本档案,设置单据类型。按钮设置:呈现:提供一个待选择的按钮树(按钮来源)和已选择的按钮树(按钮设置结果)21呈现。其中按钮树均为一个类型下挂二级按钮。按钮树的呈现因UI类型的不同而不同,按钮设置来源包括系统预置按钮和自定义按钮,当UI类型为普通时,按钮结果为普通,卡片类型结果为卡片,列表类型结果为列表,管理类型时,按钮可设置为卡片和列表两种类型。设置:可进行按钮的添加、删除、排序。对不同类型的界面提供一些预置按钮组功能。按钮设置的约束:当添加按钮为一个子按钮时,父按钮将同时带过去,当添加按钮有子按钮时,其所有子按钮将同时添加,并且,按钮的上下级关系是不会改变的。其他独立按钮可自由组合上下级关系。所有有子按钮的按钮,可自由添加独立按钮。模板设置:单据、查询、打印3种模板的设置,支持多模板(设置NodeKey以进行区别,打印可不设)。校验规则设置:当UI类型为UI工厂类型时,可进行校验规则设置。校验规则包括可为空校验与唯一性校验两种。可为空校验设置某个表体是否可为空,唯一性校验即某个表体中,某几个字段构成的值的组合是否唯一。2、基本类图BtnSetDataControleruiResInfo:UIResInfolsSelectableBtn:List<ButtonInfo>BaseInfoPnlcontroler:UIDataControlerButtonSetPnluiDataControler:UIDataControlercontroler:BtnSetDataControlerUIResInfoTemplateSetPnlcontroler:UIDataControlerUIEditorPartcontroler:UIDataControlerpnlBaseInfo:BaseInfoPnlbuttonSetPnl:ButtonSetPnlpnlTemplateSet:TemplateSetPnlcheckRulePnl:CheckRulePnlsetControler()UIDataControleruiResInfo:UIResInfoinit()CheckRulePnldataControler:UIDataControlerObservableObserver10、UI设计相关类图22界面设计体现迪米特法则与依赖倒置原则。按照各个功能分块独立实现,最后组装。各独立界面共享一份数据,一个控制器,各个界面通过同一个控制器实例进行通讯。各块可独立变化,互不影响,耦合性降低。界面的数据通过外部注入:控制器先获取数据,然后注入界面,界面通过控制器操作数据,并不直接获取数据。UI模型数据逻辑结构ButtonInfobuttonNobuttonIndexlsChildBtnInfo:List<ButtonInfo>parent0..n00..n0ButtonPosbtnPos:intposName:StringBillTypeAssbillTypeNO:Stringdefaul:booleanButtonInfoGroupbuttonPos:ButtonPoslsButtonInfo:List<ButtonInfo>0..n10..n1IMutableTreeNodeITreeNodeBillTypeAsseslsBillTypeAss:List<BillTypeAss>0..n00..n0UITypebigTypeCode:intuiFactoryTypeCode:intButtonInfoslsBtnInfoGroup:List<ButtonInfoGroup>0..n10..n1TemplateAsseslsTempAss:List<TemplateAssGroup>TemplateAssInfotempPK:StringnodeKey:StringTemplateAssGrouptempType:StringlsTempAss:List<TemplateAssInfo>0..n10..n10..n00..n0UIResInfoUIClassNamebaseDocUITypebuttonInfos:ButtonInfosbillTypeAsses:BillTypeAssestemplateAsses:TemplateAssesuiInfoVO:ModelDesignerUIInfoVOUniqueCheckRuleslsUniqueCheckRule:List<UniqueCheckRule>UniqueCheckRuleattrFullName:StringerrorMsg:String0..n00..n0EmptyCheckRuleslsEmptyCheckRule:List<EmptyCheckRule>EmptyCheckRuleentityfullname:Stringcanbodyempty:boolean0..n00..n11、UI设计相关类图数据结构设计思路为按照数据的逻辑组合关系设计其自然的OO模型结构。这种结构更易理解,更便于使用,为界面的良好实现奠定基础。3、界面操作基本信息设置:提供下拉框进行UI类型选择。按钮设置:添加操作:提供按钮操作和拖拽操作两种方式。其中通过按钮操作可多选操作(来源于待选择按钮树),拖拽可从待选择按钮树中拖拽系统按钮和自定义按钮,也可从资源树上拖拽自定义按钮。同时对于某种UI类型,提供一些系统预置的按钮组方便批量添加最常用的按钮。删除操作:提供按钮操作和右键操作两种方式。支持相邻多选操作。排序:提供按钮操作和右键操作两种方式。支持相邻多选操作。模板设置:设置模板:提供参照的方式进行模板选择,可设置多个模板,使用NodeKey进23行标识。校验规则设置:可为空校验:界面列出业务组件中元数据的非主实体,可设置是否可为空。唯一性校验:提供数表参照编辑器,对于业务组件中元数据的某个非主实体,选择其中某几个属性,表示设置几个属性值的组合是否唯一。第七章节点发布1、功能说明NC产品运行时,都是以节点为起点,来获取各种信息(包括UI模型数据)并处理,然后呈现界面,业务操作也如此。所以产生了节点与UI模型数据的关联。当UI信息已经设置完毕,即可进行节点发布。节点发布时,按照UI模型数据中对应的节点注册数据(对应类名)进行节点注册,按钮注册数据(对应按钮设置信息)进行按钮注册。此时即完成了一个节点与UI的关联。该工具还包括了一个辅助工具:代码生成,它根据UI类型生成相应的UI工厂型代码框架。节点注册:UI类名将自动成为节点的UI名称,节点编号通过选中的虚节点自动生成,也可手动修改。但会受约束。按钮注册:UI中的按钮信息将自动注册为当前节点的按钮。包括系统按钮和自定义按钮。按钮编号根据节点编号自动按照按钮的顺序生成。系统模板注册:即默认模板与功能节点的关联。其他附加操作:单据类型的节点号回写。代码生成:根据UI类型生成相应的UI工厂型代码框架。其中,UI信息中没有设置VO信息,代码框架中的VO信息从业务组件的元数据上获取。2、基本类图生成代码的操作策略及内部构造:24AbstractCodeGenStrategyICodeGenStrategygenCode()getCodeGenSelectionComp()VOPublishContentVOPublishContentPnlpublishContent:VOPublishContentUIFactoryCodeGenStrategyUICommonPublishContentToftPanelPublishContentPnlpublishContent:UICommonPublishContentUIFactoryPublishContentUIFactoryPublishContentPnlpublishContent:UIFactoryPublishContentWebCodeGenStrategyUIPublishContentPnlUIPublishContentPublishContentPnlPublishContentWebPublishContentPnlWebPublishContent12、节点发布相关类图执行代码生成类及数据提供器:ICodeGenFacadeAbstractCodeGenFacadeUIPublishCodeGenFacadeWebCodeGenFacadeIMultiDataAdaptorGenericGencodeDataParserparse()WebGencodeDataAdaptorWebGencodeDataParserUIFactoryGencodeDataParserGencodeDataAdaptorCommonUIGencodeDataParser13、代码生成相关类图253、界面操作新的发布:选中一个已经设置好的UI,右键菜单点[节点发布],即显示发布界面,选中一个虚节点,输入节点名称和其他可选项,此时保存,即发布出去。发布界面中,可更改发布按钮,也可设置参数。发布修改:当一个UI的信息已经改变,有可能需要重新节点发布。在修改的UI对应的节点上,右键菜单点[打开],即打开发布界面,此时虚节点已变灰不能改变,修改各项,[保存],即将之前发布的数据全部清除,然后重新发布。26第八章参照构造1、功能说明此功能基于元数据辅助生成参照的Model类。NC中参照分为表型、树型、树表型三种,在此工具中,我们对应给出三种界面进行信息配置,这些配置信息作为系统资源保存起来便于后续管理。根据这些信息,基于元数据生成参照Model类代码。由于元数据的底层数据支持,这里的配置信息都基于元数据,生成代码时将对应找到需要的数据,如实体,将对应表,属性对应列。在参照定义中,配置的主体即元数据的主实体。主键是默认选中的,所以属性配置信息中,看不到主键。元数据定义中已做约束,规定只有主实体实现了IBDObject接口,才能作为参照使用。树型参照定义中,如果树构造方式为“父子字段”,将使用元数据中已配置业务接口属性映射的父主键和主键作为父字段和子字段。树表型参照定义中,表配置即参照的主体,对应元数据的主实体,树配置对应元数据中与主实体有关联关系的实体,关联的实体可能有多个,从其...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

NC5客开培训资料-NCV55-功能建模红皮书.doc

您可能关注的文档

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信