找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 6611|回复: 9

[经验] NC开发常用代码

[复制链接]
发表于 2009-10-14 14:39:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
1.查询条件主子转换
public void onBoQuery() throws Exception{
        StringBuffer strWhere = new StringBuffer();
        if (askForQueryCondition(strWhere) == false)
            return;// 用户放弃了查询
        
        SuperVO[] queryVos = queryHeadVOs(convertSqlWhere(strWhere,"kyss_install_b",
                new String[]{"kyss_install_b.vdebugid","kyss_install_b.vinstallid","kyss_install_b.dhd_spname"},
                "pk_install"));
        getBufferData().clear();
        addDataToBuffer(queryVos);
        updateBuffer();
    }
    /**
     * 转换查询模板中的子表条件为主表条件,子表条件应与查询模板中一致
     * @param strWhere
     * @param tab_b 子表名
     * @param fields 子表条件项
     * @param refField 关联的主表pk
     * @return
     * @throws Exception
     */
    public String convertSqlWhere(StringBuffer strWhere,String tab_b,String[] fields,String refField) throws Exception{
        String str = "";
        String newSql = strWhere.toString();
        for (int i = 0; i < fields.length; i++) {
            ConditionVO[] vo =
                ((HYQueryDLG) getQueryUI()).getConditionVOsByFieldCode(fields[i]);
            if (!Toolkit.isEmpty(vo)) {
                if (!Toolkit.isEmpty(vo[0].getValue())) {
                    str = vo[0].getValue();
                }
                if (!Toolkit.isEmpty(vo[0].getValue())) {
                    newSql = Toolkit.replaceAll(newSql, fields[i], "'1'");
                    newSql = Toolkit.replaceAll(newSql, str, "1");
                    
                    newSql = newSql + " and "+refField+" in (";
                    newSql = newSql + " select pk_install from "+tab_b;
                    newSql = newSql + " where "+fields[i]+" = '" + str + "' and nvl(dr, 0) = 0)";
                }
            }
               
        }
        return newSql;
    }
   
   
getBillCardPanel().getBillModel("costs").setValueAt(oVer,arow,"pver");
//修改行状态
bm.setRowState(arow, BillModel.MODIFICATION);
2.判断表体列不重复
public int uniqueCheck(BillModel bm,String[] code){
        int res= -1;
        HashMap hm=new HashMap();
        for(int i=0;i<bm.getRowCount();i++){
            String key="key";
            for(int j=0;j<code.length;j++){
                key+=bm.getValueAt(i,code[j])==null?"":bm.getValueAt(i,code[j]).toString();
            }
            if(hm.containsKey(key)){
                return i+1;
            }
            hm.put(key, i+"");
        }
        return res;
    }
    public int uniqueCheck(CircularlyAccessibleValueObject[] cvos,String[] code){
        int res= -1;
        HashMap hm=new HashMap();
        for(int i=0;i<cvos.length;i++){
            String key="key";
            for(int j=0;j<code.length;j++){
                key += cvos[i].getAttributeValue(code[j]) == null? "" : cvos[i].getAttributeValue(code[j]).toString();
            }
            if(hm.containsKey(key)){
                return i+1;
            }
            hm.put(key, i+"");
        }
        return res;
    }
 楼主| 发表于 2009-10-14 14:40:38 | 显示全部楼层
发表于 2011-1-7 13:58:17 | 显示全部楼层
回复 1# x114944880


    谢谢  学习了
发表于 2011-1-7 14:20:07 | 显示全部楼层
你是内部卡发人员?程序写的不错
发表于 2011-12-23 13:23:01 | 显示全部楼层
好东西,一定要支持
回复 点赞 拍砖

使用道具 举报

发表于 2012-3-29 16:39:43 | 显示全部楼层
虽然不懂,应该有用的
回复 点赞 拍砖

使用道具 举报

发表于 2012-8-9 16:39:16 | 显示全部楼层
回复 点赞 拍砖

使用道具 举报

发表于 2012-8-29 17:51:06 | 显示全部楼层
回复 点赞 拍砖

使用道具 举报

发表于 2012-11-14 08:42:28 | 显示全部楼层
回复 点赞 拍砖

使用道具 举报

发表于 2018-7-30 13:57:58 | 显示全部楼层
回复 点赞 拍砖

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-5-12 20:21 , Processed in 0.029314 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表