ORACLE系統(tǒng)值集詳解_第1頁
ORACLE系統(tǒng)值集詳解_第2頁
ORACLE系統(tǒng)值集詳解_第3頁
ORACLE系統(tǒng)值集詳解_第4頁
ORACLE系統(tǒng)值集詳解_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、今天,我們就ERP二次開發(fā)中,經(jīng)常用到的但卻沒有兒個人能非常明了的東東來個明細的講解,這,就是值集。一、值集的概念第一個問題,什么是值集?問同事,同事的回答是值的集合,我找了很久來反駁這句話(喜歡鉆牛角尖的緣故吧,呵呵),卻沒有找到。那么,我就認可這種說法了其實這都是中文的說話,你想想人家Oiacle一開始出來的時候,肯定只有英文的,值集的英文叫ValueSet,泛泛解釋為:值集合,對TOracle中的Value,是指具體或者變化的某一個值,Set是個集合,聯(lián)合起來,具體的或者變化的很多值的集合,即值集。加定語太多,畫蛇添足,呵呵,不過這正好說明了值集的內(nèi)容。大家估且認為值集就是值的集合吧二、

2、值集的驗證類型首先,我們來了解一下值集的驗證類型以下是影響用戶輸入以及使用段或參數(shù)值方式的兒種驗證類型:/無(根本無需驗證)“獨立“從屬“表/特殊(高級)“成對(高級)/可轉(zhuǎn)換獨立“可轉(zhuǎn)換從屬無在允許用戶輸入任意值時,只要該值符合值集格式規(guī)則,您就可以使用“無”類型值集。也就是說,此值不能超過您為值集定義的最大長度,以及它必須符合該值集的任何格式要求。例如,如果值集不允許使用字母字符,則用戶無法輸入值A(chǔ)BC,但是可以輸入值456(對丁最大長度為3的值集而言)。否則,將不驗證使用此值集的段值,并且這些段值也不會有說明。由丁不驗證“無”值集,因此使用此值集的段不為用戶提供值列表。使用此值集的段(即

3、,非驗證的段)不能使用彈性域值安全性規(guī)則來限制用戶輸入的值。獨立“獨立”值集提供了預(yù)定義的段值列表。這些值可能有關(guān)聯(lián)的說明。例如,值01的說明可能為公司01”。此值集中值的含義與其它任何段的值無關(guān)。獨立值存儲在OracleApplicationObjectLibraiy表中。您可以通過OracleApplications窗口中的段值定義獨立值。表驗證表值集提供了類似于獨立集的預(yù)定義值列表,但是其值存儲在應(yīng)用表中。您可以定義使用哪些表,并定義WHERE子句來限制值集耍使用的值。一般來說,如果您在應(yīng)用表中維護了表值(例如,由“定義供應(yīng)商”表單維護的供應(yīng)商名稱表),則可以使用驗證表值集。表驗證還提供

4、了某些高級功能,如允許段從屬丁相同結(jié)構(gòu)中多個前而的段。從屬從屬值集類似丁獨立值集,只是列表中的可用值和給定值的含義從屬丁在彈性域結(jié)構(gòu)的前面段中選定的獨立值。您可以將從屬值集視為小值集的組合,每個小值集適用丁相應(yīng)的獨立值集中每個獨立值。在定義獨立值集的從屬值集之前,您必須定義獨立值集。您可以在“段值”窗口中定義從屬值,您的值將存儲在OracleApplicationObjectLibrary表中。請參閱:獨立值與從屬值之間的關(guān)系特殊值集和成對值集特殊值集和成對值集提供了一種允許“在彈性域中嵌彈性域”的機制。這些值集主耍用T標準請求提交”參數(shù)。對于正常的彈性域段,您通常不使用這些值集。特殊值集和成

5、對值集使用您定義的特殊驗證例行程序。例如,您可以定義驗證例彳了程序,以便提供另一個彈性域作為單個段的值集,或提供一個范圍彈性域作為段對的值集??赊D(zhuǎn)換獨立和可轉(zhuǎn)換從屬可轉(zhuǎn)換獨立值集類似丁提供預(yù)定義的段值列表的獨立值集。但是,您可以使用轉(zhuǎn)換的值。可轉(zhuǎn)換從屬值集類似丁某些從屬值集,這些從屬值集中列表內(nèi)的可用值和給定值的含義從屬于彈性域結(jié)構(gòu)前面的段中選定的獨立值。但是,您可以使用轉(zhuǎn)換的值。彈性域值安全性不能與可轉(zhuǎn)換獨立值集或可轉(zhuǎn)換從屬值集一起使用。對丁格式驗證,可轉(zhuǎn)換值集必須使用格式類型字符。最大長度不大于150。“僅限丁數(shù)字”選項和“右對齊和填零數(shù)字”選項不能與可轉(zhuǎn)換值集一起使用。范圍彈性域不能使用

