nc单据开发中自动如何实现自动带值

每当我们需要开发单据的时候,通常会面临一个问题,自动带值的实现,很多人会选择在单据模板中配置编辑公式,这样对于一个字段当然是可以的,但是如果需要带出多个字段,建议用代码实现:

一、在xml中配置编辑事件

                <!-- 表体编辑后事件nc.ui.pubapp.uif2app.event.card.CardBodyAfterEditEvent -->                                   
                <bean class="nc.ui.pubapp.uif2app.event.EventHandlerGroup">                                              
                    <property name="event" value="nc.ui.pubapp.uif2app.event.card.CardBodyAfterEditEvent" />             
                    <property name="handler">                                                                            
                        <bean class="nc.ui.aum.asset_lose_apply.ace.handler.CardBodyAfterEditHandler" />                 
                    </property>                                                                                          
                </bean>                                                                                                  
                <!-- 表头表尾编辑前事件nc.ui.pubapp.uif2app.event.card.CardBodyAfterEditEvent -->                                 
                <bean class="nc.ui.pubapp.uif2app.event.EventHandlerGroup">                                              
                    <property name="event" value="nc.ui.pubapp.uif2app.event.card.CardHeadTailBeforeEditEvent" />        
                    <property name="handler">                                                                            
                        <bean class="nc.ui.aum.asset_lose_apply.ace.handler.CardHeadTailBeforeEditHandler" />            
                    </property>                                                                                          
                </bean>  

二、编写自动带值的类

package nc.ui.aum.asset_lose_apply.ace.handler;

import java.util.Map;

import nc.bs.framework.common.NCLocator;
import nc.itf.uap.IUAPQueryBS;
import nc.jdbc.framework.processor.MapProcessor;
import nc.ui.pubapp.uif2app.event.IAppEventHandler;
import nc.ui.pubapp.uif2app.event.card.CardBodyAfterEditEvent;
import nc.vo.pub.BusinessException;

public class CardBodyAfterEditHandler
        implements
        IAppEventHandler<nc.ui.pubapp.uif2app.event.card.CardBodyAfterEditEvent> {

    @Override
    public void handleAppEvent(CardBodyAfterEditEvent e) {
        IUAPQueryBS bs = NCLocator.getInstance().lookup(IUAPQueryBS.class);
        if ("pk_equip".equals(e.getKey())
                && "id_assetlosebvos".equals(e.getTableCode())) {
            String pk_equip = (String) e.getValue();
 String sql = "select pk_equip,equip_name,spec,model,pk_priority,pk_usedunit,pk_usedunit_v,pk_usedept,pk_user,pk_location,origin_value from pam_equip where pk_equip = '"+pk_equip+"' and nvl(dr,0)=0 ";
            try {
                Map<String, String> map = (Map<String, String>) bs.executeQuery(sql, new MapProcessor());
                if (map == null)
                    return;
                e.getBillCardPanel().setBodyValueAt(map.get("equip_name"),
                        e.getRow(), "equip_name");
                e.getBillCardPanel().setBodyValueAt(map.get("spec"),
                        e.getRow(), "spec");
                e.getBillCardPanel().setBodyValueAt(map.get("model"),
                        e.getRow(), "model");
                e.getBillCardPanel().setBodyValueAt(map.get("pk_priority"),
                        e.getRow(), "pk_priority");
                e.getBillCardPanel().setBodyValueAt(map.get("pk_usedunit"),
                        e.getRow(), "pk_usedunit");
                e.getBillCardPanel().setBodyValueAt(map.get("pk_usedunit_v"),
                        e.getRow(), "pk_usedunit_v");
                e.getBillCardPanel().setBodyValueAt(map.get("pk_usedept"),
                        e.getRow(), "pk_usedept");
                e.getBillCardPanel().setBodyValueAt(map.get("pk_user"),
                        e.getRow(), "pk_user");
                e.getBillCardPanel().setBodyValueAt(map.get("pk_location"),
                        e.getRow(), "pk_location");
                e.getBillCardPanel().setBodyValueAt(map.get("origin_value"),
                        e.getRow(), "origin_value");

            } catch (BusinessException e1) {
                //ExceptionUtils.wrappBusinessException("查询设备信息异常:"+ e1.getMessage());            
            }
        }
    }
}
如此就可以实现自动带值的功能了。

                                                                                              

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NCNCcloud)是以云计算为基础的企业管理软件平台,是国内领先的财务管理、采购管理、库存管理、销售管理、生产管理、人力资源管理、项目与合同管理等集成解决方案。在NC开发WebServices工具包可以为用户提供更加便捷的接口集成方式,实现系统之间的数据交换和业务流程的整合。 针对NC开发WebServices工具包的需求,我们可以采用以下步骤进行开发: 1. 确定需求:与用户沟通,了解用户对WebServices的具体需求和使用场景,明确接口的功能和数据传输需求。 2. 设计接口:根据用户需求,在NC设计WebServices接口,包括接口方法、参数、返回等。 3. 开发接口:借助NC提供的开发工具,编写接口代码,实现接口的调用和数据处理逻辑。 4. 测试和优化:进行接口功能测试,确保接口的正确性和稳定性。根据测试结果进行优化和修复bug。 5. 文档撰写:编写详细的接口文档,包括接口的说明、使用方法、参数说明等,便于其他开发人员和用户使用。 6. 集成部署:将开发好的WebServices工具包集成到NC,确保与NC系统无缝衔接。部署完成后,用户可以通过WebServices接口与NC进行数据交互。 通过开发WebServices工具包,用户可以方便地通过标准的SOAP协议与NC进行集成,实现数据的新增、修改、删除等操作。同时,开发者也可以根据具体需求,使用WebServices接口实现其他定制化功能,如自定义报表生成、数据分析等。 总之,开发NC的WebServices工具包可以为用户提供更加灵活和便捷的系统集成解决方案,提高企业管理效率和业务流程的整合程度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值