用友UAP單據(jù)開(kāi)發(fā)參照部分_第1頁(yè)
用友UAP單據(jù)開(kāi)發(fā)參照部分_第2頁(yè)
用友UAP單據(jù)開(kāi)發(fā)參照部分_第3頁(yè)
用友UAP單據(jù)開(kāi)發(fā)參照部分_第4頁(yè)
用友UAP單據(jù)開(kāi)發(fā)參照部分_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

UAP單據(jù)開(kāi)發(fā)(參照部分)編制人:編制日期:2012年10月目錄TOC\o"1-5"\h\z\o"CurrentDocument".功能概述 3\o"CurrentDocument".參照結(jié)構(gòu)圖 3\o"CurrentDocument".參照分類 4\o"CurrentDocument".參照設(shè)計(jì) 4\o"CurrentDocument"數(shù)據(jù)庫(kù)注冊(cè)參照模型類 .4\o"CurrentDocument"NC模型和參照關(guān)聯(lián) 4\o"CurrentDocument"列表型參照Model設(shè)計(jì) 5\o"CurrentDocument"樹(shù)型參照Model設(shè)計(jì) 7\o"CurrentDocument"左樹(shù)右表型參照Model設(shè)計(jì) 9\o"CurrentDocument".參照使用 10\o"CurrentDocument"實(shí)體層使用參照 11\o"CurrentDocument"單據(jù)模板設(shè)置參照 11\o"CurrentDocument"代碼動(dòng)態(tài)掛接參照 12\o"CurrentDocument"自定義參照 12\o"CurrentDocument"簡(jiǎn)單自定義參照 13\o"CurrentDocument"復(fù)雜自定義參照 13\o"CurrentDocument"設(shè)置參照多選 13\o"CurrentDocument".重要類說(shuō)明 13\o"CurrentDocument"UlRefPane中的設(shè)置: 13\o"CurrentDocument"refModle中的設(shè)置 14適用對(duì)象:會(huì)制作單據(jù)模板,想進(jìn)一步了解參照的使用.功能概述參照控件一般在界面上表現(xiàn)形式是控件上有個(gè)9,用戶點(diǎn)擊后,彈出對(duì)話框,用戶選擇數(shù)據(jù)后,數(shù)據(jù)回寫到控件上,顯示信息是text值,后臺(tái)存有value值。這個(gè)和下拉框有些類似,但下拉框適用于數(shù)據(jù)條數(shù)少的,例如:請(qǐng)假方式,可能只有事假,婚假,病假,這幾種形式,而參照適用于大批量數(shù)據(jù),例如用戶選擇,可能涉及到集團(tuán)選人的情況。同時(shí)參照也支持多選的情況,但下拉框一般不做成多選。.參照結(jié)構(gòu)圖這個(gè)圖示控件和參照綁定之間的關(guān)系,參照控件在界面上就是UlRefPane,它綁定的參照類需要繼承...RefModel圖1.參照分類系統(tǒng)默認(rèn)有4種參照,他們分別是列表型、樹(shù)型、左樹(shù)右表型、大數(shù)據(jù)量樹(shù)表型,同時(shí)可以自定義參照,除復(fù)雜自定義參照外,其他參照近需要定義RefModel即可,進(jìn)行數(shù)據(jù)庫(kù)注冊(cè),和控件的關(guān)聯(lián),平臺(tái)會(huì)用對(duì)話框來(lái)展示這些數(shù)據(jù),用戶選擇數(shù)據(jù)后,回寫用戶選擇的數(shù)據(jù),無(wú)需用戶自己寫對(duì)話框來(lái)展示數(shù)據(jù)。復(fù)雜的自定義參照,就需要用戶來(lái)些對(duì)話框去展示自己的數(shù)據(jù),以及界面布局.表型:列表展示,它繼承AbstrarctRefModel.樹(shù)型:tree樹(shù)型結(jié)構(gòu)顯示,它繼承AbstractRefTreeModel.樹(shù)表型:左邊是樹(shù),右邊是表,適合數(shù)據(jù)量比較大的,它繼承AbstractRefGridTreeModel.大數(shù)據(jù)量樹(shù)表型:左邊是樹(shù),右邊是表,適合數(shù)據(jù)量比較大的,它繼承AbstractRefGridTreeBigDataModel.自定義參照,他和默認(rèn)繼承的類繼承方式是一樣的,只是不用數(shù)據(jù)庫(kù)注冊(cè),在單據(jù)模板那里直接可以使用這個(gè)自定義參照。.參照設(shè)計(jì)數(shù)據(jù)庫(kù)注冊(cè)參照模型類你可以先確定好類名,或者先寫好Model類也可以,請(qǐng)修改code,metadatatypename,modulename,name,pk_refinfo,refclass,完整實(shí)例如下:INSERTINTOdbo.bd_refinfo(code,dr,isneedpara,isspecialref,metadatatypename,modulename,name,para1,para2,para3,pk_refinfo,refclass,refsystem,reftype,reserv1,reserv2,reserv3,resid,residpath,ts,wherepart)VALUES('dept100',0,NULL,NULL,'dept','demo','銷售部門列1」表型參照測(cè)試',NULL,NULL,NULL,'Dept2000000000XYHJ','nc.ui.demo.ref.SaleDeptRefModel',NULL,0,NULL,NULL,NULL,'銷售部門列1」表型參照測(cè)試','ref','2011-11-1115:01:24',NULL)NC模型和參照關(guān)聯(lián)例如,給部門設(shè)計(jì)參照,設(shè)計(jì)完NC模型后,在參照頁(yè)簽中,選擇【設(shè)置參照】,會(huì)彈出參照對(duì)話框,從對(duì)話框中選擇上面數(shù)據(jù)庫(kù)注冊(cè)的參照模型類,這樣你設(shè)計(jì)的參照模型類就掛接到實(shí)體上了,當(dāng)別的實(shí)體引用部門后,就可以給部門掛接參照。步驟如下:

