用友软件股份有限公司研发过程 U9 卡片过滤条件和排序规范 版本号: V1.0 作 者 : 张新民 第 1 页 共 5 页 版本记录 【此部分要记录该文档形成过程中的历次版本变更过程及变更的内容】 版本 修改与参与人 修改时间 修改原因 修改概述 审批人1.0 张新民 2008/06/26 原始文档建立 第 2 页 共 5 页 一.问题域说明 过滤与排序是 UI 开发的基本内容,所有单据都不可能缺少,这里主要讲解通过平台提供的 UBF 设计器和通过代码两种实现方式 二.基本原理 由于在 U9 中,所有数据库级别的操作都已被平台封装,UI 层对数据库的查询操作都要通过业务实体和平台提供的 OQL(Object Query language)来实现.我们的 OQL 最终会被平台的数据库引擎翻译为 SQL 发给数据库.所以进行 U9 的开发必须要了解平台的 OQL. 三.关键代码及说明 1.:设计器实现 1.1 卡片过滤 在 UIView 的 Filter 设计器里设定过滤,一般情况下应按组织隔离数据 Org = #Context.OrgID# 过滤是整个操作的结果集合,不起定位作用。 最早的 Id=@ID 应该去掉,参数删除 (注意:WebPart 和 WebPage 的 ID 参数不能删除) 第 3 页 共 5 页 1.2 卡片排序 在 UIView 的 Filter 设计器里设定排序方式 如 Code,Org,Code Asc 等,如上图所示 2,:代码实现 总体原则,就是通过设置卡片对应 Model 主 View 的过滤条件与排序条件来达到目的 2.1:卡片过滤 2.1.1:如果是追加过了条件使用如下代码 this.CurrentModel.MiscRcvTrans.CurrentFilter.OPath = QryService.GetDefaultOpath((BaseWebForm)(this.CurrentPart)) + " and Org=" + PlatformContext.Current.OrgID ; 2.1.2 如果想重设过了条件使用如下代码 this.CurrentModel.MiscRcvTrans.CurrentFilter.OPath = " and Org=" + PlatformContext.Current.OrgID ; 2.2:卡片排序 2.2.1 如果是追加过了条件使用如下代码 this.CurrentModel.MiscRcvTrans.CurrentFilter.OrderBy = QryService.GetOrderByOpath((BaseWebForm)(this.CurrentPart)) +" BusinessDate desc, DocNo desc "; 2.2.2 如果想重设过了条件使用如下代码 this.CurrentModel.MiscRcvTrans.CurrentFilter.OrderBy = " BusinessDate desc, DocNo desc "; 第 4 页 共 5 页 四.源代码使用说明 代码直接拷贝,修改主 view 名称即可 五.组装发布说明(可选) 第 5 页 共 5 页