NC客户化开发手册中级篇1.docx
- 文档编号:14008518
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:31
- 大小:40.29KB
NC客户化开发手册中级篇1.docx
《NC客户化开发手册中级篇1.docx》由会员分享,可在线阅读,更多相关《NC客户化开发手册中级篇1.docx(31页珍藏版)》请在冰点文库上搜索。
NC客户化开发手册中级篇1
NC客户化开发手册
前言
目录
前言1
第一章规范篇2
1.1代码规范2
1.2注释规范2
1.3异常规范2
1.4其他规范2
第二章基础篇3
2.1单据信息3
2.1.1获取卡片和列表容器(Panel)3
2.1.2当前界面卡片/列表状态3
2.1.3获取/设置当前单据的操作状态:
3
2.1.4获取选择的树节点3
2.1.5是否单表体3
2.1.6设置单据卡片表头区域比例3
2.1.7设置表体页签状态3
2.1.8获取单据模板上定义的所有字段3
2.2VO的获取和赋值及更新3
2.2.1VO的获取3
2.2.2VO的操作4
2.3字段处理5
2.3.1表头字段值5
2.3.2表体字段值5
2.3.3字段设置可编辑:
5
2.3.4隐藏字段5
2.3.5设置数度5
2.3.6设置字段焦点6
2.4公式6
2.4.1执行、设置公式:
6
2.4.2公式解析器:
6
2.5单据行操作6
2.5.1获取表体选择行6
2.5.2删除表体的自动排序6
2.5.3行编辑状态:
6
2.5.4选中表体所有行6
2.5.5列表下,表头行可多选的实现7
2.5.6行操作(删除,增行等)7
2.6获取系统相关7
2.6.1常量的获取(公司,操作员,时间)7
2.6.2单据号的获取7
2.7程序健壮性及易用性8
2.7.1单据保存时强制调用非空验证方法:
8
2.7.2弹出消息框代码:
8
2.7.3在编辑事件中常用的判断8
2.7.4设置表体没有右键菜单方法8
第三章高级篇8
3.1审批流8
3.2后台预警8
3.3后台任务8
3.4消息8
3.5错误定位(日志分析)8
第一章个性化应用
1
1.1单据常用设置
1.1.1校验是否允许表体为空
修改校验类里的
publicbooleanisAllowEmptyBody(Stringtablecode){
returntrue;
}
1.1.2显示单据中的行号
在client端的xxxxxxCtrl.java中的
publicbooleanisShowListRowNo(){// 显示列表的行号
returntrue;
}
publicbooleanisShowCardRowNo(){ // 显示卡片的行号
returntrue;
}
1.1.3对某个表里的某个字段进行汇总
●在模板中给要汇总的字段的是否合计属性打上勾
●然后再对应的Controller类中修改下面几个方法:
publicbooleanisShowCardRowNo(){
returntrue;
}
publicbooleanisShowCardTotal(){
returntrue;
}
publicbooleanisShowListRowNo(){
returntrue;
}
publicbooleanisShowListTotal(){
returntrue;
}
●再在对应的UI类中相应的方法中添加如下代码:
//自动汇总表体申请拨款金额并给表头的申请拨款金额赋值
getBillCardPanel().setHeadItem("napplytotal",getBillCardPanel().getTotalTableModel().getValueAt(0,1));
napplytotal:
指的是赋值的字段名;
0:
指的是汇总表中的行;1:
指的是汇总表中的列。
1.2单据界面个性化
1.2.1表体为零的,不显示为空,金额以千分位格式显示
列表下千分位显示
getBillListPanel().getParentListPanel().setShowThMark(true);
getBillCardPanel().getBodyPanel().getRendererVO().setShowZeroLikeNull(
false);
//resolved金额以会计格式显示,如:
123,456,789,12
getBillCardPanel().getBodyPanel().getRendererVO().setShowThMark(true);
nc.vo.pub.bill.BillTempletBodyVO[]tbodyvos=(nc.vo.pub.bill.BillTempletBodyVO[])getBillCardPanel().getTempletData().getChildrenVO();
for(intj=0;j if(tbodyvos[j].getPos()==0&&tbodyvos[j].getShowflag()==true){ if(tbodyvos[j].getDatatype().toString().equals("2")){ ((UIRefPane)getBillCardPanel().getHeadItem( tbodyvos[j].getItemkey()).getComponent()) .getUITextField() .setNumShowType(nc.ui.pub.beans.textfield.IUITextFieldNUMShowType.THOUSANDS_SEPARATORS); } } } 1.2.2设置字体颜色 getBillListPanel().getParentListPanel().setCellBackGround(i,key,newColor(252,169,175)); 1.2.3单据组合表头 /** *设置组合表体表头 *@parambill */ publicstaticvoidgroupableTableHeader(BillCardPanelbill){ BillDatabillData=bill.getBillData(); /*wjh追加组合表头利用单据模板上的自定义1开始*/ if(billData.getBodyItems()! =null){ nc.vo.pub.bill.BillTempletBodyVO[]tbodyvos=(nc.vo.pub.bill.BillTempletBodyVO[])bill .getTempletData().getChildrenVO(); for(intj=0;j if(tbodyvos[j].getUserdefine1()! =null &&tbodyvos[j].getUserdefine1().trim().length()! =0){ //由于可能存在多叶签情况,所以要对叶签进行判断 Stringtablecode=tbodyvos[j].getTable_code(); BillScrollPanescrollpane=bill .getBodyPanel(tablecode); GroupableTableHeadertableheaer=(GroupableTableHeader)scrollpane .getTable().getTableHeader(); StringcolName=tbodyvos[j].getUserdefine1(); ColumnGroupcg1=newColumnGroup(colName); addColItem(scrollpane,cg1,tbodyvos[j].getItemkey()); intnjs=1; for(intn=j+1;n if(tbodyvos[n].getUserdefine1()! =null &&tbodyvos[n].getUserdefine1().toString() .trim().length()! =0&&n==j+1){ if(tbodyvos[n].getUserdefine1().equals(colName) &&tbodyvos[n].getTable_code().equals( tablecode)){ addColItem(scrollpane,cg1, tbodyvos[n].getItemkey()); njs++; continue; }else{ if(njs>1){ tableheaer.addColumnGroup(cg1); } break; } }else{ if(njs>1){ tableheaer.addColumnGroup(cg1); } break; } } } } } } /** * *添加组合表头子项王韶勇追加 * * *@paramscrollpane *@paramcolGroup *@paramsColItem */ privatestaticvoidaddColItem(BillScrollPanescrollpane,ColumnGroupcolGroup, StringsColItem){ if(scrollpane.hasHideCol(sColItem)) return; TableColumncol=scrollpane.getShowCol(sColItem); if(col! =null) colGroup.add(col); } 1.2.4多表头 ColumnGroupgroup=newColumnGroup(“表头1”); GroupableTableHeadergt=((GroupableTableHeader)getBillCardPanel().getBillTable("表体名").getTableHeader()); gt.addColumnGroup(group); group.add(getBillCardPanel().getBodyPanel("表体名").getShowCol("列名"); ColumnGroupgroup1=newColumnGroup("祖名"); GroupableTableHeadergt1=((GroupableTableHeader)getBillListPanel().getBodyTable().getTableHeader()); gt1.addColumnGroup(group1); group1.add(getBillListPanel().getBodyTable().getColumnModel().getColumn (2)); group1.add(getBillListPanel().getBodyTable().getColumnModel().getColumn(3)); 1.2.5报表列分组 注释: 详细解释请参看nc.vo.pub.cquery.FldgroupVO FldgroupVO[]vos=newFldgroupVO[3]; FldgroupVOvo1=newFldgroupVO(); //vo1.setPrimaryKey("0001"); vo1.setGroupname("#1机组"); vo1.setGroupid(newInteger(0)); vo1.setGrouptype("0"); vo1.setItem1("3"); vo1.setItem2("2"); vo1.setToplevelflag("Y"); FldgroupVOvo2=newFldgroupVO(); //vo2.setPrimaryKey("0002"); vo2.setGroupname("#2机组"); vo2.setGroupid(newInteger(0)); vo2.setGrouptype("0"); vo2.setItem1("5"); vo2.setItem2("4"); vo2.setToplevelflag("Y"); FldgroupVOvo3=newFldgroupVO(); //vo3.setPrimaryKey("0003"); vo3.setGroupname("#3机组"); vo3.setGroupid(newInteger(0)); vo3.setGrouptype("0"); vo3.setItem1("7"); vo3.setItem2("6"); vo3.setToplevelflag("Y"); vos[0]=vo1; vos[1]=vo2; vos[2]=vo3; //设置字段分组,在此不起作用,使用其下代码alterFieldGroup(vos) //getReportBaseClass().setFieldGroup(vos); //修改表头列分组 getReportBaseClass().alterFieldGroup(vos); 1.2.6单据联查 PfLinkDatalinkQuery=newPfLinkData(); linkQuery.setBillID(单据主键的值); // SFClientUtil.openLinkedQueryDialog("H80103",this.getBillUI(), linkQuery); 1.3系统信息获取 1.3.1当前操作员的人员信息 /** *根据当前操作员查询出人员信息 * *@paramsOperator *@return */ publicstaticPsndocVOgetPsndocByOpreator(StringsOperator){ PsndocVOpsnmanvo=null; try{ //当前操作人关联业务员 UserAndClerkVOclerkVO=((IUserAndClerkQueryService)NCLocator .getInstance().lookup( IUserAndClerkQueryService.class.getName())) .findByUserID(sOperator); if(clerkVO==null||clerkVO.getPk_psndoc()==null ||clerkVO.getPk_psndoc().length()==0){ returnnull; } PsnBasManUnionVO[]psnBasManUnionVOs=((IPsnDocQueryService)NCLocator .getInstance().lookup(IPsnDocQueryService.class.getName())) .queryPsnUnionVosByUnionCondition("bd_psnbasdoc.pk_psnbasdoc='" +clerkVO.getPk_psndoc()+"'"); //人员管理档案VO psnmanvo=psnBasManUnionVOs[0].getPsnmanvo(); returnpsnmanvo; }catch(Exceptionex){ ex.printStackTrace(); } returnpsnmanvo; } publicstaticUserAndClerkVO[]getOpreatorsByClerkId(StringClerkId){ //当前操作人关联业务员 UserAndClerkVO[]OpreatorVOs=null; try{ //根据人员档案主键查询出人员管理档案主键 IJHPubBillQrypk=(IJHPubBill)NCLocator.getInstance().lookup(IJHPubBill.class); Stringpsndocpk=Qrypk.QryManPKByBasPK(ClerkId); OpreatorVOs=((IUserAndClerkQueryService)NCLocator .getInstance().lookup( IUserAndClerkQueryService.class.getName())) .queryByClerkId(psndocpk); }catch(ComponentExceptione){ e.printStackTrace(); }catch(BusinessExceptione){ e.printStackTrace(); } returnOpreatorVOs; } 通过查找业务关联的操作员 publicstaticUserAndClerkVO[]getOpreatorsByClerkId(StringClerkId){ //当前操作人关联业务员 UserAndClerkVO[]OpreatorVOs=null; try{ //根据人员档案主键查询出人员管理档案主键 IJHPubBillQrypk=(IJHPubBill)NCLocator.getInstance().lookup(IJHPubBill.class); Stringpsndocpk=Qrypk.QryManPKByBasPK(ClerkId); OpreatorVOs=((IUserAndClerkQueryService)NCLocator .getInstance().lookup( IUserAndClerkQueryService.class.getName())) .queryByClerkId(psndocpk); }catch(ComponentExceptione){ e.printStackTrace(); }catch(BusinessExceptione){ e.printStackTrace(); } returnOpreatorVOs; } Qrypk.QryManPKByBasPK(ClerkId)实现方法为: publicStringQryManPKByBasPK(StringpsnbasdocPK)throwsBusinessException{ Stringsql="selectpk_psnbasdocfrombd_psndocwherepk_psndoc=? "; Stringpk_psndoc=null; SQLParameterpara=newSQLParameter(); para.addParam(psnbasdocPK); ListpsndocPK=(List)this.executeQuery(sql,para,newColumnListProcessor( 1)); for(Iteratoriter=psndocPK.iterator();iter.hasNext();){ pk_psndoc=(String)iter.next(); } returnpk_psndoc; } 1.3.2总帐的最小未结帐月份 ICreateCorpQueryServicecc=(ICreateCorpQueryService)getLocator().lookup(ICreateCorpQueryService.class.getName()); //查询总帐的最小未结帐月份 String[]sYearMonth=cc.querySettledPeriod(dwbm,"GL"); 1.3.3IP地址 publicstaticStringgetDefaultLoginIP(){ if(isRunningServer()) returnInvocationInfoProxy.getInstance().getRemoteHost(); else{ Stringip=null; try{ ip=InetAddress.getLocalHost().getHostAddress(); }catch(UnknownHostExceptione){ Logger.error(e.getMessage(),e); thrownewBusinessRuntimeException(e.getMessage()); } returnip; } } privatestaticbooleanisRunningServer(){ returnRuntimeEnv.getInstance().isRunningInServer(); } 1.3.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NC 客户 开发 手册 中级