NCAPI解读.docx

上传人:b****7 文档编号:10630244 上传时间:2023-02-22 格式:DOCX 页数:98 大小:755.42KB
下载 相关 举报
NCAPI解读.docx_第1页
第1页 / 共98页
NCAPI解读.docx_第2页
第2页 / 共98页
NCAPI解读.docx_第3页
第3页 / 共98页
NCAPI解读.docx_第4页
第4页 / 共98页
NCAPI解读.docx_第5页
第5页 / 共98页
点击查看更多>>
下载资源
资源描述

NCAPI解读.docx

《NCAPI解读.docx》由会员分享,可在线阅读,更多相关《NCAPI解读.docx(98页珍藏版)》请在冰豆网上搜索。

NCAPI解读.docx

NCAPI解读

NC开发帮助

作者:

jieely

✧A

ØAccsubjdoc

//通过系统提供的会计科目接口查询所有会计科目

Accsubjdocitf=

(Accsubjdoc)NCLocator.getInstance().lookup(Accsubjdoc.class.getName());

nc.vo.bd.b02.AccsubjVO[]targetSubjVos=itf.queryAccsubjVOs(pk_glorgbook,null,false);

AccperiodVO

//查询会计期间

AccperiodVO[]accperiodVOs=

(AccperiodVO[])HYPubBO_Client.queryByCondition(AccperiodVO.class,"nvl(dr,0)=0");

ØaddBetch

a.无参批量更新

Stringsql="updatebd_deptdocsetdept_code=‘aaa’wheredept_code=‘bbb’";

session.addBatch(sql);//添加需要执行的同构SQL

introws=session.executeBatch();//执行

b.有参批量更新

Stringsql="updatebd_deptdocsetdept_code=‘aaa’wheredept_code=?

”;

SQLParameterparam=newSQLParameter();//构造参数对象

param.addParam(“bbb”);//添加参数

session.addBatch(sql,param);//添加需要执行的同构SQL

introws=session.executeBatch();//执行

ØafterEdit

@Override//表的编辑后赋默认值方法(UI类重写方法)*先执行afterEdit,后执行公式*

publicvoidafterEdit(BillEditEventevent)

{

super.afterEdit(event);

if(event.getKey().equals("zd"))

{

this.getBillCardPanel().execHeadEditFormulas();

}

elseif(event.getTableCode().equals("st_xx_jyzy")&&event.getKey().equals("code"))

{

this.getBillCardPanel().setBodyValueAt(newUFBoolean('N'),event.getRow(),"jyzt");

this.getBillCardPanel().setBodyValueAt(newUFBoolean('Y'),event.getRow(),"zyzt");

}

}

ØALTER

//增加字段

ALTERTABLEtableaADDnewcolchar(20)

//更改字段名

ALTERTABLEtableaCHANGEnewcolnewrowchar(50)

//更改字段类型

ALTERTABLEtableaMODIFYnewrowchar(30)

//删除字段

ALTERTABLEtableaDROPnewrow

ØArrayList

ArrayListlist=newArrayList();

…..

list.add();

SettleVO[]vos=newSettleVO[list.size()];

vos=list.toArray(vos);//List与VO数组转换

✧B

ØBillCode

//得到单据号

BillcodeGeneraterbillNoGen=newBillcodeGenerater();

billno=billNoGen.getBillCode("TI55","0001",null,null);

ØBillData

BillDatabd=getBillCardPanel().getBillData();

ØBillItem

BillItemitem=bd.getBodyItem(NodeInfo.NAME_TABLECODE1,"ialloctype");

ØBillField

@Override//修改单据状态时需重写此方法

protectedIBillFieldcreateBillField()

{

returnBillField.getInstance();

}

ØButton

//自定义按钮

publicButtonVOgetFujian_btn()

{

ButtonVObtnVO=newButtonVO();

btnVO.setBtnNo(IprivateButton.Fujian_btn);

btnVO.setBtnName("附件管理");

btnVO.setHintStr("附件管理");

btnVO.setOperateStatus(newint[]{IBillOperate.OP_NOTEDIT});//在非新增和非编辑状态下可用

returnbtnVO;

}

//在UI中设置按钮状态

getButtonManager().getButton(nc.ui.trade.button.IBillButton.Add).setEnabled(false);

ØByte[]

publicstaticfinalbyte[]m_ENTER={0x0d,0x0a};//换行符ASCII码:

0x0d0x0a

✧C

ØCaseWhen

ORACLE:

Case…..When语句

SELECT

(CASEdrWHEN0THEN'有效'

WHEN1THEN'无效'

END)AS显示

FROMbd_corp

Øcatch

try{

}

