U9 研发(CommonCRUD 使用手册) 适用版本:U9 V1.5 UBF2.0 修改状态: 编写人: 熊悦阅 审核人: 刘小东 此部分要记录该文档形成过程中的历次版本变更过程及变更的内容 版本 修改与参与人 修改时间 修改原因 修改内容 审批人 1.0 熊悦阅 2008-7-8 原始文档建立 刘小东 1.概述 UFIDA CommonCRUD 是一套标准的服务,为表示层提供公共的查询、创建、更新、删除操作。 2.构架原理 2.1 CommonCRUD 的主要功能 CommonCRUD 功能同名称一样,为前台提供了公共的创建、查询、更新、删除记录的服务。CommonCURD 一共提供了两个标准的 U9 服务(参见服务相关手册),使用 UIModel 为参数。两个服务分别如下: 函数声明 说明 UIModelQuery(IUIModel) 查询数据 UIModelUpdate(IUIModel) 创建,更新,删除数据 CommonCRUD 在业务应用中,起到重要的作用,简化了大量的代码,U9 中 70%以上的查询,创建,更新,删除行为,都使用 CommonCRUD 完成。它是表示层与持久层的重要桥梁。 3. 使用指南 3.1 UIModelQuery UIModelQuery 提供数据查询的功能,它使用 IUIModel 作为参数,返回符合条件的IUIModel 数据。 3.1.1 UIModelQuery 的调用方法 //创建 UIModelQuery 代理 UIModelQueryProxy queryBp = new UIModelQueryProxy(); //设置传入参数 queryBp.Model = model; //执行查询操作并接受返回值 IUIModel result = queryBp.Do(); 3.1.2 传入参数 传入参数只有 IUIModel 对象,UIModelQuery 将使用 IUIModel 中的一些属性,进行数据查询操作,属性如下: 属性 功能说明 View.ViewDealFlag 只能 ViewDealFlag 为 CommonDealFlag.Load 的才加载数据,加载关联数据时,不受此影响。 View.QueryGlobalizationOption 语种信息。语种信息包括 2 种选项, 1. Auto,只加载当前上下文的语种 2. Manual,加载所有语种 View.IUIFieldCollection 通过 View.IUIFieldCollection 产生查询的 Select 子句 View.SelectOQLString 如果设置了 SelectOQLString 属性,将替换 IUIFieldCollection产生的 Select 子句 View.CurrentFilter 过滤条件,产生 Where 子句 View.EntityFullName 查询的 Entity 对象,控制 From 子句 View.FromOQLString 如果设置了 FromOQLString 属性,将替换 View.EntityFullName产生的 From 子句 View.PageStrategy.IsUsing 是否进行分页查询,当 View.IsMain 为 True 时,View.PageStrategy.IsUsing 总是为 True View.PageStrategy.CurrentPageIndex 当前的页号,控制加载第几页数据 View.PageStrategy.PageSize 每页记录的条数 3.1.3 使用示例 示例场景:有一个叫 DepartmentUIModel 的 UIModel,其中包括两个 UIView,分别为Department 和 Person,对应实体 DepartmentBE 和 PersonBE。 视图的关键属性如下: Department 的属性 ViewDealFlag CommonDealFlag.Load QueryGlobalizationOption Auto IUIFieldCollection ID, Name,DeptType SelectOQLString CurrentFilter EntityFullName DepartmentBE FromOQLString PageStrategy.IsUsing True PageStrategy.CurrentPageIndex 1 PageStrategy.PageSize 20 IsMain True ViewName Dept Person 的属性 ViewDealFlag CommonDealFlag.Load QueryGlobalizationOption Auto IUIFieldCollection ID, Name,DeptID SelectOQLString CurrentFilter EntityFullName PersonBE FromOQLString PageStrategy.IsUsing False PageStrategy.CurrentPageIndex 1 PageStrategy.PageSize 20 IsMain False ViewName Person Department 和 Person 构架 1:N 的组合关系 示例 1:加载 Department 和 Person 的数据 //创建 UIModelQuery 代理 UIModelQueryProxy queryBp = new UIModelQueryProxy(); //设置传入参数 queryBp.Model = model; //执行查询操作并接受返回值 IUIModel result = queryBp.Do(); 将会加 Dep...