事件处理在UI工厂中的角色是至关重要的,尤其是在NC行业的新员工培训中,它对于用友软件股份有限公司开发的UI工厂系统显得尤为重要。UI工厂是一个基于NC-UAP的UI开发框架,旨在提高代码的复用性和可维护性,通过将常见的UI元素分类并抽取共性代码,创建了基础的UI基类,如单据模板、查询模板和打印模板的处理。
1. **事件处理方法**:
- `afterEdit`:在单据模板的表头或表体某项内容被编辑后,此方法会被触发,用于更新相关业务逻辑。
- `bodyRowChange`:当用户选择卡片模板的表体或列表模板的不同行时,这个方法会调用,可能涉及数据的切换和界面更新。
- `beforEdit`:编辑操作前的预处理,确保数据正确无误,可能包含数据验证或权限控制功能。
2. **VO模型和表格结构**:
- 主子表是UI工厂的标准设计,适用于大部分场景。多子表需要继承专门的多子表基类,并实现IExAggVO接口。单表头无表体的卡片,将子表视为NULL;单表体无表头的卡片,主表作为NULL处理。
- `BillUIBuffer`是线性缓冲区,用于存储和管理多个单据对象,用户可以直接操作,无需每次都向后台查询数据,提高用户体验。
3. **界面加载与状态管理**:
- UI工厂通过`BillCardPanelWrapper`和`BillListPanelWrapper`来管理和加载卡片和列表类型的单据模板,提供扩展功能。
- UI状态分为OPINIT(初始)、OPEDIT(编辑)、OPADD(新增)、OPNOTEDIT(非编辑)等,对应IBillOperate的定义。数据状态则有FREE(自由)、COMMIT(提交)、CHECKPASS(审批通过)、NOPASS(审批未通过)等,参考IBillStatus的定义。
4. **按钮管理**:
- UI工厂通过ButtonManager负责按钮的创建和状态控制,预注册了常见的操作按钮,如新增、编辑、保存等。每个按钮的信息存储在ButtonVO中,用户可以根据需要定制自定义按钮,只需为其指定一个唯一的ID号。
5. **自定义按钮**:
用户可以根据应用需求自定义按钮,通过分配特定的ID号,实现个性化操作和扩展功能。
UI工厂通过标准化的UI组件、事件处理机制和状态管理,简化了UI开发过程,提升了开发效率,使得NC系统的用户界面更加灵活且易于维护。新员工通过学习和掌握这些核心概念,能够更好地理解和开发用友软件的业务应用。