NC數(shù)據(jù)加工做語(yǔ)義模型_第1頁(yè)
NC數(shù)據(jù)加工做語(yǔ)義模型_第2頁(yè)
NC數(shù)據(jù)加工做語(yǔ)義模型_第3頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、報(bào)表語(yǔ)義模型(數(shù)據(jù)加工:返回結(jié)果集方式)數(shù)據(jù)加工方式:1返回查詢(xún)SQL ;2返回結(jié)果集DataSet; 3返回?cái)?shù)據(jù)表。實(shí)現(xiàn)方式基本一致,可以參照系統(tǒng)原有報(bào)表語(yǔ)義模型一、新建報(bào)表查詢(xún)?nèi)肟陬?lèi),初始化報(bào)表字段1. 數(shù)據(jù)加工查詢(xún)業(yè)務(wù)處理接口的定義:/票據(jù)池額度查詢(xún)接口* param context* return* throws BusinessException */public DataSet queryPaperBillPoolLimit(IContext context) throws Exception; 票據(jù)信息查詢(xún) /票據(jù)池額度查詢(xún)接口* author 溫燕榮 WYR* date 201

2、4-04-15*/public interface IFbmQueryPaperBillService /* 票據(jù)信息查詢(xún)* param context* return* throws BusinessException*/public DataSet queryPaperBillInfo(IContext context) throws Exception;2. 數(shù)據(jù)加工入口類(lèi),初始化報(bào)表字段 /* 票據(jù)池額度查詢(xún)?nèi)肟陬?lèi)* author 溫燕榮 WYR* date 2014-04-15*/public class QueryPaperPoolLimitService private stat

3、ic final MetaData metaData;public QueryPaperPoolLimitService() super();/* 獲得結(jié)果集* param context 報(bào)表界面查詢(xún)傳進(jìn)來(lái)的參數(shù)(查詢(xún)條件= 值,系統(tǒng)一些默認(rèn)參數(shù)等)* return*/public static DataSet queryPJCAmt(IContext context)throws Exception /調(diào)用報(bào)表查詢(xún)業(yè)務(wù)處理接口,DataSet resultDataSet = gatherservice.queryPaperBillPoolLimit(context); setPrecisi

4、on(resultDataSet);return resultDataSet;/初始化報(bào)表要顯示的字段,包括查詢(xún)條件字段也在內(nèi)static metaData = new MetaData();List<Field> fields =makeList();/報(bào)表顯示字段Field f = new Field(); f.setFldname(PaperBillPoolVO.ORGNAME); f.setCaption(" 財(cái)務(wù)組織名稱(chēng) "); f.setPrecision(200);f.setDataType(DataTypeConstant.STRING); fi

5、elds.add(f);f = new Field(); f.setFldname(PaperBillPoolVO.ACCTNAME); f.setCaption(" 機(jī)構(gòu)名稱(chēng) ");f.setPrecision(200); f.setDataType(DataTypeConstant.STRING); fields.add(f);f = new Field(); f.setFldname(PaperBillPoolVO.ACCTNO); f.setCaption(" 賬號(hào) ");f.setPrecision(200); f.setDataType(Da

6、taTypeConstant.STRING); fields.add(f);f = new Field(); f.setFldname(PaperBillPoolVO.PJCNO); f.setCaption(" 票據(jù)池編號(hào) "); f.setPrecision(200);f.setDataType(DataTypeConstant.STRING); fields.add(f);f = new Field(); f.setFldname(PaperBillPoolVO.PJCKAMT); f.setCaption(" 票據(jù)池可開(kāi)票額度 "); f.set

7、Precision(17);f.setDataType(DataTypeConstant.BIGDECIMAL); f.setScale(4);fields.add(f);f = new Field(); f.setFldname(PaperBillPoolVO.CUSKAMT); f.setCaption(" 客戶(hù)剩余可開(kāi)票額度 ");f.setPrecision(17);f.setDataType(DataTypeConstant.BIGDECIMAL); f.setScale(4);fields.add(f);f = new Field(); f.setFldname

8、(PaperBillPoolVO.CUSEAMT); f.setCaption(" 客戶(hù)有效開(kāi)票額度 "); f.setPrecision(17);f.setDataType(DataTypeConstant.BIGDECIMAL); f.setScale(4);fields.add(f);f = new Field();f.setFldname(PaperBillPoolVO.CORNAME); f.setCaption(" 分支機(jī)構(gòu)名稱(chēng) ");f.setPrecision(200); f.setDataType(DataTypeConstant.ST

9、RING); fields.add(f);f = new Field(); f.setFldname(PaperBillPoolVO.CORKAMT); f.setCaption(" 分支機(jī)構(gòu)剩余可開(kāi)票額度 "); f.setPrecision(17);f.setDataType(DataTypeConstant.BIGDECIMAL);f.setScale(4);fields.add(f);f = new Field();f.setFldname(PaperBillPoolVO.REQRESERVED1); f.setCaption(" 請(qǐng)求備用字段 1&quo

10、t;);f.setPrecision(200);f.setDataType(DataTypeConstant.STRING); fields.add(f);f = new Field(); f.setFldname(PaperBillPoolVO.REQRESERVED2); f.setCaption(" 請(qǐng)求備用字段 2");f.setPrecision(200); f.setDataType(DataTypeConstant.STRING); fields.add(f);f = new Field(); f.setFldname(PaperBillPoolVO.REPR

11、ESERVED3); f.setCaption(" 響應(yīng)備用字段 3"); f.setPrecision(200); f.setDataType(DataTypeConstant.STRING); fields.add(f);f = new Field();f.setFldname(PaperBillPoolVO.REPRESERVED4); f.setCaption(" 響應(yīng)備用字段 4");f.setPrecision(200); f.setDataType(DataTypeConstant.STRING); fields.add(f);/查詢(xún)字段f