catch(DbExceptione){

//如果是语法错误

if(e.isBadSQLGrammar()){

Logger.error("语法错误:

"+e.getMessage(),e);

}

//如果是数据一致性错误

if(e.isDataIntegrityViolation()){

Logger.error("数据一致性错误:

"+e.getMessage(),e);

}

}

ØCheckRule

<前台校验类>XXXUICheckRule

//校验数据是否重复

publicIUniqueRule[]getItemUniqueRules(Stringtablecode){

if("cl_gg_ytzwlb".equals(tablecode))

{

IUniqueRule[]unique=null;

unique=newIUniqueRule[]{

newUniqueRule("座类编码不能重复",newString[]{("zlbm")})

};

returnunique;

}

returnnull;

}

//校验是否为空

publicICheckRule[]getItemCheckRules(Stringtablecode){

CheckRule[]rules=newCheckRule[]{

newCheckRule("【NC结算方式编码】","ncsettlecode",false,null,null)

};

returnrules;

}

ØcheckPrerequisite

//对于控制集团不能打开节点,只有公司可以打开节点的处理

//在ClientUI中覆写Toftpanel的方法:

 publicStringcheckPrerequisite()

 {

  Stringpk_corp=_getCorp().getPk_corp();

  if(pk_corp.equals("0001")){

   return"当前处于集团,此功能点无法进入";

  }

  returnnull;

 }

ØClientEnvironment

ØColumn

//单据模板获得jtable可通过getBillCardPanel().getBillTable()

//获取列表模型 TableColumnModel tcm=table.getColumnMode(); 

 //第n列设置为隐藏 

 TableColumn hideColumn = table.getColumn("第n列"); 

 //隐藏第n列设置 

 tcm.removeColumn(hideColumn); 

 //显示第n列设置 

 tcm.addColumn(hideColumn); 

 //把i列移动到第j列 

 tcm.moveColumn(i, j);

getBillCardPanel().getBodyPanel().hideTableCol(strKey);//隐藏

getBillCardPanel().getBodyPanel().showTableCol(strKey);//显示

ØComboBox

UIComboBoxtypeCom=(UIComboBox)this.getBillCardPanel().getBodyItem("x").getComponent();

typeCom.addItems(Object[]obj);

ØConnection

PersistenceManagersessionManager=PersistenceManager.getInstance();

JdbcSessionsession=sessionManager.getJdbcSession();

Connectioncon=session.getConnection();

PreparedStatementstmt=null;

stmt=con.prepareStatement(con,sql);

finally{

stmt.close();

con.close();

sessionManager.release();}

ØConnectException

//启动NC时抛异常

.ConnectException:

Connectionrefused:

connect

原因:

80端口被占用

ØConditionVO

//取查询对话框VO值

ConditionVO[]conVOs=getQueryDLG().getConditionVO();

for(inti=0;i

{

if("billdate".equals(conVOs[i].getFieldCode()))

{

billdate=conVOs[i].getValue();

}

elseif()

{

……

}

}

ØCoperatorid

//操作员所对应业务员

cworkpsnid->getColValue(bd_psndoc,pk_psndoc,pk_psnbasdoc,getColValue(sm_userandclerk,pk_psndoc,userid,coperatorid))

ØcreateQueryDLG()

/**

*重写父类方法,取得查询对话框,如有动态显示下拉框和默认值需重写此方法

*/

protectedQueryDLGcreateQueryDLG(){

FundReportDLGdlg=newFundReportDLG();

dlg.setTempletID(

getUIControl()._getPk_corp(),

this.getModuleCode(),

getUIControl()._getOperator(),

null);

//设置默认日期

QueryConditionVO[]qryvos=dlg.getConditionDatas();

for(inti=0;i

if(qryvos[i].getFieldCode().equals("billdate")){

qryvos[i].setValue(getClientEnvironment().getDate().toString());

break;

}

}

returndlg;

}

ØCARDPANEL

if(clientUI.isListPanelSelected())//如果是选取的列表界面

clientUI.setCurrentPanel(BillTemplateWrapper.CARDPANEL);

ØControl

controluserpasswords2//运行【用户帐户】

ØCustflag

说明:

0客户

1供应商

2既是客户又是供应商

3既是供应商又是客户

✧D

ØDapCall

nc.ui.pf.pub.DapCall

getPkcorp()//取公司

getOperator()//取操作员

ØdataNotNullValidate

//验证不能为空的字段

getBillCardPanelWrapper().getBillCardPanel().dataNotNullValidate();

ØdataSource

StringdataSource=DataSourceCenter.getInstance().getSourceName();//取当前数据源

ØDate

UFDatedate=ClientEnvironment.getInstance().getDate();//得到登陆日期

selectto_char(last_day(to_date('20100625','yyyymmdd')),'dd')fromdual;//得到每月多少天

ØDateFormat

publicclassDateTest{

publicstaticvoidmain(String[]args){

Stringdates="2007-8-14";//日期时间

DateFormatdf=newSimpleDateFormat("yy-MM-dd");//日期格式化辅助类

Dated;

try{

d=df.parse(dates);//格式化日期

if(d.getDay()==0||d.getDay()==6)//判断是不是双休日

System.out.println("日期:

["+dates+"]是双休日");

else

System.out.println("日期:

["+dates+"]不是双休日");

}catch(ParseExceptione){

e.printStackTrace();

}

}

}

ØdataNotNullValidate

publicvoidonBoSave()throwsException{

getBillCardPanelWrapper().getBillCardPanel().getBillData().dataNotNullValidate();//UAP模板设置必输项

booleanflag=true;

try

{

super.onBoSave();

}

catch(IllegalArgumentExceptione)

{

Logger.info(e);

flag=false;

}

catch(Exceptione)

{

if(flag)

this.getSelfUI().showErrorMessage("【资产名称】已存在,请检查");

return;

}

super.onBoRefresh();

}

ØDecode

DECODE的语法:

DECODE(value,if1,then1,if2,then2,if3,then3,...,else)

表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。

通过一些函数或计算替代value,是可以使DECODE函数具备大于、小于或等于功能。

ØDelete

删除废数据的方法如下:

有个表有3个字段ID,PID,NAME;用父子结构来保存树的信息。

其中ID代表节点编号,PID是父节点编号;

由于删除的时候只删除了ID=id的记录,没有把所有PID指向id的数据删除,导致大量无用的数据滞留

DELETEFROMTEST1

WHEREIDIN(SELECTID

FROMTEST1

MINUS

SELECTID

FROMTEST1

STARTWITHPIDISNULL

CONNECTBYPRIORID=PID);

//删除表中重复记录:

DELETEFROMaa1

WHEREROWIDIN(SELECTrd

FROM(SELECTROWIDrd,

ROW_NUMBER()OVER(PARTITIONBYbm,mcORDERBYROWID)rn

FROMa)

WHERErn<>1);

ØdelLine

//表体增删行的操作,注意加上这一句代码

if(event.getKey().equals("vdef2"))

{

for(inti=0;i

{

this.getBillCardPanel().getBodyPanel().getTable().selectAll();

this.getBillCardPanel().delLine();

}

for(intj=0;addnum.intValue()>0&&j

{

this.getBillCardPanel().addLine();

this.getBillCardPanel().setBodyValueAt(""+(j+1),j,"code");

}

}

ØDesktopPanel

//nc.ui.sm.desktop.DesktopPanel

privatevoidinitialize(){

//============TODOmodifybyjtxr_jieely【环保部项目专用】登陆后自动隐藏左侧树状条

Stringpk_corp=nc.ui.pub.ClientEnvironment.getInstance().getCorporation().getPrimaryKey();

if("1002".equals(pk_corp))//只针对144001公司,主键为1002

{

setLayout(newBorderLayout());

setBackground(newColor(0xC1CCDB));

centerPanel=newJPanel(newBorderLayout());

centerPanel.setOpaque(false);

centerPanel.setBorder(BorderFactory.createEmptyBorder(5,3,3,5));

centerPanel.add(getTabbedPane(),BorderLayout.CENTER);

add(centerPanel,BorderLayout.CENTER);

add(getSysFuncBtnPanel(),BorderLayout.NORTH);

return;

}

//============END2010-08-25

setLayout(newBorderLayout());

setBackground(newColor(0xC1CCDB));

centerPanel=newJPanel(newBorderLayout());

centerPanel.setOpaque(false);

centerPanel.setBorder(BorderFactory.createEmptyBorder(0,3,2,3));

centerPanel.add(getSingleSidZoomPane(),BorderLayout.WEST);

centerPanel.add(getTabbedPane(),BorderLayout.CENTER);

add(centerPanel,BorderLayout.CENTER);

add(getSysFuncBtnPanel(),BorderLayout.NORTH);

}

ØDetailReportBaseEx

//报表UI类中的反注册按钮方法

protectedvoidsetPrivateButtons(){

this.unRegisterButton(ButtonAssets.m_boRefresh);

this.unRegisterButton(ButtonAssets.m_boGroup);

this.unRegisterButton(ButtonAssets.m_boFilter);

this.unRegisterButton(ButtonAssets.m_boCross);

this.unRegisterButton(ButtonAssets.m_boSort);

}

Ødialog

/**

*启用系统运行提示框避免造成假死现象

*/

privatevoidonButton_import()

{

//该操作是耗时操作,所以启用系统运行提示框

RunnablerunImpDoc=newRu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1