U9列表、查询开发U9客户化开发支持部苗庆波2009年06月19日课程编号:列表、查询介绍列表开发过程BE查询开发DTO查询开发查询方案设置多页面帧设置查询框架列表、查询介绍 运行期查询列表公共部分 设计期CurrentState查询列表WebPart组件UBF查询列表设计器代码生成方案模型CaseModel在U9环境中展现为查询列表结果画面查询列表公共组件查询方案设置画面QueryCaseUI装配ModelControlViewUBF元数据设计器BE元数据DTO方式的专用BP查询组件代码生成DBDTO元数据查询框架-设计期设计期列表或BE查询:使用UBF元数据设计器设计BE,根据需求调整字段属性来满足其表现特征DTO查询:使用UBF查询设计器来直接设计查询DTOUBF查询设计器会将BE元数据或DTO元数据,转换成查询设计模型,应用开发人员根据需求、设计文档来调整模型,然后通过构造生成UI端代码及BP端代码BE与DTO不同:BE查询使用的实体间存在层级关系,属性间是树型关系,DTO的属性都在同一个层次上查询框架-运行期运行期运行期核心工作:查询公共组件将BE元数据或DTO元数据转成查询方案模型(CaseModel)根据查询方案模型的待选模型(CaseModel.CaseDefine)来配置“查询方案画面”的表现形式:• 根据CaseModel.CaseDefine.FilterDefines生成查询方案画面中的“查询条件”控件的表现形式,如:参照、枚举、日期等• 根据CaseModel.CaseDefine.FilterDefines生成条件待选项• 根据CaseModel.CaseDefine.ColumnDefines生成栏目待选项• 根据CaseModel.CaseDefine.SortDefines生成排序待选项根据查询方案模型的已选模型(CaseModel.Case)来配置最终的查询列表结果画面:• 根据CaseModel.Case.FilterDefines及CaseModel.Case.FilterValues生成OQL查询的Where子句• 根据CaseModel.Case.Columns生成OQL查询的Select子句• 根据CaseModel.Case.Sorts生成OQL查询的Order By子句• 根据CaseModel.Case.Columns生成表格中的列列表开发新建查询项目列表开发指定UI和BP项目的创建位置列表开发创建查询组件列表开发创建查询组件列表开发创建完成后的项目呈现列表开发指定数据源实体信息列表开发修改UI项目的配件名和UIModel的命名空间列表开发查询方案设置专题列表开发UI端应用开发人员可扩展代码Action应用开发可扩展代码列表开发UI端应用开发人员可扩展代码WebPart应用开发可扩展代码BE查询开发BE查询与列表的不同使用场景不同• 列表:通过单据的列表按钮导航– 有新增、删除等工具按钮– 可多选• BE查询:通过菜单导航开发过程中的区别• 查询数据源选择窗体中选择的类型不同• UI Form模版不同BE查询开发创建查询组件BE查询开发创建查询组件DTO查询开发DTO查询与BE查询的不同数据源不同• BE数据源来源于实体树• DTO查询数据来源于由BP提供的DTO,DTO的结构需要定义,BP的取数逻辑根据需要编写DTO查询开发新建一个查询项目指定UI和BP项目的创建位置(与列表、BE查询相同)DTO查询开发创建查询组件DTO查询开发创建查询组件DTO查询开发创建完成后的项目呈现DTO查询开发修改UI及BP项目和文件的相关信息DTO查询开发-编辑DTO属性添加DTO属性DTO属性的添加有两种方式----如果是简单类型的字段并且在实体中没有的字段可以通过“新建自定义属性”创建DTO查询开发-编辑DTO属性添加DTO属性如果是其他类型的属性(包括简单类型)则可以通过设计器左边的实体树进行筛选,并添加到右面的DTO属性列表中DTO查询开发-编辑DTO属性分组设置每一个DTO属性都属于一个组,默认是系统的“Misc”组,根据需要建立需要的组,通过“新建分组”或右键菜单管理组DTO查询开发-编辑DTO属性DTO部分属性修改新建或添加完的DTO属性可以进行类型的修改(只能是简单类型字段)或删除通过右键将属性移至特定的分组内,“重置分组”是将所选的DTO属性的分组重新设置为“Misc”DTO查询开发-BP端代码扩展BP端应用开发人员可扩展代码DTO查询开发-BP端代码扩展BP端应用开发人员可扩展代码BP端应用开发人员可扩展代码:在新建DTO查询的时候,设计器会为自动创建查询版型的BP(QueryBPImpementStrategy),在构造时便会生成查询BP的框架代码,查询BP的开发人员,...