12、 = new Field(); f.setFldname(PaperBillPoolVO.PK_ORG); f.setCaption(" 財(cái)務(wù)組織 PK"); f.setPrecision(200);f.setDataType(DataTypeConstant.STRING); fields.add(f);f = new Field();f.setFldname(PaperBillPoolVO.QUERY_ACCTNO); f.setCaption(" 賬號(hào) -查詢(xún) ");f.setPrecision(200); f.setDataType(DataTy

13、peConstant.STRING); fields.add(f);f = new Field(); f.setFldname(PaperBillPoolVO.QUERY_PJCNO);f.setCaption(”票據(jù)池編號(hào)-查詢(xún)”); f.setPrecision(200);f.setDataType(DataTypeConstant.STRING); fields.add(f);f = new Field(); f.setFldname(PaperBillPoolVO.MFLAG); f.setCaption("是否票據(jù)池主申請(qǐng)賬號(hào)-查詢(xún)"); f.setPrecisi

14、on(200); f.setDataType(DataTypeConstant.STRING); fields.add(f);f = new Field(); f.setFldname(PaperBillPoolVO.NEXTTAG); f.setCaption(" 下頁(yè)標(biāo)識(shí) -查詢(xún) ");f.setPrecision(200); f.setDataType(DataTypeConstant.STRING); fields.add(f);f = new Field(); f.setFldname(PaperBillPoolVO.REQRESERVED1);f.setCapt

