OracleERP界面开发form图文Word下载.docx
《OracleERP界面开发form图文Word下载.docx》由会员分享,可在线阅读,更多相关《OracleERP界面开发form图文Word下载.docx(7页珍藏版)》请在冰豆网上搜索。
/Oracle/OracleForm/FORMS
呵呵。
。
準備工作做完成。
開發OracleEBISForm需要套用標準模板TEMPLATE.fmb即可,若自己開發類似的功能的Form,那真是NB人也!
!
此文件在D:
/Oracle/OracleForm/Form目錄中。
了解一下Form中的常用的對像:
1.DataBlock(數據塊):
相當於數據源,指定數據來源於哪個表、哪個視圖或過程等等。
2.Item(項目)是Form最小單元,也是DataBlock最小單元,相當也表或視圖也過程的遊標某一段。
3.Canvae(畫布)用於布局數據垮的界面。
畫布與數據塊沒有直接的對應關系,而是直接與Item對應,一個Canvae上的Item可以來源不同的DataBlock。
4.LOV(LOV):
相當於下拉列表也列表
5.Parameter(參數)相當於Form的全局變量,用於傳遞參數。
6.RecordGroup(記錄組):
是LOV的數據源。
7.Window(窗體):
一個Window隻能一個Canvae.8.Form:
一個Form可以多個Window下面手工創建一個簡單的Form
第一:
打開文件TEMPLANTE.fmb.另存為HHRALANTEST.fmb1.1選擇Open,然後彈出一個文件選擇對話框1.2打開TEMPLANTE.fmb
1.3另存文件為HHRALANTEST.fmb。
但是,Form的名稱還TEMPLANTE,選中TEMPLANTE-->
右擊選擇PropertyPalette-->
在Name欄位中輸入HHRALANTEST。
第二:
刪除樣版自帶的對像如下圖
2.1DataBlock:
BLOCKNAME、DETAILBLOCK2.2Canvee:
BLOCKNAME2.3Window:
BLOCKNAME
第三:
添加DataBlock3.1選擇DataBlock
3.2選擇Create,會彈出NewDataBlock對話框3.3選擇Buildanewdatablockmanually
3.4選擇剛才創建的DataBlock-->
右擊選擇PropertyPalette
3.5修改Name為HHRALANTEST,並修改SubclaInformation為BLOCK3.6QueryDataSourceName輸入HHR_ALAN_TESTS(表名)
第四:
添加Canvae(畫布)
第五添加Window(窗口)
注意:
5.4中PrimaryCanva(主要畫布)為第四步添加的畫布HHRALANTEST第六修改Form之PropertyPalette(特征盤)的屬性,6.1ConoleWindow為FIRSTWIND
6.2FirtNavigationDataBlock為HHRALANTEST
第七修改畫布(HHRALANTEST)PropertyPalette的屬性7.1Window為FIRSTWIND
第八修改觸發器代碼和程序單位
8.1修改Form-->
HHRALANTEST-->
Trigger-->
雙擊PER-FROMW如下圖
8.2修改Form-->
ProgramUnit-->
雙擊APP_CUSTOM(PackageBody)如下圖
注意:
若不修改以上二個程序單元,Form無在OracleEBIS中打開和關閉第九在HHRALANTEST的數據塊(DataBlock)中添加項目(Item)
9.1選擇Item
9.2創建Item
9.3選擇剛才創建的Item,右擊選擇PropertyPalette
9.4修改相關屬性如下圖
9.5修改Required為Ye,ColumnName欄位中輸入CODE如下圖
9.6選擇Item顯示哪張畫布上
9.7創建Item的標簽說明:
其它Item用重復按照上述方法創建。
Required為Ye表示在新增或修改時此欄此不能為空第十布署各個Item在畫布上的位置。
開發完成後要編譯,按Ctrl+Shift+K編譯通過。
接著上章節OracleForm開發
(2)--Form開發入門講
第一FTP上傳到$HHR_TOP/form/US(英文版本目錄)和$HHR_TOP/form/ZHS(簡體中文版本目錄)。
第二Telnet到OracleForm服務上,一定要用在$AU_TOP/form/US或$AU_TOP/form/ZHS目錄下編譯Form輸入如下命令:
f60gen$HHR_TOP/form/US/HHRALANTEST.fmbapp/apppaoutput_file=$HHR_TOP/form/US/HHRALANTEST.fm某f60gen:
命令頭固定的
$HHR_TOP/form/US/HHRALANTEST.fmb:
為第一步文件FTP上傳的目錄
app/apppa:
編譯form文件一定要用app用戶,因此也是固定的。
apppa是app用戶的密碼。
output_file=$HHR_TOP/form/US/HHRALANTEST.fm某:
編譯form文件到指定的目錄和名稱(HHRALANTEST.fm某)
第三在OracleEBIS系注冊表單
1.添加Form(SytemAdminitrator-->
Application-->
Form)
1.1輸入Form(表單名稱)注意一定要與Form文件名一樣:
HHRALANTEST
1.2選擇此Form中哪個系統中用的,本例選擇在HHRPOCutomization1.3輸入UerFormName(用戶表單名稱)
1.4輸入說明文件字
2.說明Form功能(SytemAdminitrator-->
Function)
2.1輸入Function(功能名稱)
2.2輸入UerFunctionName(用戶功能名稱)
2.3定到位Propertie.
2.4選擇Type(功能類型)為Form
2.5定到位Form
2.6輸入或選擇HHRALANTEST(剛才添加的表單)其它項跟需要也可以一一填寫上去
3.將上步創建的功能添加到菜單(Menu)中去3.1查找到指定的菜單
3.2輸入Prompt(提示說明)
3.3輸入或選擇功能HHRALANTEST
上節學習開第一個Form,這個節在添加一個彈出下拉框
第一步:
添加記錄組
1.1選中RecordGroup1.2單擊Create1.3輸入查詢SQL1.4單擊OK
1.5修改剛才創建的RecordGroup為VENDORRG
第二步:
添加LOV
2.1選中LOV2.2單擊Create
2.3選擇BuildanewLOVmanually,單擊OK2.4改修LOV為VENDOR_LOV
2.5打開VENDOR_LOV的特征盤(Palette),Title輸入供應商,選擇RecordGroup為VENDORRG
2.6單擊ColumnMappingPropertie,顯示LOVColumnMapping窗口,在
ColumnName下拉框中輸入列名VENDOR_CODE(此列名與上面RecordGroup為VENDORRG中的SQLSelect語句字段一樣),ReturnItem選擇返回給數據塊HHRALANTEST中項目VENDOR_CODE,DiplayWidth是顯示列寬,ColumnTitle是顯示列名。
如果不需返回給某項目,ReturnItem為空。
但是,DiplayWindow和Column
Title是一定要輸入。
1.FND_MESSAGE.SET_STRING(‘’)。
此消息一定要結合FND_MESSAGE.SHOW或FND_MESSAGE.ERROR或FND_MESSAGE.HINT或FND_MESSAGE.WARN或
FND_MESSAGE.QUESTION使用才能彈出對話窗口或顯示消息。
例如:
FND_MESSAGE.SET_STRING(‘陳顯平測試OracleForm的消息,’||Chr(10)||
‘大家看一下是否成功?
’);
FND_MESSAGE.SHOW;
2.FND_MESSAGE.SET_NAME(‘’,’’)
此消息也要結合FND_MESSAGE.SHOW或FND_MESSAGE.ERROR或FND_MESSAGE.HINT或FND_MESSAGE.WARN或
參數說明:
:
用應產品簡稱.如下圖紅色圓框:
消息代碼。
若在系統表中找不對應消息說明,則消息說明自動默認為。
還有,消息代碼使用前自動轉換大寫。
為何OracleForm要內置此函數?
它是為了系統定義多語言版本。
FND_MESSAGE.SET_NAME(‘FPT’,’ORACLE_001’);
FND_MESSAGE.ERROR;
3.FND_MESSAGE.DUBEG(‘’);
它是用於調試的,效果等同於FND_MESSAGE.SET_NAME或FND_MESSAGE.SET_STRING結合FND_MESSAGE.SHOW使用。
FND_MESSAGE.DEBUG(‘陳顯平測試OracleForm的消息,’||Chr(10)||
4.FND_MESSAGE.SHOW、FND_MESSAGE.ERROR、FND_MESSAGE.HINT和FND_MESSAGE.WARN的區別FND_MESSAGE.SHOW提示的是注意消息,如下圖
FND_MESSAGE.ERROR提示的是誤錯消息,如下圖
FND_MESSAGE.HINT是顯示在表單中的狀態欄,如下圖
FND_MESSAGE.WARN提示有“確認”和“取消”二個按鈕,選擇進下一步操作,它與FND_MESSAGE.QUESTION類似。
5.FND_MESSAGE.QUESTION(BUTTON1INVARCHAR2,BUTTON2INVARCHAR2,BUTTON3INVARCHAR2,DEFAULT_BTNINNUMBER,CANCEL_BTNINNUMBER,ICONINVARCHAR2)
用於自定義對話按鈕,比FND_MESSAGE.WARN要靈活多了。
FND_MESSAGE.SET_STRING(‘陳顯平測試OracleForm的消息,’||Chr(10)||‘大家看一下是否成功?
Int_Chooe:
=FND_MESSAGE.QUESTION(‘確定’,null,’取消’,1,2,’NOTE’);
IfInt_Chooe=2ThenNull;
EleIfInt_Chooe=1ThenNull;
EndIf;
按照OracleForm開發
(2)—Form入門的第一到第二步步驟創建一個HHRJEWELS表單。
使用數據塊向導導入三表表分別:
HHR_JEWEL_ITEMS、HHR_JEWEL_STONE和HHR_JEWEL_GOLDS,基中導入的數據塊名與表名相同,但是可以重命名(如
HHR_JEWEL_ITEMSW重命名為HHRJEWEL,HHR_JEWEL_STONE重命名為HHRSTONE),數據塊向導導入的好處就是數據塊和項目屬性默認與表結構相同,如數據類型、字段長度和是否允許為空等等,減少手工設置。
HHR_JEWEL_STONE和HHR_JEWEL_GOLDS是表HHR_JEWEL_ITEMS二個屬性描述表,類似於PO明細與PO主題關系。
因此,需要創建它們之間關系:
1.選取數據塊HHRJEWEL下的Relation2.單擊創建按鈕
3.選擇細明數據塊HHRSTONE
4.選擇Non-Iolated,若明細表存在記錄,則主題表不能刪除;
若選擇iolated並明細表存
在記錄,則主題表也能刪除。
5.入輸ITEM_ID,主題表與明細表之間相關聯的字段。
以同樣方法創建HHRJEWEL與HHR_JEWEL_GOLDS的關系。
在創建二個關系同時,數據塊HHRJEWEL觸發器自動創建二個事件:
ON-POPULATE-DETAILS和ON-CHECK-DELETE-MASTER,程序單元(ProgramUnit)也自動創建三個過程:
Check_Package_Failure、Clear_All_Mater_Detail和Query_Mater_Detail。
要查看二個明細表中的項目ITEM_ID屬性CopyValuefromItem是否為HHRJEWEL.ITEM_ID
創建HHRJEWEL畫布,它為HHRJEWEL窗體的首要畫布。
在此畫布上添加一個框架(Frame),並設置此框架屬性如:
LayoutDataBlock為HHRJEWEL
UpdateLayout為Automatically表示自動布局,若要改為手工布局,則此項為Manually。
當添加項目到畫布時,項目會自動布局。
使用框的好處是方便版面布局和界面簡潔。
但是,我們看到界面中沒有ITEM_ID項目,這個項目是不需要顯示在界面上的,它新增時自動產生的。
因此,在表單新增記錄時,需要在HHRJEWEL數據塊觸發器上添加事件:
ON-INSERT,事件代碼如下:
Declare
Ma某ItemIDnumber;
begin
electMa某(ITEM_ID)IntoMa某ItemIDFromHHR_JEWEL_ITEMS;
IfMa某ItemIDiNullThenMa某ItemID:
=1;
Ele
Ma某ItemID:
=Ma某ItemID+1;
Endif;
HHRJEWEL.ITEM_ID:
=Ma某ItemID;
InertIntoHHR_JEWEL_ITEMS(ITEM_ID,BAR,JEWEL_NAME,DESCR)Value(
HHRJEWEL.ITEM_ID,:
HHRJEWEL.BAR,
HHRJEWEL.JEWEL_NAME,:
HHRJEWEL.DESCR);
End;
創建Tab畫布,與HHRJEWEL畫布是不一樣的,首先需要在工具欄中選擇TabCanva,然後在HHRJEWEL畫布上繪畫Tab畫布區域大小,這樣就創建了一個Tab畫布。
它默認是一個TabPage。
設置Tab畫布的類型為:
Tab_CANVAS.
分別設置TabPage的標簽名為HHRSTONE和HHRGOLD
但是,我們要在這個TabPage頁上實現表格有水平和垂直滾動條,是不可能的事,因為TabCanva上不能再放StackedCanva。
而二個滾條同時出現,就必須要有StackedCanva。
那