




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、管理會(huì)計(jì)二次開發(fā)指南修改日期版本修改人備注2008.3.29v1.0楊磊,王偉東,楊樺,許煒曉初始版本背景說明隨著預(yù)算及資金系統(tǒng)客戶的使用不斷深入,各種客戶個(gè)性化需求不斷增加,不同的客戶必然要根據(jù)各自公司的業(yè)務(wù)特點(diǎn)進(jìn)行流程訂制,二次開發(fā)等一系列滿足公司業(yè)務(wù)發(fā)展需求。該文檔主要從預(yù)算控制集成,資金系統(tǒng)二次開發(fā),其他通用問題進(jìn)行二次開發(fā)的問題匯總,并提供指導(dǎo)說明;預(yù)算系統(tǒng)控制集成q1. 預(yù)算控制集成需要做哪些設(shè)置?目前許多eas業(yè)務(wù)單據(jù)都會(huì)與預(yù)算控制集成,如憑證、收付款單據(jù)及二次開發(fā)單據(jù)等等。這些單據(jù)如果需要與預(yù)算控制接口做集成的話需要作以下設(shè)置:a) 預(yù)算模板或者預(yù)算表上必須設(shè)置項(xiàng)目公式,如果只
2、是在單元格設(shè)置取數(shù)公式或者填寫數(shù)字,預(yù)算控制是不會(huì)查找該單元格的數(shù)據(jù)。b) 預(yù)算項(xiàng)目公式必須設(shè)置控制方式在預(yù)算模板或者預(yù)算表上的項(xiàng)目公式如果想使用預(yù)算控制的話必須在項(xiàng)目公式上設(shè)置控制方式,默認(rèn)的項(xiàng)目公式是不使用控制方式的。在預(yù)算模板或者預(yù)算表中選擇“工具”萊單,點(diǎn)擊“控制方式設(shè)置”萊單項(xiàng),就可以打開預(yù)算控制方式設(shè)置界面。然后根據(jù)需要選擇控制方式。在預(yù)算控制中,系統(tǒng)會(huì)根據(jù)控制策略、單據(jù)時(shí)間以及單據(jù)的所屬組織查找預(yù)算數(shù)據(jù),如果在單據(jù)時(shí)間相對(duì)應(yīng)的業(yè)務(wù)期間c) 預(yù)算方案必須執(zhí)行在預(yù)算控制中,系統(tǒng)必須根據(jù)當(dāng)前執(zhí)行的方案查找數(shù)據(jù)及控制方式。如果沒有執(zhí)行的方案,預(yù)算控制就找不到所需要的預(yù)算數(shù)據(jù),因此導(dǎo)致預(yù)算
3、控制提示沒有執(zhí)行的方案或者沒有預(yù)算。如果方案沒有執(zhí)行,則點(diǎn)擊預(yù)算方案敘事簿上的工具欄按鈕“執(zhí)行”來執(zhí)行選擇的方案。d) 預(yù)算控制策略必須設(shè)置及啟用。在預(yù)算控制策略管理敘事簿下為總帳、費(fèi)用報(bào)銷、等各種業(yè)務(wù)系統(tǒng)下的業(yè)務(wù)單據(jù)提供了設(shè)置預(yù)算控制策略的功能。如圖所示:下面是控制策略設(shè)置的界面,包括預(yù)算策略分錄、映射關(guān)系定義、期間映射、多控制標(biāo)準(zhǔn)定義的內(nèi)容。q2. 二次開發(fā)單據(jù)要進(jìn)行預(yù)算控制有哪些實(shí)現(xiàn)方式?單據(jù)實(shí)現(xiàn)預(yù)算控制主要有兩種方式:一種是通過工作流配置實(shí)現(xiàn),一種是直接在代碼中調(diào)用預(yù)算控制的接口;二次開發(fā)單據(jù)要實(shí)現(xiàn)與預(yù)算系統(tǒng)的控制,必須是通過bos開發(fā)工具從billbase繼承實(shí)現(xiàn)的單據(jù),因?yàn)樵诳刂撇?/p>
4、略配置時(shí)系統(tǒng)會(huì)使用單據(jù)原數(shù)據(jù)的定義信息; q3. 預(yù)算控制工作流集成預(yù)算系統(tǒng)提供了預(yù)算控制子流程,根據(jù)業(yè)務(wù)單據(jù)的不同需要可以直接將該流程添加到各業(yè)務(wù)系統(tǒng)的工作流程中;或者也可以直接使用預(yù)算提供的工作流審核及返還預(yù)算的自動(dòng)節(jié)點(diǎn)來配置業(yè)務(wù)單據(jù)的工作流。例如:下面的憑證工作流,在他們的業(yè)務(wù)工作流程中嵌入了預(yù)算的控制子流程來實(shí)現(xiàn)預(yù)算控制的功能。預(yù)算控制子流程如下圖所示:q4. 自定義預(yù)算控制工作流時(shí)單據(jù)參數(shù)(boname)命名說明如果是手工配置單據(jù)的預(yù)算控制工作流,在流程變量中有一個(gè)參數(shù):boname:用于定義參與預(yù)算控制的業(yè)務(wù)單據(jù)實(shí)體元數(shù)據(jù)名列表,二次開發(fā)中在定義該參數(shù)時(shí)直接填寫所開發(fā)單據(jù)的原數(shù)據(jù)名
5、稱;在eas系統(tǒng)中目前參與預(yù)算控制的參數(shù)配置使用說明,現(xiàn)場(chǎng)如果需要設(shè)置自己的控制流程,參照設(shè)置即可;/ -/ 總賬/ -/ 憑證com.kingdee.eas.fi.gl.app.voucher/ -/ 出納管理/ -/ 收款單com.kingdee.eas.fi.cas.app.receivingbill/ 付款單com.kingdee.eas.fi.cas.app.paymentbill/ -/ 費(fèi)用報(bào)銷/ -/ 費(fèi)用報(bào)銷單com.kingdee.eas.cp.bc.app.bizaccountbill/ 費(fèi)用申請(qǐng)單com.kingdee.eas.cp.bc.app.otherexpens
6、ebill/ 借款單com.kingdee.eas.cp.bc.app.dailyloanbill/ 出差借款單com.kingdee.eas.cp.bc.app.evectionloanbill/ 物品采購(gòu)報(bào)銷單com.kingdee.eas.cp.bc.app.dailypurchaseaccountbill/ 差旅費(fèi)報(bào)銷單com.kingdee.eas.cp.bc.app.travelaccountbill/ -/ 票據(jù)管理/ -/ 應(yīng)收票據(jù)com.kingdee.eas.fm.nt.app.receivablebill/ 應(yīng)付票據(jù)com.kingdee.eas.fm.nt.app.pa
7、yablebill/ 貼現(xiàn)單com.kingdee.eas.fm.nt.app.discountbill/ 背書單com.kingdee.eas.fm.nt.app.endorsementbill/ 退票單com.kingdee.eas.fm.nt.app.returnbill/ -/ 低值易耗品/ -/ 低值易耗品卡片com.kingdee.eas.fi.lcm.app.lcmcurcard/ 領(lǐng)用單com.kingdee.eas.fi.lcm.app.lcmconsumebill/ -/ 資金結(jié)算/ -/ 結(jié)算單com.kingdee.eas.fm.fs.app.settlementbil
8、l/ -/ 固定資產(chǎn)/ -/ 固定資產(chǎn)卡片com.kingdee.eas.fi.fa.manage.app.facurcardq5. 預(yù)算控制提供了哪些接口?預(yù)算控制系統(tǒng)集成:功能說明:判斷是否控制策略允許超預(yù)算包類名稱:com.kingdee.eas.ma.budget.app.bgbudgetfacadecontrollerbean接口說明:param:ctx(上下文環(huán)境)param:boname(業(yè)務(wù)單據(jù)實(shí)體元數(shù)據(jù)名稱)protected boolean getallowaccess(context ctx, string boname) throws bosexception, eas
9、bizexception ;功能說明:預(yù)算審核包類名稱:com.kingdee.eas.ma.budget.app.bgcontrolfacadecontrollerbean接口說明:param:ctx(上下文環(huán)境)param:boid(業(yè)務(wù)單據(jù)id)param:boname(業(yè)務(wù)單據(jù)實(shí)體元數(shù)據(jù)名稱)param:handlername(控制策略名稱)(已作廢)protected iobjectcollection bgauditallowaccess(context ctx, bosuuid boid, string boname, string handlername) throws bos
10、exception, easbizexception ;功能說明:預(yù)算返還包類名稱:com.kingdee.eas.ma.budget.app.bgcontrolfacadecontrollerbean接口說明:param:ctx(上下文環(huán)境)param:boid(業(yè)務(wù)單據(jù)id)param:boname(不使用)param:handlername(控制策略名稱)(已作廢)protected void returnbudget(context ctx, bosuuid boid, string boname, string handlername) throws bosexception, ea
11、sbizexception ;功能說明:返回預(yù)算余額包類名稱:com.kingdee.eas.ma.budget.app.bgcontrolfacadecontrollerbean接口說明:param:ctx(上下文環(huán)境)param:itemformula(預(yù)算項(xiàng)目公式)param:orgunitid(組織id)param:schemeid(方案id)param:periodtypeenum(預(yù)算業(yè)務(wù)期間枚舉)protected bigdecimal getbalancebyformula(context ctx, string itemformula, bosuuid orgunitid,
12、bosuuid schemeid,bgperiodenum periodtypeenum)throws bosexception, easbizexception ;預(yù)算項(xiàng)目公式設(shè)置參數(shù)的含義預(yù)算項(xiàng)目公式說明:=bgitem(1001,2008y,001,bgdata,true,bb01)=bgitem(預(yù)算項(xiàng)目編碼,預(yù)算業(yè)務(wù)期間編碼,預(yù)算要素編碼,bgdata,true,幣別編碼)資金系統(tǒng)二次開發(fā)q6. 與收付款單集成的單據(jù)反寫接口說明及案例背景說明:目前eas中很多單據(jù)都會(huì)與收付款單集成,如應(yīng)付單、協(xié)同平臺(tái)借款單、采購(gòu)訂單、采購(gòu)發(fā)票、結(jié)算單等會(huì)與付款單集成,而在付款單提交、審核、付款等業(yè)務(wù)
13、操作時(shí),集成的這些業(yè)務(wù)單據(jù)都會(huì)有各自的反寫要求,例如付款單付款時(shí),集成的應(yīng)付單需要進(jìn)行金額核銷等。而目前botp只能在保存和刪除時(shí)根據(jù)規(guī)則配置中的反寫定義進(jìn)行反寫操作,所以為了實(shí)現(xiàn)各個(gè)業(yè)務(wù)單據(jù)的反寫要求,在出納系統(tǒng)定義了收付款單的反寫接口,由各個(gè)業(yè)務(wù)單據(jù)去實(shí)現(xiàn)接口。步驟:實(shí)現(xiàn)(付款單反寫接口)類名:com.kingdee.eas.fi.cas.ipaymentdisposer /* * 描述: 計(jì)算現(xiàn)金折扣 * 1.付款單的應(yīng)付金額不小于應(yīng)付單的應(yīng)付金額; * 2.付款單的單據(jù)日期與應(yīng)付單的單據(jù)日期進(jìn)行比較,計(jì)算賬齡。計(jì)算公式為:賬齡時(shí)間=付款單單據(jù)日期-應(yīng)付單單據(jù)日期。根據(jù)賬齡確定折扣率。
14、* 當(dāng)滿足條件1時(shí),根據(jù)賬齡天數(shù)得到折扣率,計(jì)算現(xiàn)金折扣。計(jì)算公式為:現(xiàn)金折扣=付款單的應(yīng)付金額*賬齡天數(shù)對(duì)應(yīng)的折扣率。 * 當(dāng)不享受折扣時(shí),也可按上述公式計(jì)算,視同折扣率為零。 * 本版只提供關(guān)聯(lián)新增保存前的折扣計(jì)算,對(duì)于保存后修改的付款單,即使是關(guān)聯(lián)生成的,也不再計(jì)算現(xiàn)金折扣。 * 該方法主要是應(yīng)付系統(tǒng)使用,其他業(yè)務(wù)單據(jù)可返回空方法。 * param billdate付款單的單據(jù)日期 * param apamount付款單的應(yīng)付金額 * param srcbillid源單據(jù)id(即應(yīng)付單id) * param srcbillentryid源單據(jù)分錄id(即應(yīng)付單分錄id) * return
15、 * author:wangweidong * 創(chuàng)建時(shí)間:2005-10-20 */ public bigdecimal getcashrebate(date billdate, bigdecimal apamount, string srcbillid, string srcbillentryid); /* * 描述:?jiǎn)螕?jù)刪除時(shí)反寫業(yè)務(wù)源單據(jù)信息 * param ctx * param action * 包括:目標(biāo)單據(jù)info 收款單值對(duì)象(從里面可以取得付款單id和分錄id,源單id和分錄id) *action 反寫動(dòng)作(包括暫存、保存、刪除、審核、反審核、收付款、取消收付款、提交結(jié)算中心
16、、生成憑證、取消憑證) * throws bosexception * throws easbizexception * author:wangweidong * 創(chuàng)建時(shí)間:2005-11-3 */ public void dispose(context ctx, billdisposeraction action) throws bosexception, easbizexception;在付款單反寫接口工廠類中注冊(cè)接口實(shí)現(xiàn)類(如下代碼中紅色標(biāo)出處)public class paymentdisposerfactory /* * param ctx * param bizbillid */
17、public static ipaymentdisposer getinstance(context ctx, string bizbillid)throws bosexception if(fmhelper.isempty(bizbillid ) return null; imetadataloader loader = null; if (ctx = null) loader = metadataloaderfactory.getremotemetadataloader(); else loader = metadataloaderfactory.getlocalmetadataloade
18、r(ctx); bosobjecttype bostype = bosuuid.read(bizbillid).gettype(); entityobjectinfo entity = loader.getentity(bostype); string disposername = entity.getextendedproperty(disposerforpayment); if (bostype.equals(new otherbillinfo().getbostype() /應(yīng)付單 disposername = com.kingdee.eas.fi.ap.otherbilldispose
19、r; else if (bostype.equals(new dailyloanbillinfo().getbostype() /協(xié)同平臺(tái)借款單 disposername = com.kingdee.eas.cp.bc.bizpaybillreback; 具體實(shí)現(xiàn)可參考付款單反寫應(yīng)付單接口實(shí)現(xiàn)類com.kingdee.eas.fi.ap.otherbilldisposerq7. 資金系統(tǒng)登內(nèi)部賬戶明細(xì)賬資金系統(tǒng)中內(nèi)部賬戶明細(xì)賬對(duì)應(yīng)的實(shí)體為subsidiaryledger,當(dāng)單據(jù)在某個(gè)內(nèi)部賬戶上發(fā)生業(yè)務(wù),并希望記錄下來的時(shí)候,就需要登內(nèi)部賬戶明細(xì)賬,登賬的接口如下public interface
20、 isubsidiaryledger extends icorebase public void cancelbook(string billid) throws bosexception, easbizexception; public void book(string billid, string providername) throws bosexception, easbizexception;其中book為登賬,cancelbook為反登賬,下面結(jié)合一個(gè)業(yè)務(wù)單據(jù)來介紹如何實(shí)現(xiàn)登賬功能。先看看業(yè)務(wù)場(chǎng)景選擇一個(gè)內(nèi)部賬戶,提交后登帳成功后可以在內(nèi)部賬戶明細(xì)賬中看到相應(yīng)的記錄 要實(shí)現(xiàn)這樣的功
21、能,最主要的是寫一個(gè)業(yè)務(wù)單據(jù)的明細(xì)賬數(shù)據(jù)提供類,該類實(shí)現(xiàn)接口如下接口public interface isubsidiarybookprovider /* * 獲取分戶賬集合 * param ctx * param billid 業(yè)務(wù)單據(jù)id * return * throws bosexception * throws easbizexception */public subsidiaryledgercollection getcollection(context ctx, string billid ) throws bosexception,easbizexception; 實(shí)現(xiàn)這個(gè)接口
22、只負(fù)責(zé)根據(jù)業(yè)務(wù)需求生成對(duì)應(yīng)的內(nèi)部賬戶明細(xì)賬數(shù)據(jù),以企業(yè)貸 為例看看這個(gè)類如何實(shí)現(xiàn)。public class chloansubsidiarybookprovider implements isubsidiarybookprovider public subsidiaryledgercollection getcollection(context ctx, string billid)throws bosexception, easbizexception chloaninfo chloaninfo = getchloaninfo(ctx, billid);subsidiaryledgercol
23、lection coll = new subsidiaryledgercollection();subsidiaryledgerinfo slinfo1 = createbaseledger(chloaninfo);/內(nèi)部賬戶slinfo1.setinneraccount(chloaninfo.getloanaccount();/申請(qǐng)單位slinfo1.setapplyunit(chloaninfo.getloancompany();/貸方金額slinfo1.setdebitamount(chloaninfo.getloantotalamt();coll.add(slinfo1);if (ch
24、loaninfo.getdistributeaccou() != null) subsidiaryledgerinfo slinfo = createbaseledger(chloaninfo);/內(nèi)部賬戶slinfo.setinneraccount(chloaninfo.getdistributeaccou();/申請(qǐng)單位slinfo.setapplyunit(chloaninfo.getloancompany();/借方金額slinfo.setcreditamount(chloaninfo.getloantotalamt();coll.add(slinfo);return coll;pri
25、vate chloaninfo getchloaninfo(context ctx, string billid) throws easbizexception, bosexception return chloanfactory.getlocalinstance(ctx).getchloaninfo(new objectuuidpk(billid), getselectors();private selectoritemcollection getselectors() selectoritemcollection sic = new selectoritemcollection();sic
26、.add(*);return sic;private subsidiaryledgerinfo createbaseledger(chloaninfo chloaninfo) subsidiaryledgerinfo slinfo = new subsidiaryledgerinfo();/日期slinfo.setdate(chloaninfo.getbizdate();/幣別slinfo.setcurrency(chloaninfo.getcurrency();/單據(jù)idslinfo.setbillid(chloaninfo.getid();/單據(jù)編碼slinfo.setbillnumber
27、(chloaninfo.getnumber();/匯率slinfo.setexchangerate(chloaninfo.getexchangerate();/是否被出納系統(tǒng)下載過對(duì)賬單slinfo.setisdownload(false);/記賬人slinfo.setbookkeeper(chloaninfo.getcreator();/摘要slinfo.setdescription(chloaninfo.getdescription();/結(jié)算業(yè)務(wù)類型 slinfo.setbiztype(subsidiarybilltypeenum.chloanbill);/公司slinfo.setcom
28、pany(chloaninfo.getcompany();return slinfo; 可以看到,這個(gè)類的主要目的就是組織一個(gè)內(nèi)部賬戶的集合,這個(gè)類完成后,登賬其實(shí)很簡(jiǎn)單,調(diào)用下面的方法即可: subsidiaryledgerfactory.getlocalinstance(ctx).book(chloaninfo.getid().tostring(),chloansubsidiarybookprovider.class.getname(); 取消登賬就是把登賬的記錄從內(nèi)部賬戶明細(xì)賬中刪除,刪除登賬的調(diào)用也很簡(jiǎn)單,只需傳入一個(gè)單據(jù)id就可以了。subsidiaryledgerfactory.g
29、etlocalinstance(ctx).cancelbook(pk.tostring();q8. 資金系統(tǒng)登銀行日記賬資金系統(tǒng)中日記賬對(duì)應(yīng)的實(shí)體為com.kingdee.eas.fi.cas.app.journal,當(dāng)單據(jù)在某個(gè)銀行賬戶上發(fā)生業(yè)務(wù),并希望記錄下來的時(shí)候,就需要登銀行日記賬,登賬的接口如下public interface ibooknotifyfacade extends ibizctrl反登賬 public void antibook(string billid) throws bosexception, easbizexception; 登賬public void book
30、(string buildername, string billid) throws bosexception, easbizexception; 批量登賬public void bookbatch(journalcollection journalcoll) throws bosexception, easbizexception;先看看業(yè)務(wù)場(chǎng)景單據(jù)登賬后可在銀行日記賬中看到該記錄要實(shí)現(xiàn)登記銀行日記賬,主要要做要寫一個(gè)類實(shí)現(xiàn)如下接口public interface ibooknotifybuilder /* * 獲取日記賬集合 * param ctx * param billid * ret
31、urn * throws bosexception * throws easbizexception */ public journalcollection getjournalcoll(context ctx, string billid) throws bosexception,easbizexception; /public journalcollection getoppjournalcoll(context ctx, string billid) throws bosexception,easbizexception; 實(shí)現(xiàn)類的主要目的也是為了生成銀行日記賬數(shù)據(jù),以上面的借款為例看看
32、這個(gè)類如何實(shí)現(xiàn)public class loanbooknotifybuilder implements ibooknotifybuilder /* * 借款單登日記賬的接口實(shí)現(xiàn)類 */public journalcollection getjournalcoll(context ctx, string billid)throws bosexception, easbizexception loaninfo loaninfo = getloaninfo(ctx, billid);journalcollection journalcoll = new journalcollection();jo
33、urnalinfo journalinfo = new journalinfo();journalinfo.settype(journaltypeenum.bank);/銀行賬戶借款單.銀行賬戶journalinfo.setaccountbank(loaninfo.getbankacct();/幣別借款單.幣別journalinfo.setcurrency(loaninfo.getcurrency();/日期當(dāng)前日期journalinfo.setcreatedate(new date();/借方金額借款單.借款金額journalinfo.setdebitamount(loaninfo.geta
34、mount();journalinfo.setisdebit(true);/貸方金額空/結(jié)算方式空/結(jié)算號(hào)空journalinfo.setcreditamount(fmconstants.zero);/業(yè)務(wù)日期借款單.借款開始日journalinfo.setbizdate(loaninfo.getissuedate();journalinfo.setaccountview(loaninfo.getsettlementacct();/對(duì)方科目借款單.貸方科目journalinfo.setoppaccountview(loaninfo.getloanacct();/對(duì)方單位空/單據(jù)類型借款jour
35、nalinfo.setbilltype(billtypeenum.loanbill);/單據(jù)號(hào)借款單.單據(jù)編號(hào)journalinfo.setbillid(loaninfo.getid().tostring();journalinfo.setbillnumber(loaninfo.getnumber();/摘要借款放款journalinfo.setdescription(借款放款);journalinfo.setcompany(loaninfo.getcompany();journalinfo.setverifystatus(verifyscopeenum.nova);journalinfo.s
36、etsource(journalsourceenum.bybill);journalcoll.add(journalinfo);return journalcoll;private loaninfo getloaninfo(context ctx, string billid) throws easbizexception, bosexception loaninfo info = loanfactory.getlocalinstance(ctx).getloaninfo(new objectuuidpk(billid), getselector();return info;private s
37、electoritemcollection getselector() selectoritemcollection sic = new selectoritemcollection();sic.add(*);return sic; 可以看到,這個(gè)類的主要目的就是組織一個(gè)銀行賬戶的集合,這個(gè)類完成后,登賬其實(shí)很簡(jiǎn)單,調(diào)用下面的方法即可: journalcollection journalcoll = new journalcollection();journalcoll.addcollection(builder.getjournalcoll(ctx, billid);ibooknotifyf
38、acade bookfacade = booknotifyfacadefactory.getlocalinstance(ctx);bookfacade.bookbatch(journalcoll);取消登賬就是把登賬的記錄從銀行日記賬中刪除,刪除登賬的調(diào)用也很簡(jiǎn)單,只需傳入一個(gè)單據(jù)id就可以了。ibooknotifyfacade bookfacade = booknotifyfacadefactory.getlocalinstance(ctx);bookfacade.antibook(billid);q9. bi匯總表的開發(fā)eas有一套bi報(bào)表框架,可以在改框架的基礎(chǔ)上快速的開發(fā)出響應(yīng)的報(bào)表,
39、下面會(huì)介紹如何基于eas的bi框架開發(fā)出報(bào)表。新建一個(gè)faade實(shí)體,繼承fmbirptbasefacade,什么方法也不用實(shí)現(xiàn),直接發(fā)布成代碼,在生成的對(duì)應(yīng)的* facadecontrollerbean中會(huì)要求實(shí)現(xiàn)一個(gè)方法protected schemasource readyschemasource(rptparams params, context ctx)throws bosexception, easbizexception從代碼可以看到這個(gè)方法是基類fmbirptbasefacadecontrollerbean中的一個(gè)抽象方法,暫時(shí)實(shí)現(xiàn)這個(gè)方法,邏輯先不寫.建立報(bào)表展示界面元數(shù)據(jù),
40、該界面繼承自mon.client.fmbirptbasemainui;建立報(bào)表過濾界面,繼承自mon.client.fmbirptbasefilterui,發(fā)布并生成代碼實(shí)現(xiàn)界面代碼,首先先看看過濾界面的實(shí)現(xiàn)。在過濾界面中要實(shí)現(xiàn)的代碼主要做的就是把過濾界面輸入的查詢條件存放到bi框架中的rptconditionmanager中。如以下代碼所示:public rptparams getcustomcondition() rptconditionmanager rm = new rptconditionmanager();rm.setproperty(”company”, companyidset
41、);rm.setproperty(”enddate”,dpenddate.getvalue();.這里面主要是從過濾界面的控件中取出值,并以鍵-值的形式存入到rptconditionmanager中接著實(shí)現(xiàn)報(bào)表主界面,報(bào)表主界面需要實(shí)現(xiàn)的方法有protected ibireportbasefacade getremoteinstance() 返回響應(yīng)的faade的遠(yuǎn)程接口protected void onbeforequery()將過濾界面的信息展現(xiàn)再報(bào)表主界面,即表頭信息protected kdtable gettableforprintsetting()返回主界面中kdtable的實(shí)例的名
42、字protected bireportbasefilterui getquerydialoguserpanel()返回查詢界面protected void prepareprintpageheader(headfootmodel header)將表頭信息傳給打印protected map prepareprintvariantmap()返回一個(gè)鍵-值對(duì)應(yīng)的map,打印使用public void actionjoinquery_actionperformed(actionevent e)聯(lián)查明細(xì)表,這個(gè)看業(yè)務(wù)場(chǎng)景而定,不需要聯(lián)查的話則不需要實(shí)現(xiàn)界面的代碼實(shí)現(xiàn)后,就開始編寫報(bào)表的取數(shù)邏輯了,這個(gè)時(shí)
43、候回到剛開始建立的*facadecontrolbean中,現(xiàn)在主要是要為方法readyschemasource寫業(yè)務(wù)邏輯,這個(gè)方法返回一個(gè)schemasource的實(shí)例,這個(gè)實(shí)例中包括了事實(shí)表的sql語句,緯度表的sql語句以及mdx和配置文件的名稱。首先我們以此解釋這寫數(shù)據(jù)事實(shí)表sql語句:事實(shí)表就是指報(bào)表數(shù)據(jù)的來源,比如要查詢借款的匯總表,那么事實(shí)表中的數(shù)據(jù)全部來自借款表中的數(shù)據(jù),只是需要和一些基礎(chǔ)表(幣別,銀行賬戶等)做連接查詢,以便在報(bào)表展現(xiàn)的時(shí)候顯示出幣別的名稱,或者銀行賬戶的名稱,而不是顯示一個(gè)id緯度表sql語句:緯度其實(shí)就是需要匯總的字段,比如一個(gè)報(bào)表需要按照公司匯總,那么公司
44、就是這個(gè)報(bào)表的一個(gè)緯度。緯度表sql語句很好寫,如果是公司的話,直接寫一個(gè)語句查詢出公司就可以了。mdx語句:mdx是一種比較通用的olap接口,eas的bi是基于olap的,這里不對(duì)mdx的語法做詳細(xì)的描述,可以參考mdx用戶指南配置文件:事實(shí)表與緯度表以及mdx語句之間是通過一個(gè)xml格式的配置文件關(guān)聯(lián)起來并最總展現(xiàn)在報(bào)表主界面的,我們拿下面的一個(gè)實(shí)例加以說明-公司緯度表-其中的name對(duì)應(yīng)到facadecontrolbean中的-ss.setdataitem(loancompany, getcompanysql(), null);-期限緯度表,-其中的name對(duì)應(yīng)到facadecontr
45、olbean-中的ss.setdataitem(horizon, gethorizondatasql(), null);-事實(shí)表-其中的name對(duì)應(yīng)到facadecontrolbean-ss.setdataitem(fact, getsumsqlprepared(), getsqlparams(); -fhorizonid是事實(shí)表中的字段,并且對(duì)應(yīng)到緯度表horizon中的fid字段 -floancompanyid是事實(shí)表中的字段,并且對(duì)應(yīng)到緯度表loancompany中的fid字段到此,一個(gè)bi匯總表就算開發(fā)完成了,具體代碼可以參考如下代碼清單com.kingdee.eas.fm.ivt.client.rptchloansummainui企業(yè)貸款匯總表主界面com.kingdee.eas.fm.ivt.client.rptchloansummainui企業(yè)貸款匯總表查詢界面com.kingdee.eas.fm.ivt.app.rptchloansumfacadecontrollerbean企業(yè)貸款匯總表取數(shù)后臺(tái)facaderptchloansum_loancompan
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育行業(yè)項(xiàng)目成功實(shí)施的策略與步驟
- 基于大數(shù)據(jù)的教育市場(chǎng)分析與預(yù)測(cè)
- 教學(xué)質(zhì)量飛躍騰訊新員工的教育科技應(yīng)用
- 2024-2025學(xué)年江西工商職業(yè)技術(shù)學(xué)院?jiǎn)握小段锢怼方?jīng)典例題及答案詳解【必刷】
- 護(hù)理學(xué)概覽與深入探究
- 支氣管肺炎合并心力衰竭診療要點(diǎn)
- 遼寧沈陽(yáng)二中2025高三上第一階段測(cè)試-數(shù)學(xué)(理)
- 問題性皮膚培訓(xùn)課件
- 研學(xué)旅行管理與服務(wù)專業(yè)教學(xué)標(biāo)準(zhǔn)(高等職業(yè)教育專科)2025修訂
- 2025護(hù)士相關(guān)法律法規(guī)培訓(xùn)
- 中層管理干部能力提升培訓(xùn)
- 【大班幼兒心理健康的現(xiàn)狀與對(duì)策9300字(論文)】
- 人工智能在智能體育中的應(yīng)用
- 紀(jì)檢干部培訓(xùn)經(jīng)典課件
- 飼料廠的培訓(xùn)課件
- 每周食品安全排查治理
- 人體寄生蟲學(xué)實(shí)驗(yàn)課件
- 房屋買賣居間合同書范本
- 大家的日語(電子版)
- “怎樣提高學(xué)生的計(jì)算能力”教研活動(dòng)方案
- 談戀愛被騙民事起訴狀范本
評(píng)論
0/150
提交評(píng)論