15、ion(”請(qǐng)求備用字段1-查詢(xún)”); f.setPrecision(200);f.setDataType(DataTypeConstant.STRING); fields.add(f);f = new Field(); f.setFldname(PaperBillPoolVO.REQRESERVED1); f.setCaption(”請(qǐng)求備用字段2-查詢(xún)");f.setPrecision(200); f.setDataType(DataTypeConstant.STRING); fields.add(f);metaData.addField(fields.toArray(new Fi

16、eld );* 構(gòu)造 list* param <T>* return*/public static <T> List<T> makeList() return new ArrayList<T>();/字符串類(lèi)型字段統(tǒng)一設(shè)置字段長(zhǎng)度private static void setPrecision(DataSet resultDataSet) for (Field f : resultDataSet.getMetaData().getFields() if (f.getDataType() = DataTypeConstant.STRING) f.s

17、etPrecision(300);/* 獲得票據(jù)池額度元數(shù)據(jù)(相當(dāng)于代碼寫(xiě)一個(gè)元數(shù)據(jù))* return*/public static MetaData getPJCAmtrMetaData() return metaData;二、數(shù)據(jù)加工業(yè)務(wù)處理/注意:我這個(gè)是(銀企直聯(lián)) NC 在線查詢(xún)銀行數(shù)據(jù)的代碼,不用完全參照/我這里就舉例(票據(jù)池額度查詢(xún))/* 票據(jù)信息查詢(xún) /票據(jù)池額度查詢(xún)接口實(shí)現(xiàn)類(lèi)* author 溫燕榮 WYR* date 2014-04-15*/public class FbmQueryPaperBillServiceImpl extends PaperBillService

18、implementsIFbmQueryPaperBillServiceprivate IObmQueryPaperBillService iObmQueryPaperBillService;/這一步可以不需要去理解,當(dāng)不存在就可以了private static String billfunc= PaperBillObmConstant.PAPERQUERY;/* 票據(jù)池額度查詢(xún)* param context* return* throws BusinessException*/Overridepublic DataSet queryPaperBillPoolLimit(IContext con

19、text) throws Exception /獲取查詢(xún)條件值ConditionVO conditionvos=(ConditionVO) context.getAttribute(FreeReportContextKey.KEY_REPORT_QUERYCONDITIONVOS);DataSet resultDataSet = new DataSet();HashMap<String,String> hashmap=new HashMap<String, String>();/ 獲取查詢(xún)條件(key,值)對(duì)應(yīng)if(conditionvos!=null&&

20、;conditionvos.length>0)/ 執(zhí)行了查詢(xún)for(ConditionVO conditionvo:conditionvos) hashmap.put(conditionvo.getFieldCode(), conditionvo.getValue();/ 這一步可以不需要去理解,當(dāng)不存在就可以了Stringbanktype=getbanktype(hashmap.get(PaperBillPoolVO.QUERY_ACCTNO);/ 這一步可以不需要去理解,當(dāng)不存在就可以了/ 根據(jù)當(dāng)前界面 VO 獲取銀行的信息類(lèi)createBankInfoClass(banktype,

21、billfunc,PaperBillFbmOrderType.QUERYBILLPOOLLIMIT)J/*這一步是獲取查詢(xún)條件值組裝成查詢(xún)V0 (自己新建一個(gè) VO【PaperBillPoolVO】 記得加*上必須字段pk_org和orgname,前者是PK查詢(xún)使用,后者是顯示名稱(chēng),初始化字段類(lèi)里*面也必須有) ,我這里是按照不同銀行動(dòng)態(tài)調(diào)用各個(gè) handler*/組裝發(fā)送指令 VOPaperBillPoolVO poolvo=(PaperBillPoolVO)abstractBankInfo.getQueryBankHandlerClass(abstractBankInfo).chan ge

22、QueryPaperBillPoolVO(hashmap);/ 查詢(xún)條件值可能要先暫存,待返回?cái)?shù)據(jù)集再把對(duì)應(yīng)查詢(xún)條件值設(shè)值回去,不然查不出數(shù)據(jù)/ 也就是查詢(xún)條件是什么值,最終結(jié)果集對(duì)應(yīng)的查詢(xún)字段值也必須是什么值/ 看需求,報(bào)表字段有的時(shí)候需要建兩種,一種是查詢(xún),一種是顯示結(jié)果,進(jìn)行分開(kāi)/這一步是報(bào)表數(shù)據(jù)邏輯處理/發(fā)送查詢(xún)指令業(yè)務(wù)接口PaperBillPoolVO paperBillPoolVOs = null;paperBillPoolVOs=getiObmQueryPaperBillService().queryPaperBillPoolLimit(newPaperBillPoolVOpoo

23、lvo);/獲取報(bào)表查詢(xún)條件之后經(jīng)過(guò)一些業(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)換成 DataSetelse/ 沒(méi)有執(zhí)行查詢(xún)MetaData metaData = QueryPaperPoolLimitService.getPJCAmtrMetaData(); resultDataSet.setMetaData(metaData);re

24、turn resultDataSet;/下面就是把轉(zhuǎn)換成報(bào)表顯示數(shù)據(jù) DataSet 格式,這里是固定的換個(gè) VO 就能用* 票據(jù)池額度查詢(xún)* 銀行返回的指令 VO 數(shù)據(jù)* 轉(zhuǎn)換成報(bào)表顯示數(shù)據(jù) DataSet *author 溫燕榮 WYR *date 2014-4-17 *param paperBillPoolVOs *return* throws BusinessException*/public DataSet getPjcAmtRstProcessData(PaperBillPoolVO paperBillPoolVOs)throws BusinessExceptionDataSet

25、resultDataSet = new DataSet();MetaData metaData = QueryPaperPoolLimitService.getPJCAmtrMetaData(); resultDataSet.setMetaData(metaData);if (paperBillPoolVOs = null | paperBillPoolVOs.length= 0) return resultDataSet;Field fields = metaData.getFields();List<Object> reportList = new ArrayList<O

26、bject>();for (PaperBillPoolVO vo : paperBillPoolVOs) if(vo=null)continue;Object rowData = new Objectfields.length;for (int k = 0; k < fields.length; k+) String fldName = fieldsk.getFldname(); rowDatak = vo.getAttributeValue(fldName);reportList.add(rowData);resultDataSet.setDatas(reportList.toA

27、rray(new Object0fields.length); return resultDataSet;/從這里到最后面的代碼不用去理會(huì)了/ return iObmQueryPaperBillService */ public IObmQueryPaperBillService getiObmQueryPaperBillService() * param iObmQueryPaperBillService 要設(shè)置的 iObmQueryPaperBillService*/public void setiObmQueryPaperBillService(IObmQueryPaperBillSer

28、vice iObmQueryPaperBillService) this.iObmQueryPaperBillService = iObmQueryPaperBillService;if(iObmQueryPaperBillService=null)iObmQueryPaperBillService=NCLocator.getInstance().lookup(IObmQueryPaperBillService. class);return iObmQueryPaperBillService;/根據(jù)銀行賬戶(hù)子戶(hù) PK 獲取銀行代碼 ,如:工商銀行 00015 icbc public Strin

29、g getbanktype (String banktype) throws BusinessExceptionString nbanktype=banktype; if(nbanktype!=null)if(nbanktype.indexOf(",")!=-1)throw new BusinessException(" 賬號(hào) 不能多選! "); nbanktype=getPaperBillHandler().getNetbankinftpCodeByAccount(nbanktype); return nbanktype;return null;三、語(yǔ)義模型-XX (預(yù)置、集團(tuán)、全局)設(shè)置1. 新建一個(gè)語(yǔ)義模型文件,來(lái)到【語(yǔ)義模型設(shè)計(jì)器】界面,第一步“選擇表” 。(如果不會(huì) 說(shuō)明你好高騖遠(yuǎn)) ;注意:字段編碼與字

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論