"UI工厂是用友软件股份有限公司开发的一套基于NC-UAP的UI开发框架,主要用于提升UI开发效率和代码可读性。它通过抽象常见的UI元素,如单据模板、查询模板、打印模板,形成不同的UI基类,提供了一套推荐的实现方式。UI工厂的主要组件包括VO模型、BillUIBuffer、BillCardPanelWrapper和BillListPanelWrapper,以及ButtonManager。UI状态管理和按钮管理是其重要特性,涵盖了初始、编辑、新增、非编辑等多种UI状态,以及自由、提交、审批通过、审批未通过等数据状态。此外,UI工厂还支持自定义按钮的创建和管理,通过ButtonVO存储配置信息。"
UI工厂详细说明:
1. **UI状态**:UI状态是用户界面在不同操作下的状态表示,如OPINIT(初始)、OPEDIT(编辑)、OPADD(新增)和OPNOTEDIT(非编辑)。这些状态通常与用户对界面的操作权限和功能可用性相关,例如,在OPEDIT状态下,用户可以编辑数据,而在OPNOTEDIT状态下,数据可能是只读的。
2. **数据相关状态**:数据状态则反映了业务流程中的数据所处的状态,如FREE(自由)表示数据可编辑,COMMIT(提交)表示数据已保存但未完成流程,CHECKPASS(审批通过)和NOPASS(审批未通过)涉及审批流程,用于管理业务逻辑。
3. **VO模型**:Value Object(VO)模型是UI工厂中的数据载体,分为不同类型,如主子表、多子表、单表头和单表体。主子表适用于具有主从关系的数据展示,多子表处理多个子表的情况,而单表头和单表体则分别用于无表体的卡片和无表头的档案节点。
4. **BillUIBuffer**:这是一个线性缓冲区,用于存储和管理多张单据,以便用户可以在本地操作单据数据,减少不必要的后台查询,提高性能。
5. **BillCardPanelWrapper和BillListPanelWrapper**:这两个组件负责加载和设置卡片式和列表式的单据模板,弥补单据模板本身的功能不足,确保UI的正确显示和交互。
6. **ButtonManager**:按钮管理器统一管理UI中的按钮,预注册了常见的按钮操作,如新增、编辑、保存等。ButtonVO是存储按钮配置信息的数据结构,允许自定义按钮及其行为。
7. **自定义按钮**:UI工厂支持开发人员自定义按钮,并分配唯一ID,使得按钮功能可以按照需求扩展和定制。
UI工厂通过上述机制,为开发者提供了标准化、模块化和高效的UI开发工具,简化了开发过程,提高了代码质量,有助于构建更加稳定、易维护的企业级应用。