NC65开发——单表档案

元数据创建

创建名为sendtype的元数据实体组件

创建显示名称为运输方式的元数据实体

实现业务接口IBDObject(位置:Ref Model/uapbs/METADATA/meta/general_interface.bmf

业务属性接口映射

发布元2数据——生成java源代码——生成建库sql脚本并执行

 

代码生成向导

节点类型选择

包资源管理器窗口,右击项目,“新建”→“其他”,弹出向导对话框,选择“UAP Project development”→“UAP节点开发”→“单表档案节点”

基本信息设置

功能信息:注册功能节点的功能分类信息,上级节点编码需输入功能注册时注册的功能分类编码

菜单信息:注册功能节点的界面显示信息,根据菜单编码决定上级菜单

功能设置:单表档案默认有且只有基本增删改功能,无需修改

包名、接口方法名信息设置:详细设置前后台包名和接口名,建议在此加上统一的父包

参数设置:详细设置脚本所需要的参数,单表档案节点只需设置单据模板类型。

是否发布资源默认勾选,表示向导配置完成后,向导在数据库中自动执行生成的脚本。若不勾选,需要向导配置后在数据库中手动执行。

多语资源设置: 详细设置多语资源的信息,可设置菜单资源ID

资源信息显示: 生成所有资源信息的详细展示,点击下一步将生成表中所列资源

生成所有资源信息的详细展示,生成完毕后的显示界面(报错没关系,最后能全绿就行emmm)

代码结构介绍

公用类

前台类

后台类

### NC65 档案编辑前事件的处理机制 在NC65系统中,据的编辑前事件通常用于在用户尝试修改某项记录之前执行特定逻辑或验证条件。这种机制可以有效防止非法数据输入或者违反业务规则的操作。 #### 1. **编辑前事件的作用** 编辑前事件的主要作用是在用户触发修改操作时拦截并校验当前环境下的合法性条件。如果某些字段未满足预设规则,则阻止用户的进一步操作,并提示相应的错误信息[^1]。 #### 2. **实现方式** 为了实现档案的编辑前事件,可以通过自定义开发的方式完成。以下是具体的技术方案: ##### (1)创建事件处理器类 类似于引用中的 `AceBodyAfterEditHandler` 类的设计思路,需针对编辑前事件编写对应的处理器类。以下是一个示例代码片段: ```java package nc.ui.arap.invoice_req.ace.handler; import nc.ui.pubapp.uif2app.event.IAppEventHandler; import nc.ui.pubapp.uif2app.event.card.CardBodyBeforeEditEvent; import nc.ui.pubapp.uif2app.view.ShowUpableBillForm; /** * 发票申请体编辑前事件<p> * 创建时间: 2023年9月1日 上午10:00:00 * @author 开发者名称 */ public class AceBodyBeforeEditHandler implements IAppEventHandler<CardBodyBeforeEditEvent> { private ShowUpableBillForm billform; /** * 获取billform实例 * * @return billform对象 */ public ShowUpableBillForm getBillform() { return billform; } /** * 设置billform实例 * * @param billform 要设置的对象 */ public void setBillform(ShowUpableBillForm billform) { this.billform = billform; } @Override public void handleAppEvent(CardBodyBeforeEditEvent event) { // 自定义逻辑:在此处添加编辑前的校验逻辑 if (!isValidCondition(event)) { throw new RuntimeException("无法继续编辑,原因:不满足前置条件"); } } /** * 验证是否满足编辑前提条件 * * @param event 当前事件上下文 * @return 是否允许编辑 */ private boolean isValidCondition(CardBodyBeforeEditEvent event) { // 添加具体的校验逻辑 Object fieldToCheck = event.getFieldValue("目标字段名"); return (fieldToCheck != null && !"".equals(fieldToCheck.toString())); } } ``` 此代码实现了对编辑前事件的监听器注册以及基本校验逻辑[^3]。 ##### (2)配置事件绑定关系 除了编写事件处理器外,还需要将其与实际的UI组件关联起来。这一步骤一般通过XML文件或其他元数据方式进行声明式绑定。例如,在据模板定义阶段指定该事件对应的具体类路径。 #### 3. **常见问题排查** 当遇到保存失败等问题时,可能的原因包括但不限于以下几点: - 数据源同步延迟导致前端获取的数据版本过旧; - 后台服务接口返回异常响应未能正确解析; - 客户端缓存冲突引起提交参数丢失或重复提交。 对于此类情况,建议按照以下方法逐一排除: - 清理浏览器缓存重新登录Portal页面测试效果; - 使用调试工具查看网络请求详情确认是否有HTTP错误码发生; - 查阅服务器端的日志文件定位潜在程序缺陷位置。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值