版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(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(”賬號”);f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.PJCNO);f.setCaption("票據(jù)池編號");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^請求備用字段1");f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.REQRESERVED2);f.setCaption^請求備用字段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(”賬號-查詢”);f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.QUERY_PJCNO);f.setCaption(”票據(jù)池編號-查詢”);f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.MFLAG);f.setCaption(”是否票據(jù)池主申請賬號-查詢”);f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.NEXTTAG);f.setCaption(”下頁標(biāo)識-查詢”);f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.REQRESERVEDl);f.setCaption("請求備用字段1-查詢”);f.setPrecision(200);f.setDataType(DataTypeConstant.STRING);fields.add(f);f=newField();f.setFldname(PaperBillPoolVO.REQRESERVED1);f.setCaption("請求備用字段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,值)對應(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ù)集再把對應(yīng)查詢條件值設(shè)值回去,不然查不出數(shù)據(jù)//也就是查詢條件是什么值,最終結(jié)果集對應(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或者對象數(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;}〃從這里到最后面的代碼不用去理會了/***@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("[賬號]不能多選!”);}nbanktype=getPaperBillHandler().getNetbankinftpCodeByAccount(nbanktype);returnnbanktype;}returnnull;}三、語義模型-XX(預(yù)置、集團(tuán)、全局)設(shè)置1.新建一個(gè)語義模型文件,來到【語義模型設(shè)計(jì)器】界面,第一步“選擇表”(如果不會說明你好高騖遠(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ù)符號票據(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ù)符號票據(jù)迪額度信息(pjcamtinfo)財(cái)箸組織容稱(orgname}查1編參照依賴選中左邊匚TRL+A全增加確疋取消増加宇段X巴函數(shù)分支機(jī)枸容稱(corname)分支機(jī)枸剩余可開票額度(cork機(jī)枸容稱(acctname}~tpjCTTCT7機(jī)構(gòu)窯稱但cctname)賬號(acctn^...,.票據(jù)迪編號票拐池可開票額度Cpjckamt}j雷戶剩金可開票額度(cuskarnt看戶有敷開票額度(cuseamt)!語義函數(shù)〕宇符函數(shù)〕日期函數(shù)〕數(shù)學(xué)函數(shù)PUBAPP^rB語義函埶保存完成取消宇段編碼宇段容稱數(shù)據(jù)類型位數(shù)精度1orgname財(cái)勞組級名稱寧符串型30002acctname機(jī)構(gòu)容稱寧符串型30003acctno賬號寧符串型30004pjcno票據(jù)池編號寧符串型30005Ptjckamt票據(jù)池可開票額度數(shù)值型174新増6cuskamt客戶剩金可開票額度數(shù)值型1747cuseamt客戶有敷開票額度數(shù)值型174刪除8corname分支機(jī)枸名稱寧符串型30009corkamt分支機(jī)枸剩余可開票額度數(shù)值型17410reqreservedl請求備用字段1寧符串型300011reqreservedl2請求備用字段2寧符串型300012represerved3響應(yīng)備用字段3寧符串型3000下移13represervetM響應(yīng)備用字段4寧符串型300014pk_org財(cái)箸組級PK寧符串型3000羞頂15query_acctno賬號-查詢寧符串型300016query_pjcno票據(jù)迪編號-查詢宇符串型3000置底17mflag是否票堀迪主申請賬號-查詢宇符串型300018nexttag下頁標(biāo)識-查詢宇符串型3000灰色行的字段才是代碼加載岀來的,若岀現(xiàn)白色行的字段是不存在的,需要?jiǎng)h除,灰色的£別除不了!
□選擇克連接條件選項(xiàng)101112宇段編碼宇段容稱宇段克達(dá)式數(shù)據(jù)類型精度主鍵關(guān)聯(lián)啟用權(quán)匡orgn自mmacctnameacctnopjcnopjckamtcuskamtcuseamtcornamecorkamtreqreseivedilreqreseivedl2repressivedl3財(cái)勞組組容稱機(jī)枸名稱賬號票據(jù)迪編號票據(jù)迪可開…客戶剩余可…客戶有議開…分支機(jī)枸名稱分支機(jī)枸?!埱髠溆糜睢璱青求備用宇…響應(yīng)備用宇…namepjcamtinfo.acctnamepjcamtinfo.acctnopjcamtinfo.pjcnopjcamt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電位器生產(chǎn)加工項(xiàng)目可行性研究報(bào)告
- 2025勞動(dòng)集體合同范本
- 2024年員工勞動(dòng)合同終止與離職后健康保障服務(wù)協(xié)議3篇
- 2024年度大數(shù)據(jù)分析平臺建設(shè)與技術(shù)服務(wù)合同
- 醫(yī)療質(zhì)量評價(jià)標(biāo)準(zhǔn)探討-洞察分析
- 2024年物流信息化代理貨物運(yùn)輸服務(wù)協(xié)議3篇
- 移動(dòng)互聯(lián)時(shí)代的客戶忠誠策略-洞察分析
- 線粒體自噬與細(xì)胞凋亡-第1篇-洞察分析
- 2024年度果苗采購協(xié)議樣本版B版
- 2024年宗教活動(dòng)演出合同示范文本3篇
- 2011山東省建筑工程消耗量定額價(jià)目表
- 智能化生產(chǎn)線實(shí)時(shí)監(jiān)測
- 新教材蘇教版三年級上冊科學(xué)全冊單元測試卷
- 膠囊內(nèi)鏡定位導(dǎo)航技術(shù)研究
- 社區(qū)開展反詐工作方案
- 城市露營項(xiàng)目商業(yè)計(jì)劃書
- 建筑垃圾清運(yùn)重點(diǎn)分析報(bào)告
- 11396-國家開放大學(xué)2023年春期末統(tǒng)一考試《藥事管理與法規(guī)(本)》答案
- NB-T 47013.7-2012(JB-T 4730.7) 4730.7 承壓設(shè)備無損檢測 第7部分:目視檢測
- 網(wǎng)絡(luò)安全與信息保密培訓(xùn)
- 天津市四校2022-2023學(xué)年高二上學(xué)期期末聯(lián)考數(shù)學(xué)試題(原卷版)
評論
0/150
提交評論