




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
報(bào)表語義模型(數(shù)據(jù)加工:返回結(jié)果集方式)數(shù)據(jù)加工方式:1.返回查詢SQL;2?返回結(jié)果集DataSet;3?返回?cái)?shù)據(jù)表。實(shí)現(xiàn)方式基本一致,可以參照系統(tǒng)原有報(bào)表語義模型一、新建報(bào)表查詢?nèi)肟陬?,初始化?bào)表字段數(shù)據(jù)加工查詢業(yè)務(wù)處理接口的定義:packagenc.itf.fbm.paperbill.query;importnc.pub.smart.data.DataSet;importnc.vo.pub.BusinessException;importcom.ufida.dataset.IContext;/**票據(jù)信息查詢/票據(jù)池額度查詢接口*@author溫燕榮WYR@date2014-04-15*/publicinterfaceIFbmQueryPaperBillService{/***票據(jù)信息查詢@paramcontext@return@throwsBusinessException*/publicDataSetqueryPaperBillInfo(IContextcontext)throwsException;/***票據(jù)池額度查詢接口@paramcontext@return@throwsBusinessException*/publicDataSetqueryPaperBillPoolLimit(IContextcontext)throwsException;數(shù)據(jù)加工入口類,初始化報(bào)表字段packagenc.itf.fbm.paperbill.query;importjava.util.ArrayList;importjava.util.List;mon.NCLocator;importnc.pub.smart.data.DataSet;importnc.pub.smart.metadata.DataTypeConstant;importnc.pub.smart.metadata.Field;importnc.pub.smart.metadata.MetaData;importnc.vo.obm.paperbill.query.PaperBillPoolVO;importcom.ufida.dataset.IContext;/**票據(jù)池額度查詢?nèi)肟陬?@author溫燕榮WYR@date2014-04-15*/publicclassQueryPaperPoolLimitService{privatestaticfinalMetaDatametaData;publicQueryPaperPoolLimitService(){super();}/***獲得結(jié)果集*@paramcontext報(bào)表界面查詢傳進(jìn)來的參數(shù)(查詢條件=值,系統(tǒng)一些默認(rèn)參數(shù)等)@return*/publicstaticDataSetqueryPJCAmt(IContextcontext)throwsException{〃調(diào)用報(bào)表查詢業(yè)務(wù)處理接口,IFbmQueryPaperBillServicegatherservice=(IFbmQueryPaperBillService)NCLocator.getInstance().lookup(IFbmQueryPaperBillService.class.getName());DataSetresultDataSet=gatherservice.queryPaperBillPoolLimit(context);setPrecision(resultDataSet);returnresultDataSet;}〃初始化報(bào)表要顯示的字段,包括查詢條件字段也在內(nèi)static{metaData=newMetaData();ListvField>fields=makeList();〃報(bào)表顯示字段Fieldf=newField();f.setFldname(PaperBillPoolVO.ORGNAME);f.setCaption(”財(cái)務(wù)組織名稱”);f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.ACCTNAME);f.setCaption(”機(jī)構(gòu)名稱");f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.ACCTNO);f.setCaption(”賬號(hào)”);f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.PJCNO);f.setCaption("票據(jù)池編號(hào)");f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.PJCKAMT);f.setCaption("票據(jù)池可開票額度”);f.setPrecision(17);f.setDataType(DataTypeConstant.BIGDECIMAL);f.setScale(4);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.CUSKAMT);f.setCaption("客戶剩余可開票額度”);f.setPrecision(17);f.setDataType(DataTypeConstant.BIGDECIMAL);f.setScale(4);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.CUSEAMT);f.setCaption(”客戶有效開票額^”);f.setPrecision(17);f.setDataType(DataTypeConstant.BIGDECIMAL);f.setScale(4);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.CORNAME);f.setCaption(”分支機(jī)構(gòu)名稱”);f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.CORKAMT);f.setCaption(”分支機(jī)構(gòu)剩余可開票額度');f.setPrecision(17);f.setDataType(DataTypeConstant.BIGDECIMAL);f.setScale(4);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.REQRESERVED1);f.setCaption^請(qǐng)求備用字段1");f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.REQRESERVED2);f.setCaption^請(qǐng)求備用字段2");f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.REPRESERVED3);f.setCaption(”響應(yīng)備用字段3");f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.REPRESERVED4);f.setCaption(”響應(yīng)備用字段4");f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);〃查詢字段f=newField();f.setFldname(PaperBillPoolVO.PK_ORG);f.setCaption('財(cái)務(wù)組織PK");f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.QUERY_ACCTNO);f.setCaption(”賬號(hào)-查詢”);f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.QUERY_PJCNO);f.setCaption(”票據(jù)池編號(hào)-查詢”);f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.MFLAG);f.setCaption(”是否票據(jù)池主申請(qǐng)賬號(hào)-查詢”);f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.NEXTTAG);f.setCaption(”下頁標(biāo)識(shí)-查詢”);f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.REQRESERVEDl);f.setCaption("請(qǐng)求備用字段1-查詢”);f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.REQRESERVED1);f.setCaption("請(qǐng)求備用字段2-查詢”);f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);metaData.addField(fields.toArray(newField[]{}));}/***構(gòu)造list*@param<T>@return*/publicstatic<T>ListvT>makeList(){returnnewArrayList<T>();}〃字符串類型字段統(tǒng)一設(shè)置字段長度privatestaticvoidsetPrecision(DataSetresultDataSet){for(Fieldf:resultDataSet.getMetaData().getFields()){if(f.getDataType()==DataTypeConstant.STRING){f.setPrecision(300);}}}/***獲得票據(jù)池額度元數(shù)據(jù)(相當(dāng)于代碼寫一個(gè)元數(shù)據(jù))**@return*/publicstaticMetaDatagetPJCAmtrMetaData(){returnmetaData;}}二、數(shù)據(jù)加工業(yè)務(wù)處理〃注意:我這個(gè)是(銀企直聯(lián))NC在線查詢銀行數(shù)據(jù)的代碼,不用完全參照〃我這里就舉例(票據(jù)池額度查詢)packagenc.impl.fbm.paperbill.query;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importnc.bs.fbm.paperbill.PaperBillService;mon.NCLocator;importnc.itf.fbm.paperbill.query.IFbmQueryPaperBillService;importnc.itf.fbm.paperbill.query.QueryPaperBillInfoService;importnc.itf.fbm.paperbill.query.QueryPaperPoolLimitService;importnc.itf.obm.paperbill.query.IObmQueryPaperBillService;importnc.pub.smart.data.DataSet;importnc.pub.smart.metadata.Field;importnc.pub.smart.metadata.MetaData;importnc.vo.fbm.paperbill.constant.PaperBillFbmOrderType;importnc.vo.obm.paperbill.constant.PaperBillObmConstant;importnc.vo.obm.paperbill.query.PaperBillInfoVO;importnc.vo.obm.paperbill.query.PaperBillPoolVO;importnc.vo.pub.BusinessException;importnc.vo.pub.query.ConditionVO;importcom.ufida.dataset.IContext;importcom.ufida.report.anareport.FreeReportContextKey;/**票據(jù)信息查詢/票據(jù)池額度查詢接口實(shí)現(xiàn)類**@author溫燕榮WYR*@date2014-04-15*/publicclassFbmQueryPaperBillServiceImpIextendsPaperBillServiceimplementsIFbmQueryPaperBillService{privateIObmQueryPaperBillServiceiObmQueryPaperBillService;〃這一步可以不需要去理解,當(dāng)不存在就可以了privatestaticStringbillfunc=PaperBillObmConstant.PAPERQUERY;/***票據(jù)池額度查詢@paramcontext@return@throwsBusinessException*/@OverridepublicDataSetqueryPaperBillPoolLimit(IContextcontext)throwsException{〃獲取查詢條件值ConditionVO[]conditionvos=(ConditionVO[])context.getAttribute(FreeReportContextKey.KEY_REPORT_QUERYCONDITIONVOS);DataSetresultDataSet=newDataSet();HashMapvString,String>hashmap=newHashMapvString,String>();//獲取查詢條件(key,值)對(duì)應(yīng)if(conditionvos!=null&&conditionvos.length>0){//執(zhí)行了查詢for(ConditionVOconditionvo:conditionvos){hashmap.put(conditionvo.getFieldCode(),conditionvo.getValue());}〃這一步可以不需要去理解,當(dāng)不存在就可以了Stringbanktype=getbanktype(hashmap.get(PaperBillPoolVO.QUERY_ACCTNO));〃這一步可以不需要去理解,當(dāng)不存在就可以了〃根據(jù)當(dāng)前界面VO獲取銀行的信息類createBankInfoClass(banktype,billfunc,PaperBillFbmOrderType.QUERYBILLPOOLLIMIT)/**這一步是獲取查詢條件值組裝成查詢vo(自己新建一個(gè)VO【PaperBillPoolVO】,記得加*上必須字段pk_org和orgname,前者是PK查詢使用,后者是顯示名稱,初始化字段類里*面也必須有),我這里是按照不同銀行動(dòng)態(tài)調(diào)用各個(gè)handler*/〃組裝發(fā)送指令VOPaperBillPoolVOpoolvo=(PaperBillPoolVO)abstractBankInfo.getQueryBankHandlerClass(abstractBankInfo).changeQueryPaperBillPoolVO(hashmap);//查詢條件值可能要先暫存,待返回?cái)?shù)據(jù)集再把對(duì)應(yīng)查詢條件值設(shè)值回去,不然查不出數(shù)據(jù)//也就是查詢條件是什么值,最終結(jié)果集對(duì)應(yīng)的查詢字段值也必須是什么值//看需求,報(bào)表字段有的時(shí)候需要建兩種,一種是查詢,一種是顯示結(jié)果,進(jìn)行分開〃這一步是報(bào)表數(shù)據(jù)邏輯處理〃發(fā)送查詢指令業(yè)務(wù)接口PaperBillPoolVO[]paperBillPoolVOs=null;paperBillPoolVOs=getiObmQueryPaperBillService().queryPaperBillPoolLimit(newPaperBillPoolVO[]{poolvo});〃獲取報(bào)表查詢條件之后經(jīng)過一些業(yè)務(wù)處理后返回的最終結(jié)果數(shù)據(jù)〃接收發(fā)送指令返回?cái)?shù)據(jù),進(jìn)行數(shù)據(jù)轉(zhuǎn)換,返回報(bào)表界面〃把處理好的結(jié)果,可以是返回ArrayList或者對(duì)象數(shù)組PaperBillPoolVO[]resultDataSet=getPjcAmtRstProcessData(paperBillPoolVOs);〃結(jié)果轉(zhuǎn)換成DataSet}else{〃沒有執(zhí)行查詢MetaDatametaData=QueryPaperPoolLimitService.getPJCAmtrMetaData();resultDataSet.setMetaData(metaData);}returnresultDataSet;}〃下面就是把轉(zhuǎn)換成報(bào)表顯示數(shù)據(jù)DataSet格式,這里是固定的換個(gè)VO就能用/***票據(jù)池額度查詢*銀行返回的指令VO數(shù)據(jù)*轉(zhuǎn)換成報(bào)表顯示數(shù)據(jù)DataSet*@author溫燕榮WYR*@date2014-4-17*@parampaperBillPoolVOs*@return*@throwsBusinessException*/publicDataSetgetPjcAmtRstProcessData(PaperBillPoolVO[]paperBillPoolVOs)throwsBusinessException{DataSetresultDataSet=newDataSet();MetaDatametaData=QueryPaperPoolLimitService.getPJCAmtrMetaData();resultDataSet.setMetaData(metaData);if(paperBillPoolVOs==nullIIpaperBillPoolVOs.length==0){returnresultDataSet;}Field[]fields=metaData.getFields();ListvObject[]>reportList=newArrayList<Object[]>();for(PaperBillPoolVOvo:paperBillPoolVOs){if(vo==null){continue;}Object[]rowData=newObject[fields.length];for(intk=0;k<fields.length;k++){StringfldName=fields[k].getFldname();rowData[k]=vo.getAttributeValue(fldName);}reportList.add(rowData);}resultDataSet.setDatas(reportList.toArray(newObject[0][fields.length]));returnresultDataSet;}〃從這里到最后面的代碼不用去理會(huì)了/***@paramiObmQueryPaperBillService要設(shè)置的iObmQueryPaperBillService*/publicvoidsetiObmQueryPaperBillService(IObmQueryPaperBillServiceiObmQueryPaperBillService){this.iObmQueryPaperBillService=iObmQueryPaperBillService;/***@returniObmQueryPaperBillService*/publicIObmQueryPaperBillServicegetiObmQueryPaperBillService(){if(iObmQueryPaperBillService==null){iObmQueryPaperBillService=NCLocator.getInstance().lookup(IObmQueryPaperBillService.class);}returniObmQueryPaperBillService;}〃根據(jù)銀行賬戶子戶PK獲取銀行代碼,如:工商銀行00015icbcpublicStringgetbanktype(Stringbanktype)throwsBusinessException{Stringnbanktype=banktype;if(nbanktype!=null){if(nbanktype.indexOf(",")!=-1){thrownewBusinessException("[賬號(hào)]不能多選!”);}nbanktype=getPaperBillHandler().getNetbankinftpCodeByAccount(nbanktype);returnnbanktype;}returnnull;}三、語義模型-XX(預(yù)置、集團(tuán)、全局)設(shè)置1.新建一個(gè)語義模型文件,來到【語義模型設(shè)計(jì)器】界面,第一步“選擇表”(如果不會(huì)說明你好高騖遠(yuǎn));注意:字段編碼與字段表達(dá)式,不能修改!
2?報(bào)表字段,這里就全選,不用顯示的自由報(bào)表不設(shè)置顯示就行:語義檯型設(shè)計(jì)器X語義檯型設(shè)計(jì)器X4描述器3迭擇宇段43迭擇宇段4描述器確定確定取消埶據(jù)加工設(shè)計(jì)器X|編碼Pjcamtinfo—1名稱霞據(jù)迪額度信息]選項(xiàng)宇段編碼字段容稱字段表達(dá)式數(shù)據(jù)類型位數(shù)精度主鍵關(guān)聯(lián)啟用權(quán)限zh|編碼:(顯ZF容:克達(dá)式:備注:⑥容稱O編碼過遽克:寧段:函數(shù)符號(hào)票據(jù)迪額度信息(pjcamtinfo)財(cái)箸組織容稱(orgname}查1編參照依賴選中左邊匚TRL+A全增加確疋取消増加宇段X巴函數(shù)選項(xiàng)宇段編碼字段容稱字段表達(dá)式數(shù)據(jù)類型位數(shù)精度主鍵關(guān)聯(lián)啟用權(quán)限zh|編碼:(顯ZF容:克達(dá)式:備注:⑥容稱O編碼過遽克:寧段:函數(shù)符號(hào)票據(jù)迪額度信息(pjcamtinfo)財(cái)箸組織容稱(orgname}查1編參照依賴選中左邊匚TRL+A全增加確疋取消増加宇段X巴函數(shù)分支機(jī)枸容稱(corname)分支機(jī)枸剩余可開票額度(cork機(jī)枸容稱(acctname}~tpjCTTCT7機(jī)構(gòu)窯稱但cctname)賬號(hào)(acctn^...,.票據(jù)迪編號(hào)票拐池可開票額度Cpjckamt}j雷戶剩金可開票額度(cuskarnt看戶有敷開票額度(cuseamt)!語義函數(shù)〕宇符函數(shù)〕日期函數(shù)〕數(shù)學(xué)函數(shù)PUBAPP^rB語義函埶保存完成取消宇段編碼宇段容稱數(shù)據(jù)類型位數(shù)精度1orgname財(cái)勞組級(jí)名稱寧符串型30002acctname機(jī)構(gòu)容稱寧符串型30003acctno賬號(hào)寧符串型30004pjcno票據(jù)池編號(hào)寧符串型30005Ptjckamt票據(jù)池可開票額度數(shù)值型174新増6cuskamt客戶剩金可開票額度數(shù)值型1747cuseamt客戶有敷開票額度數(shù)值型174刪除8corname分支機(jī)枸名稱寧符串型30009corkamt分支機(jī)枸剩余可開票額度數(shù)值型17410reqreservedl請(qǐng)求備用字段1寧符串型300011reqreservedl2請(qǐng)求備用字段2寧符串型300012represerved3響應(yīng)備用字段3寧符串型3000下移13represervetM響應(yīng)備用字段4寧符串型300014pk_org財(cái)箸組級(jí)PK寧符串型3000羞頂15query_acctno賬號(hào)-查詢寧符串型300016query_pjcno票據(jù)迪編號(hào)-查詢宇符串型3000置底17mflag是否票堀迪主申請(qǐng)賬號(hào)-查詢宇符串型300018nexttag下頁標(biāo)識(shí)-查詢宇符串型3000灰色行的字段才是代碼加載岀來的,若岀現(xiàn)白色行的字段是不存在的,需要?jiǎng)h除,灰色的£別除不了!
□選擇克連接條件選項(xiàng)101112宇段編碼宇段容稱宇段克達(dá)式數(shù)據(jù)類型精度主鍵關(guān)聯(lián)啟用權(quán)匡orgn自mmacctnameacctnopjcnopjckamtcuskamtcuseamtcornamecorkamtreqreseivedilreqreseivedl2repressivedl3財(cái)勞組組容稱機(jī)枸名稱賬號(hào)票據(jù)迪編號(hào)票據(jù)迪可開…客戶剩余可…客戶有議開…分支機(jī)枸名稱分支機(jī)枸?!?qǐng)求備用宇…i青求備用宇…響應(yīng)備用宇…namepjcamtinfo.acctnamepjcamtinfo.acctnopjcamtinfo.pjcnopjcamt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年互換輪崗面試試題及答案
- 2025年面試題辯證類模板及答案
- 2025年心理猜數(shù)測試題及答案
- 2025年產(chǎn)科護(hù)理面試題及答案
- 2025年國防保密考試試題及答案
- 2025年呼吸暫停癥測試題及答案
- 2025年信用資格培訓(xùn)考試題及答案
- 2025年吶喊紅寶石測試題及答案
- 2025年數(shù)字算命考試題及答案
- 2025年視力防控考試題及答案
- NB-T 47013.7-2012(JB-T 4730.7) 4730.7 承壓設(shè)備無損檢測 第7部分:目視檢測
- 【高中語文】《社會(huì)歷史的決定性基礎(chǔ)》課件49張+統(tǒng)編版+選擇性必修中冊(cè)
- oecd 稅收協(xié)定范本
- 我的家鄉(xiāng)聊城臨清宣傳介紹模板
- DL∕T 547-2020 電力系統(tǒng)光纖通信運(yùn)行管理規(guī)程
- GB/T 31402-2023塑料和其他無孔材料表面抗菌活性的測定
- 應(yīng)用文寫作中職全套教學(xué)課件
- 部編版六年級(jí)下冊(cè)語文文言文二則《學(xué)弈》說課課件
- 小學(xué)科學(xué)學(xué)科知識(shí)與拓展PPT完整全套教學(xué)課件
- 小學(xué)數(shù)學(xué)-【課堂實(shí)錄】圓柱和圓錐的認(rèn)識(shí)教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 海水浸泡傷早期救治原則
評(píng)論
0/150
提交評(píng)論