参照是在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系统的灵活性和实用性。
2025-08-04 21:58:26 355KB 参照开发
1
第八章 单据插件开发 一、 插件开发特点 1)业务逻辑扩展
1
Spring框架是Java企业级应用开发中一个非常重要的开源框架,它提供了全面的技术支持,帮助开发者更快、更有效地构建应用程序。《Spring核心技术》是Spring官方文档的中英文对照版,本次版本更新为V5.0.5,提供了一个丰富的、功能强大的开发框架,并覆盖了与Spring框架紧密相关的技术核心。 Spring框架的核心技术主要包括控制反转(Inversion of Control,IoC)容器和面向切面编程(Aspect-Oriented Programming,AOP)技术。 控制反转容器是Spring框架的基石,它承担了企业应用中的依赖注入(Dependency Injection,DI)功能。依赖注入是一种设计模式,它允许我们从硬编码依赖关系和直接使用服务定位器模式中解放出来,通过控制反转的原则,将依赖关系的管理交给Spring容器来完成。这种方式增加了代码的模块化,提高了组件的复用性,同时降低了代码间的耦合度。在Spring中,BeanFactory接口是IoC容器的基础,它负责管理应用对象(即beans)的创建、配置和管理。通过配置文件、注解或Java配置类,开发者可以定义bean的属性和依赖关系,Spring IoC容器会根据这些定义在运行时进行bean的实例化和装配。 面向切面编程(AOP)是Spring另一个核心概念,它允许开发者将横切关注点(cross-cutting concerns)从业务逻辑代码中分离出来,以模块化的方式进行处理。这种技术的好处是,可以在不修改业务代码的前提下,通过定义切面(aspects)来实现额外的行为,如日志记录、安全检查、事务管理等。Spring框架内置了AOP支持,开发者可以轻松地实现AOP编程。 Spring与AspectJ的集成是Spring AOP技术中的一部分,AspectJ是Java领域最成熟、功能最丰富的AOP实现。通过Spring与AspectJ的集成,开发者可以利用AspectJ提供的丰富特性来实现更复杂、更高效的AOP解决方案。 Spring的核心技术还包括了Spring的事务管理,它提供了一致的编程和声明式事务管理模型,支持声明式事务管理,允许开发者声明事务应该如何运行,并通过AOP来管理事务边界。此外,Spring还提供了对数据访问技术的支持,如JDBC抽象和透明的异常处理,以及集成支持Hibernate、JPA、JMS和其他技术的模块。 Spring框架还提供了对各种开发环境的支持,比如Web应用开发的Spring MVC框架、支持测试的Spring Test框架等,这些都极大地丰富了Spring框架的功能。 《Spring核心技术》中英文参照版(V5.0.5)详细介绍了Spring框架的控制反转容器、面向切面编程技术、与AspectJ的集成等关键技术。通过这些技术,开发者可以构建出结构清晰、模块化程度高、易于维护的高质量企业级应用。
2025-07-13 22:07:40 2.92MB Spring
1
MATLAB图像增强工具:复杂代码实现,带GUI界面,可载入原图和参照图像强化,RGB/HSV分量调整,MATLAB图像增强工具:复杂代码实现,带GUI界面,可载入原图和参照图像强化,RGB/HSV分量调整,MATLAB图像增强代码 代码些许复杂,由本人一个朋友编写 是机器视觉和图像增强领域的应用,有gui界面,可以载入原图和参照强化的图像,读取参照图像的RGB或者HSV 分量,并强化原图像, 运行,corrction.m.结果如下图 ,MATLAB图像增强; GUI界面; 载入原图; 参照强化图像; RGB/HSV分量; 图像强化; 运行corrction.m; 结果展示。,MATLAB图像增强程序:机器视觉与GUI界面的优化应用
2025-04-21 12:22:44 5.5MB
1
闲暇时折腾IP网络视频监控系统,需要支持视频帧数据包在网络内的传输。未采用H.264或MPEG4等编码压缩方式,直接使用Bitmap图片。由于对帧的准确到达要求不好,所以采用UDP传输。如果发生网络丢包现象则直接将帧丢弃。为了记录数据包的传输顺序和帧的时间戳,所以研究了下RFC3550协议,采用RTP包封装视频帧。并未全面深究,所以未使用SSRC和CSRC,因为不确切了解其用意。不过目前的实现情况已经足够了。 代码如下:///    /// RTP(RFC3550)协议数据包   ///    ///    /// The RTP hea
2024-09-11 10:26:27 91KB header padding payload
1
在嵌入式开发中,USART(通用同步/异步收发传输器)是微控制器(如STM32)与外部设备通信的重要接口。本话题主要探讨如何在STM32等MCU上,利用普冉PY32实现USART串口的不固定长度数据接收以及printf函数的发送重定向。这一功能在很多实际应用中非常实用,例如远程调试、数据传输等。 我们需要了解USART的基本工作原理。USART是一种全双工通信接口,可以同时进行发送和接收数据。在STM32中,我们通常使用中断(Interrupt)或DMA(直接内存访问)来处理数据的接收和发送,以便于处理其他任务而不阻塞主循环。 对于不固定长度的数据接收,关键在于正确地识别数据包的边界。一种常见的方法是定义一个特定的帧结构,比如起始和结束字符,或者包含数据长度字段。在中断服务程序中,当接收到起始字符时,启动接收过程,将接收到的数据存储到缓冲区,并在检测到结束字符或读取到数据长度字段后停止接收。这样可以确保即使数据长度未知,也能完整地接收整个数据包。 接下来,我们讨论printf发送重定向。在C语言中,printf函数通常用于向标准输出(通常是控制台)打印信息。但在嵌入式系统中,没有标准输出的概念,我们可以自定义printf的输出目的地。通过重定向stdio流,我们可以让printf的数据发送到USART串口,实现远程调试信息的输出。这需要我们覆写中的相关函数,如vfprintf,然后在覆写的函数中调用USART的发送函数,将字符数据送出去。 具体实现步骤如下: 1. 定义一个全局的缓冲区,用于存放printf的输出数据。 2. 覆写vfprintf函数,使其将输出数据写入缓冲区而不是标准输出。 3. 创建一个定时器中断或者在空闲时间检查缓冲区,当缓冲区中有数据时,通过USART的发送函数将数据发送出去。 4. 需要注意的是,由于USART发送通常是异步的,因此需要处理好发送队列,避免数据丢失或乱序。 在提供的文件"USART_IT_串口printf重定向+不定长接收(003带库)"中,可能包含了实现上述功能的源代码。代码中可能包括了USART的初始化配置、中断服务程序、printf重定向的相关函数等。通过阅读和理解这些代码,你可以学习到如何在实际项目中实现类似的串口通信功能。 总结来说,实现STM32的USART串口不固定长度数据接收和printf发送重定向,需要理解USART的工作原理、中断服务程序的设计以及stdio流的重定向。这不仅能提高你的嵌入式编程技能,也为开发各种通信应用打下坚实的基础。
2024-08-20 10:44:39 4.08MB stm32
1
基于改进的MEI法建立太湖总磷参照浓度,洪波,戴本林,营养物是湖泊水生动植物和湖泊健康的必要因子,但过量的营养物会造成湖泊藻类和植物的疯长,溶解氧下降,水质变差等一系列问题。
2024-02-25 19:08:52 332KB 首发论文
1
Ahcvhisso统一身份认证及访问控制解决方案[参照].pdf
2023-12-08 11:36:45 688KB
1
用友U8+V13.0后台数据库表名参照表,只有表含义,没有字段含义,请慎重下载。使用sqlserver数据库。
2023-09-22 16:24:29 24KB 用友U8
1