6、可轉(zhuǎn)換獨立值集或可轉(zhuǎn)換從屬值集。您不能創(chuàng)建具有可轉(zhuǎn)換獨立值集或可轉(zhuǎn)換從屬值集的層次結(jié)構(gòu)或累計組。注:“會計科目彈性域”不支持可轉(zhuǎn)換獨立值集和可轉(zhuǎn)換從屬值集。三、各值集的SAMPLE我們就關(guān)鍵性和難度比較大的兒種值集分別描述。從屬值集的測試從屬值集是這樣的:/從屬的父子值集都必須是獨立值集。/從屬的父子值集如果需耍使用子值集時,必須先使用父值集,且父值集的名稱為參數(shù)名稱。我們先來做一個測試,定義一父值集Mobile_Type,一子值集Mobile_Code定義的過程非常簡單父值集:獨立值集定義值為多普達和諾基亞子值集:從屬值集從屬為MobileType,默認值為None/None(一般從屬值集都

7、用此定義)值為多普達-838/830;諾基亞-s60/n60在實際運用中,只需耍兩值集前后調(diào)用就彳J:,先把父值集保存好,再定義子值集。參數(shù)Nbbile_Type值集驗證Nbbi1eCode看看實際運用的效果優(yōu)點,非常方便的進行從屬處理,但也有其局限性,如只能定義為獨立值集。特殊值集和成對值集的測試特定值集和對值集是這樣的:/特定值集提供另一彈性域為并發(fā)程序某一參數(shù)提供此彈性域?qū)?yīng)值。/成對值集是特定值集成對出現(xiàn)的方式。在這一塊的難點和垂點是,特定值集的定義方式:定義:特殊驗證值集允許您調(diào)用鍵彈性域用戶出n,以便使用彈性域內(nèi)的彈性域機制來驗證彈性域段或報表參數(shù)。您可以調(diào)用彈性域例行程序并使用完

8、整的彈性域作為此值集所傳遞的值。下圖非常簡耍的說明了這點:運打報表報表參數(shù)類型部件號上圖中的部件號就是由一個彈性域段組成,在這里我們應(yīng)用了特定值集的方式來定義部件號所對應(yīng)的值集。那么,當我們的Mouse跳到部件號這個參數(shù)輸入窗口時,就會彈出彈性域錄入窗口,當我們把組合選好后,點確定,就可以在部件號中看到這個組合值。定義注意事項:在定義特殊驗證值集時,您需要指定兩項內(nèi)容:事件和函數(shù)。事件是函數(shù)產(chǎn)生的時間,函數(shù)是對鍵彈性域用戶出口的調(diào)用。例如,一旦用戶輸入了一個值,就會產(chǎn)生“驗證”事件,而且函數(shù)會驗證該值。那么,我們接下去耍談的是,詳細的來談?wù)劯鞣N事件:/編輯/驗證/裝入至于/插入/更新/查詢/編

9、輯/編輯/列表值這是為了未來的擴展預(yù)先定義的,此處不詳細講述。編輯當用戶光標在數(shù)據(jù)錄入模式下進入編輯段時,調(diào)用特殊驗證例行程序?!熬庉嫛笔录ǔJ褂肞OPID(R)。裝入在査詢后立即調(diào)用特殊驗證例行程序以便填寫該段?!把b入”事件通常使用LOADID(R)。您為“裝入”定義的用戶出口根據(jù)存儲的隱藏標識獲得值和說明,并且在用戶進入彈性域段査詢數(shù)據(jù)時啟動該用戶出口。只有在使用隱藏標識時,您才可以定義“裝入”事件。如果定義了“裝入”事件,則您必須具有非空的標識字段(即該字段包含代碼組合標識號)或數(shù)據(jù)字段(即該字段包含與使用隱藏標識列的值集中的值相對應(yīng)的隱藏標識號)。如果定義了“裝入”事件,還必須在標識

