友友NC客户化开发指南

需积分: 10 24 下载量 175 浏览量 更新于2024-07-27 1 收藏 1.03MB DOC 举报
"友nc客户化开发帮助文档,涵盖了NC开发中的会计科目查询、会计期间获取、批量更新等关键操作" 在用友NC客户化开发中,开发者需要掌握一系列的关键技术来适应企业的特定需求。以下是对描述中涉及知识点的详细解释: 1. **会计科目查询**: 在NC系统中,`Accsubjdoc` 是用于处理会计科目的接口。通过调用 `NCLocator.getInstance().lookup(Accsubjdoc.class.getName())` 可以获取到该接口的实例。之后,使用 `queryAccsubjVOs` 方法可以查询所有的会计科目。例如,`itf.queryAccsubjVOs(pk_glorgbook, null, false)` 将返回与指定总账账簿相关的会计科目信息。 2. **会计期间获取**: `AccperiodVO` 是会计期间的对象,用于处理会计期间的业务逻辑。通过调用静态方法 `HYPubBO_Client.queryByCondition(AccperiodVO.class, "nvl(dr,0)=0")` 可以查询当前有效的会计期间。这里的条件字符串 `"nvl(dr,0)=0"` 表示当科目余额的借贷方都为空时,返回所有记录。 3. **批量更新操作**: NC 提供了批量更新数据的能力,这在处理大量数据时非常有用。批量更新分为无参和有参两种方式。 - **无参批量更新**:例如,更新 `bd_deptdoc` 表中的 `dept_code` 字段,先构建 SQL 更新语句 `update bd_deptdoc set dept_code='aaa' where dept_code='bbb'`,然后通过 `session.addBatch(sql)` 添加到批处理队列,最后调用 `session.executeBatch()` 执行批量更新。 - **有参批量更新**:如果有参数,需要创建 `SQLParameter` 对象来存储参数,如 `param.addParam("bbb")`,然后在 `addBatch` 方法中传入 SQL 语句和参数对象,同样通过 `session.executeBatch()` 执行更新。 4. **表单编辑后的处理**: NC 的表单编辑后会有 `afterEdit` 方法,这是用户界面(UI)类需要重写的方法。例如,如果事件 `event.getKey().equals("zd")`,则调用 `execHeadEditFormulas()` 来执行表头的编辑公式。对于特定表格 `st_xx_jyzy`,在编辑后可能需要执行特定的业务逻辑。 5. **事件驱动编程**: `BillEditEvent` 是表单编辑事件,包含了对表单修改的信息。开发者可以根据事件的不同类型和表单代码执行相应的处理。例如,在表单编辑后,可以检查是否触发了计算公式或者执行其他自定义逻辑。 以上就是用友NC客户化开发中的几个核心知识点,包括了数据查询、数据更新以及事件处理等常见操作。在实际开发过程中,开发者还需要熟悉NC的架构、API接口、业务流程以及数据库模型,以便更高效地进行客户化定制。