NC标准参照开发

上传者: 36654971 | 上传时间: 2025-08-04 21:58:26 | 文件大小: 355KB | 文件类型: DOCX
参照是在NC框架下开发中非常常见的一个专项,本质就是在编辑某字段时通过触发参照时获得的一些信息(集团、组织、用户等),临时拼成SQL语句,到数据库中指定的单张或联查多张表,过滤出所有备选项,展现在页面参照选择对话框中供用户选择。目的是统一提供基本档案的录入,防止手工录入产生的错误。NC系统中的参照大致分为两种:系统参照(物料、集团等预制好的)和自定义参照。 ### NC标准参照开发详解 #### 一、NC参照开发概述 在NC系统中,参照机制是一种重要的功能,用于简化和标准化基本档案的录入工作,从而减少由人工输入引起的错误。参照开发主要涉及到当用户编辑某一字段时,通过触发参照功能获取相关信息(例如集团、组织、用户等),并基于这些信息动态构建SQL语句来查询数据库中的单个或多个表,筛选出符合条件的备选记录,最终在界面上以参照选择对话框的形式展现给用户进行选择。 #### 二、NC系统的参照分类 NC系统中的参照大致分为两大类:系统参照和自定义参照。 - **系统参照**:由NC系统预先定义好的参照,如物料、集团等。这类参照通常较为通用,可以直接使用而无需额外的开发工作。 - **自定义参照**:根据具体业务需求定制的参照,需开发者自行设计和实现。 #### 三、系统参照开发详解 系统参照的开发相对简单,主要包括单据模板参照和查询模板参照。 ##### 1. 单据模板参照 在单据模板中设置参照字段时,只需在元数据中将相应字段的类型样式设为“REF”,并选择合适的系统参照类型即可。需要注意的是,某些参照类型可能不会自动带出参照名称,这种情况下需要手动补全。此外,在单据模板初始化中还可以对参照进行更具体的设置,比如离开焦点时显示名称、启用数据权限等。 对于较复杂的参照场景,还需在编辑前事件中传入特定参数来精确控制数据过滤,如下例所示: - **离散订单表头产品字段**:在编辑前事件中需要取出产品的参照模型,并设置集团等信息,以便更准确地过滤数据。 ##### 2. 查询模板参照 查询模板中的参照字段设置选项较少,但同样需要设置过滤条件。与单据模板不同,查询模板没有编辑前后事件,因此参照过滤和字段间的联动设置更为复杂。 - **查询模板参照过滤设置**:可以通过实现平台提供的`IQueryConditionDLGInitializer`接口来进行设置。在接口的初始化方法中,利用`QueryConditionDLGDelegator`对象进行参照设置。 - **字段间的联动**:对于需要根据另一字段值动态调整过滤条件的情况,可以通过手动配置字段监听来实现。具体操作是继承`AbstractLinkageColumnListener`类,并在其中定义监听和联动逻辑。 #### 四、自定义参照开发详解 自定义参照是根据业务需求定制的,相较于系统参照而言更为灵活。 ##### 1. 最简单的自定义参照 自定义参照的基本构成包括参照模型定义和SQL拼接规则的制定。 - **参照模型定义**:自定义参照需要定义参照模型(`RefModel`)。与系统参照不同,自定义参照对应的表在元数据实体定义时必须实现`IBDObject`接口。 - **SQL拼接规则**:根据具体业务需求,自定义SQL语句的拼接规则,以确保能够正确地过滤出所需的数据。 ##### 2. 自定义参照开发流程 - **定义参照模型**:创建自定义的参照模型类,定义其属性和方法。 - **实现参照接口**:参照模型类需实现特定接口,以支持参照功能。 - **设置SQL拼接规则**:根据业务需求定义SQL语句的拼接逻辑。 - **集成到业务单据**:将自定义参照集成到相应的业务单据中,以便在使用时可以调用。 #### 五、总结 NC系统中的参照开发是一项重要的技术实践,不仅能够提高数据录入的准确性,还能提升用户体验。无论是系统参照还是自定义参照,都有其适用场景和技术要点。开发者需要根据实际需求灵活选择并实现相应的参照机制,以满足不同的业务需求。通过对参照开发的深入了解和实践,可以进一步提升NC系统的灵活性和实用性。

文件下载

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明