.在NC模型設(shè)計(jì)器中,在引用模型中找到 uap\meta\general_interface.bmf業(yè)務(wù)接口IBDObject拖到你的元數(shù)據(jù)界面上,建立業(yè)務(wù)接口和你的實(shí)體的業(yè)務(wù)接口屬性映射,例如id和實(shí)體pk的關(guān)聯(lián),參照要求必須實(shí)現(xiàn)這個(gè)接口,才能使用參照.設(shè)置參照,在參照那里選擇設(shè)置參照,找到你數(shù)據(jù)庫(kù)注冊(cè)的那個(gè)參照列表型參照Model設(shè)計(jì)下面就是列表型參照設(shè)計(jì)的一個(gè)實(shí)際例子,同時(shí)注意紅色字體部分,就是如何顯示上級(jí)的,因?yàn)樯霞?jí)是個(gè)pk,所以要根據(jù)pk獲取它的名稱來(lái)顯示。列表型圖示如下,點(diǎn)擊部門,顯示下面的部門列表,同時(shí)支持多選。完整代碼如下。摘回里織I 3丘口單據(jù)號(hào)早裾卜潮_圖3publicclassSaleDeptRefModelextendsAbstractRefModel{publicSaleDeptRefModel()(reset();)publicvoidreset()(setRefNodeName("部門");setFieldCode(newString[]{"code","name","mnecode","pk_fatherorg"});setFieldName(newString[]{“編碼”,“名稱",“助記碼",“上級(jí)部門”});setHiddenFieldCode(newString[]{"pk_dept","displayorder","innercode"});setPkFieldCode("pk_dept");setRefCodeField("code");setRefNameField("name");setTableName(DeptVO.getDefaultTableName());setMnecode(newString[]{"mnecode","name"});setAddEnableStateWherePart(true);setResourceID("dept");setFilterRefNodeName(newString[]{"業(yè)務(wù)單元"});setOrderPart("displayorder,code");resetFieldName();〃獲取上級(jí)部門Stringfomula_dept="name->getColValue(org_dept,name,pk_dept,pk_fatherorg)";setFormulas(newString[][]{newString[]{"pk_fatherorg",fomula_dept}});}publicvoidfilterValueChanged(ValueChangedEventchangedValue){StringselectedPKs[]=(String[])(String[])changedValue.getNewValue();if(selectedPKs!=null&&selectedPKs.length>0)setPk_org(selectedPKs[0]);protectedStringgetEnvWherePart(){return(newStringBuilder()).append("(pk_group='").append(getPk_group()).append("'and").append("pk_org").append("='").append(getPk_org()).append("')").toString();)樹(shù)型參照Model設(shè)計(jì)下面就是樹(shù)型參照設(shè)計(jì)的一個(gè)實(shí)際例子,樹(shù)型圖示如下,點(diǎn)擊部門,顯示下面的部門樹(shù)型參照。完整代碼如下。"T部nIX□的劇新國(guó)攔目id需1且掂日期? 盛犯職?部門HI'=s||4baleie技編定的nanBDd100^3^lOOIZZIDOflOOOQOOOOYV二g明號(hào)[poo1Q曲黃一馥1QQ1Z?]曬WWQQQUyi;DmiDaso^ZnPlooizziDDnaaaaooDUYjD虎口口技術(shù)部lOO1ZZ1D0flflOOOOOOUYG隋定LY,圖4publicclassSaleDeptTreeRefModelextendsAbstractRefTreeModel{publicSaleDeptTreeRefModel(){reset();)publicvoidreset(){setRefNodeName("部門");setFieldCode(newString[]{"code","name","mnecode"});setFieldName(newString[]{"編碼”,“名稱","助記碼"});setHiddenFieldCode(newString[]{"pk_dept","pk_fatherorg","displayorder","innercode"});setPkFieldCode("pk_dept");setRefCodeField("code");setRefNameField("name");setTableName(DeptVO.getDefaultTableName());setFatherField("pk_fatherorg");setChildField("pk_dept");setMnecode(newString[]{"mnecode","name"});setAddEnableStateWherePart(true);setResourceID("dept");setFilterRefNodeName(newString[]{"業(yè)務(wù)單元"});setOrderPart("displayorder,code");resetFieldName();setTreeIconPolicy(newOrgTreeCellRendererIconPolicy("Department"));}publicvoidfilterValueChanged(ValueChangedEventchangedValue){StringselectedPKs[]=(String[])(String[])changedValue.getNewValue();if(selectedPKs!=null&&selectedPKs.length>0)setPk_org(selectedPKs[0]);}protectedStringgetEnvWherePart(){return(newStringBuilder()).append("(pk_group='").append(getPk_group()).append("and").append("pk_org").append("='").append(getPk_org()).append("')").toString();}左樹(shù)右表型參照Model設(shè)計(jì)下面就是左樹(shù)右表型參照設(shè)計(jì)的一個(gè)實(shí)際例子,左樹(shù)右表型圖示如下,點(diǎn)擊部門,顯示下面的左樹(shù)右表型參照。完整代碼如下。左樹(shù)右表型參照型設(shè)計(jì)原理是點(diǎn)擊左邊的節(jié)點(diǎn)樹(shù),進(jìn)行數(shù)據(jù)過(guò)濾,顯示在右邊的表中,那就需要在點(diǎn)擊節(jié)點(diǎn)的時(shí)候,把節(jié)點(diǎn)值傳過(guò)去,右表根據(jù)節(jié)點(diǎn)值進(jìn)行過(guò)濾。左邊樹(shù)通過(guò)setClassJoinField("pk_org");傳過(guò)去值,右表通過(guò)setDocJoinField("pk_org");進(jìn)行接收。都門-'K口起常至部 由制新直任目■的鋼怖 名稱2 - =ill.二-l-Ls1; Ju-tIL'-i.-.■□Th+,he大學(xué)北京句T;可央1[91DU 叫唐卻■也一部30200 技術(shù)部4卅1口費(fèi) 觸二鈿陲% 取消(5publicclassSaleDeptGridTreeRefModelextendsAbstractRefGridTreeModel{publicSaleDeptGridTreeRefModel(){reset();)@Overridepublicvoidreset(){setRefTitle("部門");setRootName("組織");setClassFieldCode(newString[]{"code","name","pk_children","pk_father",,,display_order,,,1,pk_org",/**組織主鍵,對(duì)于BU,就是pk_org,對(duì)于部門,就是所屬BU的pk_org*/"pk_group"));setClassFatherField("pk_father");setClassChildField("pk_children");setClassJoinField("pk_org");StringBuilderclassTableName=newStringBuilder();classTableName.append("(selecto.code,,2,3,4,5,6,o.pk_group,a.pk_adminorgpk_children,"+"a.pk_fatherorgpk_father,o.pk_org,o.codedisplay_order").append("fromorg_adminorgainnerjoinorg_orgsoona.pk_adminorg=o.pk_org)org");setClassTableName(classTableName.toString());setClassDefaultFieldCount(getClassDefaultFieldCount());setClassDataPower(true);setClassWherePart("pk_group='"+getPk_group()+"'");setClassOrderPart("display_order");setFieldCode(newString[]{"code","name","mnecode"});setFieldName(newString[]{“編碼”,“名稱",“助記碼"});setHiddenFieldCode(newString[]{"pk_dept","pk_fatherorg","displayorder","innercode"});setTableName(DeptVO.getDefaultTableName());setPkFieldCode("pk_dept");setDocJoinField("pk_org");setOrderPart(DeptVO.CODE);setRefCodeField(DeptVO.CODE);setRefNameField(DeptVO.NAME);resetFieldName();}.參照使用使用參照大概有四種方式,第一實(shí)體層直接使用,二單據(jù)模板中設(shè)置,三代碼動(dòng)態(tài)掛接,,以及自定義參照,下面分別說(shuō)明。

實(shí)體層使用參照在設(shè)計(jì)實(shí)體的時(shí)候,可以默認(rèn)設(shè)置參照,例如部門,這里的部門參照選擇要求,在部門實(shí)體那里你設(shè)計(jì)的參照和實(shí)體進(jìn)行了掛接,如果僅僅是數(shù)據(jù)庫(kù)實(shí)體模型進(jìn)行了注冊(cè),但沒(méi)有和實(shí)體掛接,那這里是看不到的屋性見(jiàn)名■接口屬性映射拳里二屋性見(jiàn)名■接口屬性映射拳里二魂 ]:,.一 1震住「魂 ]:,.一 1震住「3不用匕1E示用性增加州除下靠上移亙頂宜底名稱里示型混相李盟金容建照名稱 描述有「doptvid部門REF部門依本信息cd&ptwidvarchar^中cdeptid部門最新相本REF部門cdeptidvsr^iar■部門版本 ?HA印CBmployae...業(yè)務(wù)員REF人員基本信皂csmploy&e..i?vsrehar|口川一口1>.千1rn“嗎;|單據(jù)模板設(shè)置參照在設(shè)計(jì)實(shí)體的時(shí)候,可以客戶自己設(shè)置參照,例如部門,這里的部門參照選擇要求,僅僅是數(shù)據(jù)庫(kù)實(shí)體模型進(jìn)行了注冊(cè)即可,不用和實(shí)體掛接也能看到。企15&_F414ord.sr精售訂單主九上]不用+口門日落色主專田1Hf 甫售訂田用黃£_江皿角由田晶氏麻匚摘生組織田用江或匚冒箱主組織版本ffid才ctr皿typeid訂單妞喈VlfiiiLffpsctidi訂單1類^*ebiitxpejdIt否說(shuō)在 *丸型i捏示公諭海心式駿讓公式能琉效M生金占f觥漏.能當(dāng)酬顯啜期翻晦代碼動(dòng)態(tài)掛接參照在卡片界面上參照對(duì)應(yīng)的控件就是一個(gè)UlRefPane,可以通過(guò)代碼動(dòng)態(tài)的掛接參照,找到你的組件,然后把它轉(zhuǎn)為UlRefPane,即可設(shè)置參照,完整代碼如下:publicclassSaleOrderCardFormextendsHrBillFormEditor{@OverridepublicvoidinitUI(){super.initUI();setDefRef();)/***設(shè)置默認(rèn)參照*/privatevoidsetDefRef(){BillCardPanelpanel=getBillCardPanel();if(panel!=null){〃部門多選BillItemcdeptid=panel.getHeadItem(SaleOrderHVO.CDEPTID);if(cdeptid!=null){UIRefPanep=(UIRefPane)cdeptid.getComponent();if(p!=null){//p.setRefNodeName("銷售部門列表型參照測(cè)試");//p.setRefNodeName("銷售部門樹(shù)型參照測(cè)試");p.setRefNodeName("銷售部門左樹(shù)型右列表參照測(cè)試");p.setMultiSelectedEnabled(true);)自定義參照自定義參照分類兩類,一是簡(jiǎn)單自定義參照要求只要制作一個(gè)數(shù)據(jù)模型參照類即可,不用NC模型掛接,也不用數(shù)據(jù)庫(kù)注冊(cè),在單據(jù)模板初始化時(shí),例如給部門掛接參照,你找到部門,打開(kāi)參照選擇,你對(duì)【是否自定義參照】打鉤后,在自定義參照類名稱那里輸入輸入類名全路徑即可,同時(shí)用“<>”包著,例如:<nc.ui.demo.ref.SaleDeptRefModel>,平臺(tái)會(huì)讀取數(shù)據(jù)然后,對(duì)話框打開(kāi);二是如圖1中的自己寫個(gè)對(duì)話框繼承IRefUINew2,自己去實(shí)現(xiàn)展示。簡(jiǎn)單自定義參照J(rèn)Tfiiordsr鴇售訂單主二JTfiiordsr鴇售訂單主二/csalfioriirid.隹j售主關(guān)田EO_ffiLiMficr_b揩國(guó)r同前如£啊鹿國(guó)銷售給跟用加FHbJ,茹當(dāng)組織版本S5fTrmt.yrrd訂單類超營(yíng)Eh皿0FME訂單生』由就clirtzpeid北勞王催圖8復(fù)雜自定義參照如圖1中的自己寫個(gè)對(duì)話框繼承IRefUINew2,自己去實(shí)現(xiàn)展示。設(shè)置參照多選參閱【代碼動(dòng)態(tài)掛接】章節(jié)的代碼,即是設(shè)置多選。注意:設(shè)置參照放上面,設(shè)置多選放下面,否則不起作用p.setRefNodeName("銷售部門左樹(shù)型右列表參照測(cè)試");p.setMultiSelectedEnabled(true);.重要類說(shuō)明UIRefPane中的設(shè)置:setToolTipText(String);〃設(shè)置參照控件的toolTipsetMaxLength(int);〃設(shè)置輸入字符的最大長(zhǎng)度,默認(rèn)20;setEditable(boolean);〃設(shè)置參照是否可編輯setEnabled(boolean);〃設(shè)置參照是否可以使用setDelStr(String);〃設(shè)置參照輸入框不能輸入的字符串。setColor(Color);〃設(shè)置參照輸入框的背景色。setCacheEnabled(boolean);//是否使用緩存setMultiSelectedEnabled(boolean)J/是否允許多選擇setAutoCheck(boolean);//是否自動(dòng)解析輸入的參照數(shù)據(jù)setButtonFireEvent(boolean);//按鈕選擇數(shù)據(jù)后是否觸發(fā)ValueChanged事件setNotLeafSelectedEnabled(Boolean);/俳末級(jí)節(jié)點(diǎn)是否可選擇(對(duì)樹(shù)參照有效)setIncludeSubShow(boolean);//樹(shù)型參照是否包含下級(jí)復(fù)選框是否顯示setMultiCorpRef(boolean);〃是否多組織參照setTreeGridNodeMultiSelected(boolean);//樹(shù)表參照是否允許選擇不同樹(shù)節(jié)點(diǎn)下的數(shù)據(jù)。setRe仃ype(intre仃ype)設(shè)置參照顯示類型,通過(guò)這個(gè)方法設(shè)置參照為下拉列表的顯示樣式。refType的定義在IRefConst中。setMultiOrgSelected(booleanisMulti

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論