10、字段或數(shù)據(jù)字段中使用:!ID(如下所述)。用戶出口會將:!ID的內(nèi)容而不是:!ALUE的內(nèi)容傳遞至報表或彈性域(如下所述九驗證每當用戶光標離開段或關(guān)閉彈出式窗廠I,或者將默認值復(fù)制至段或報表參數(shù)中時,均將調(diào)用特殊驗證例行程序。在査詢后,“驗證”事件也會啟動以便生成查詢值的值說明?!膀炞C”事件通常使用VALID(R)。您必須有一個驗證”事件。為了加深我們對以上言論的理解,我們來做做實驗!我們模仿系統(tǒng)已有值集來定義一個值集:vz_teidmg值集的定義如下(特定值集,只有一編輯事件,保存通過):wc_teicMiJk無安全眩FOPTDcore丁GUT:GI-_SRS_CWRT_OF_MX幼NTS_

11、IDVAIJIKrE=FLLLSEI=:(VALUEISC=:IMEANER列表妾型図艮于叛年(B)僅限于大寫罕母(A-Z)(U)最小值心壯驗證例行程序函數(shù)右對齊和填零編號(0001)(1孩證笑型我們應(yīng)用的效果如下:應(yīng)用產(chǎn)品應(yīng)收帳款管理系統(tǒng)的并發(fā)程序參數(shù)”WZTEST*使用僅在OracleForms中支持的功能。從其它環(huán)境(如OA結(jié)構(gòu)或PLSQLAPI;中可能無法提交此并發(fā)程序。警告消息數(shù):1.參數(shù)“wz_teidmg”使用驗證類型為特殊的席集“wz_teidmg。僅在OiacleForms中支持此值集類型。為什么?難道真是只有OracleFomis才支持,還是因為我們沒有定義驗證?我們再試試

12、定義上驗證還是不行,同樣的錯課提示。難道真的特定值集只能在OracleFomis中使用,而不能使用丁報表中?我們運行一下報表,居然可以正常運行且不出錯!我明白了,定義的時候,F(xiàn)onns會出現(xiàn)這個提示,但不影響程序的正常運行!Oracle這樣做太不地道了。呵呵好了,我們來深入的理解一下導(dǎo)入/編輯/驗證先測試編輯定義結(jié)構(gòu)為:特定-只定義編輯事件:“FNDPOPID”操作現(xiàn)象:可以查詢確認值運行并發(fā):結(jié)果:出錯;APP-FND-00006:未定義用戶出口#。測試編輯+驗證定義結(jié)構(gòu)為:特定-定義編輯事件:“FNDPOPID定義驗證事件:“FNDVAUD操作現(xiàn)象:可以查詢確認值,會驗證值運行并發(fā):結(jié)果:

13、正常!測試導(dǎo)入+驗證定義結(jié)構(gòu)為:特定-定義導(dǎo)入事件:“FNDPOPID”定義驗證事件:“FNDVALID”操作現(xiàn)線:無法進入編輯模式,即你點入值集時,根本不彈出彈性域定義的窗口隨便填入一值后,會觸發(fā)驗證事件運行并發(fā):結(jié)果:無法操作測試結(jié)果:少了編輯無法進入各段的編輯模式。少了驗證會出現(xiàn)未定義用戶出口的錯。少了導(dǎo)入,在提交報表時,沒有任何彩響!但如果應(yīng)用丁FORMS中,則必須有LOADID事件!因為如果在查詢模式下,系統(tǒng)可能并不會彈出彈性域窗I進行驗證事件,則無法將值寫入相應(yīng)的ID。則需耍LOADID事件來將相應(yīng)的Value和ID寫入。OK,以上測試完畢,希望有兄弟能補充一下,以上觀點純粹是個人

14、測試過程中發(fā)現(xiàn)的,肯定有不到位甚至錯謀之處。OK,我們再來理解一下各事件對應(yīng)FND函數(shù)的寫法??纯从卸嗌俜N寫法這里,因為篇幅問題。請參照另一篇文章:揭開壬2函數(shù)的神秘面納成對值集成對值集的定義方式和特定值集的定義方式是一樣的。可轉(zhuǎn)換獨立和可轉(zhuǎn)換從屬的測試可轉(zhuǎn)換獨立一看就與獨立值集有著非常密切的關(guān)聯(lián),從表面上看,它與獨立值集沒有什么差別。當然,不耍跟我說兩個值集類型不一樣,呵呵??赊D(zhuǎn)換獨立值集和可轉(zhuǎn)換從屬值集與獨立值集和從屬值集相似,不同的是用戶可以看到轉(zhuǎn)換值。可轉(zhuǎn)換獨立值集和可轉(zhuǎn)換從屬值集允許您在值集中使用隱藏值和顯示(轉(zhuǎn)換)值。因此,用戶可以查看以首選語言表示的值,但是系統(tǒng)將根據(jù)未轉(zhuǎn)換的隱藏值來驗證此值。我們來看看他們的差別獨立值集的樣式可轉(zhuǎn)換獨立值集樣式應(yīng)用從上面兩表中我們可以看出:可轉(zhuǎn)換獨立值集的轉(zhuǎn)換的值是可以改變的。而獨

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論