Oracle ERP 界面开发form.docx

上传人:b****4 文档编号:4402209 上传时间:2022-12-01 格式:DOCX 页数:24 大小:1.45MB
下载 相关 举报
Oracle ERP 界面开发form.docx_第1页
第1页 / 共24页
Oracle ERP 界面开发form.docx_第2页
第2页 / 共24页
Oracle ERP 界面开发form.docx_第3页
第3页 / 共24页
Oracle ERP 界面开发form.docx_第4页
第4页 / 共24页
Oracle ERP 界面开发form.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

Oracle ERP 界面开发form.docx

《Oracle ERP 界面开发form.docx》由会员分享,可在线阅读,更多相关《Oracle ERP 界面开发form.docx(24页珍藏版)》请在冰豆网上搜索。

Oracle ERP 界面开发form.docx

OracleERP界面开发form

OracleForm開發

(1)--FormBuilder前期準備

安裝acleForm6i及補丁以後,你自己開發的Form與OracleEBIS其它的Form不一樣,如:

      1.沒有工具欄;

      2.不能用通用的快捷鍵F11、Ctrl+F11和F6等等

這種毛病在第一次開發人員的通病。

後來才知道,沒有做好Form前期準備工作,不多說了,開始做事吧

  第一:

FTP到OracleEBIS服務器的devappl/au/11.5.0(也就是$AU_TOP)目錄下,下載二個文件夾:

Forms和Resource,將它們保存在目錄D:

/Oralce/OracleForm目錄。

      第二:

修改注冊表

        2.1開始-->單擊”運行“-->輸入regedit--回車

      2.2找到HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE數值名稱:

NLS_LANG,修改數值數據為AMERICAN_AMERICA.UTF8

    2.3找到HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE數值名稱:

FORMS60_PATH,修改數值數據為D:

/Oracle/OracleForm/resource;D:

/Oracle/OracleForm/FORMS

    呵呵。

準備工作做完成。

OracleForm開發

(2)--Form開發入門

 開發OracleEBISForm需要套用標準模板TEMPLATE.fmb即可,若自己開發類似的功能的Form,那真是NB人也!

此文件在D:

/Oracle/OracleForm/Forms目錄中。

      了解一下Form中的常用的對像:

  1.DataBlocks(數據塊):

相當於數據源,指定數據來源於哪個表、哪個視圖或過程等等。

  2.Items(項目)是Form最小單元,也是DataBlocks最小單元,相當也表或視圖也過程的遊標某一段。

  3.Canvases(畫布)用於布局數據垮的界面。

畫布與數據塊沒有直接的對應關系,而是直接與Item對應,一個Canvases上的Item可以來源不同的DataBlocks。

  4.LOVs(LOV):

相當於下拉列表也列表

  5.Parameters(參數)相當於Form的全局變量,用於傳遞參數。

  6.RecordGroups(記錄組):

是LOVs的數據源。

  7.Windows(窗體):

一個Windows隻能一個Canvases.

      8.Form:

一個Form可以多個Windows

      下面手工創建一個簡單的Form

     第一:

打開文件TEMPLANTE.fmb.另存為HHRALANTEST.fmb

      1.1選擇Open,然後彈出一個文件選擇對話框

      1.2 打開TEMPLANTE.fmb

 

     1.3另存文件為HHRALANTEST.fmb。

但是,Form的名稱還TEMPLANTE,選中TEMPLANTE-->右擊選擇PropertyPalette-->在Name欄位中輸入HHRALANTEST。

     第二:

刪除樣版自帶的對像如下圖

      2.1DataBlocks:

BLOCKNAME、DETAILBLOCK

      2.2Canveses:

BLOCKNAME

      2.3Windows:

BLOCKNAME

 

    第三:

添加DataBlocks

    3.1選擇DataBlocks

    3.2選擇Create,會彈出NewDataBlocks對話框

    3.3選擇Buildanewdatablockmanually

      3.4選擇剛才創建的DataBlocks-->右擊選擇PropertyPalette

      3.5修改Name為HHRALANTEST,並修改SubclassInformation為BLOCK

      3.6QueryDataSourceName輸入HHR_ALAN_TESTS(表名)

    第四:

添加Canvases(畫布)

 

      第五添加Windows(窗口)

        注意:

5.4中PrimaryCanvas(主要畫布)為第四步添加的畫布HHRALANTEST

      第六修改Form之PropertyPalette(特征盤)的屬性,

       6.1ConsoleWindow為FIRSTWIND

       6.2FirstNavigationDataBlock為HHRALANTEST

      第七修改畫布(HHRALANTEST)PropertyPalette的屬性

       7.1Window為FIRSTWIND

      第八修改觸發器代碼和程序單位

     8.1修改Form-->HHRALANTEST-->Triggers-->雙擊PER-FROMW如下圖

      8.2修改Form-->HHRALANTEST-->ProgramUnits-->雙擊APP_CUSTOM(PackageBody)如下圖

    注意:

若不修改以上二個程序單元,Form無在OracleEBIS中打開和關閉

   第九在HHRALANTEST的數據塊(DataBlocks)中添加項目(Item)

   9.1選擇Items

   9.2創建Items

   9.3選擇剛才創建的Item,右擊選擇PropertyPalette

   9.4修改相關屬性如下圖

      9.5修改Required為Yes,ColumnName欄位中輸入CODE如下圖

     9.6選擇Item顯示哪張畫布上

    9.7創建Item的標簽說明:

    其它Item用重復按照上述方法創建。

   注意:

Required為Yes表示在新增或修改時此欄此不能為空

    第十 布署各個Item在畫布上的位置。

    

    開發完成後要編譯,按Ctrl+Shift+K編譯通過。

OracleForm開發(3)--編譯Form和掛Form

接著上章節OracleForm開發

(2)--Form開發入門講

    第一FTP上傳到$HHR_TOP/forms/US(英文版本目錄)和$HHR_TOP/forms/ZHS(簡體中文版本目錄)。

     第二Telnet到OracleForm服務上,一定要用在$AU_TOP/form/US或$AU_TOP/forms/ZHS目錄下編譯Form

輸入如下命令:

    f60gen$HHR_TOP/forms/US/HHRALANTEST.fmbapps/appspassoutput_file=$HHR_TOP/forms/US/HHRALANTEST.fmx

    f60gen:

命令頭固定的

    $HHR_TOP/forms/US/HHRALANTEST.fmb:

為第一步文件FTP上傳的目錄

     apps/appspass:

編譯form文件一定要用apps用戶,因此也是固定的。

appspass是apps用戶的密碼。

    output_file=$HHR_TOP/forms/US/HHRALANTEST.fmx:

編譯form文件到指定的目錄和名稱(HHRALANTEST.fmx)

    

     第三在Oracle EBIS系注冊表單

     1. 添加Form(SystemAdministrator-->Application-->Form)

         1.1輸入Form(表單名稱)注意一定要與Form文件名一樣:

HHRALANTEST

         1.2選擇此Form中哪個系統中用的,本例選擇在HHRPOCustomization

          1.3輸入UserFormName(用戶表單名稱)

          1.4輸入說明文件字

      2.說明Form功能(SystemAdministrator-->Application-->Function)

          2.1輸入Function(功能名稱)

         2.2輸入UserFunctionName(用戶功能名稱)

         2.3定到位Properties.

         2.4選擇Type(功能類型)為Form

         2.5定到位Form

          2.6輸入或選擇HHRALANTEST(剛才添加的表單)

         其它項跟需要也可以一一填寫上去

     3.將上步創建的功能添加到菜單(Menus)中去

         3.1查找到指定的菜單

         3.2輸入Prompt(提示說明)

         3.3輸入或選擇功能HHRALANTEST

OracleForm開發(4)--計設LOV(下拉列表)

上節學習開第一個Form,這個節在添加一個彈出下拉框

第一步:

添加記錄組

1.1 選中RecordGroups

1.2 單擊Create

1.3 輸入查詢SQL

1.4 單擊OK

1.5 修改剛才創建的RecordGroups為VENDORRG

第二步:

添加LOVs

2.1選中LOVs

2.2單擊Create

2.3選擇BuildanewLOVmanually,單擊OK

2.4改修LOVs為VENDOR_LOV

            2.5打開VENDOR_LOV的特征盤(Palette),Title輸入供應商,選擇RecordGroup為VENDORRG

2.6單擊ColumnMappingProperties,顯示LOVColumnMapping窗口,在ColumnNames下拉框中輸入列名VENDOR_CODE(此列名與上面RecordGroup為VENDORRG中的SQLSelect語句字段一樣),ReturnItem選擇返回給數據塊HHRALANTEST中項目VENDOR_CODE,DisplayWidth是顯示列寬,ColumnTitle是顯示列名。

如果不需返回給某項目,ReturnItem為空。

但是,DisplayWindow和ColumnTitle是一定要輸入。

OracleForm開發(5)--Form消息提示

下面給大家收集一下相關OracleForm的消息提示

 

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或FND_MESSAGE.QUESTION使用才能彈出對話窗口或顯示消息。

參數說明:

:

用應產品簡稱.如下圖紅色圓框:

 

:

消息代碼。

若在系統表中找不對應消息說明,則消息說明自動默認為

還有,消息代碼使用前自動轉換大寫。

為何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_Choose:

=FND_MESSAGE.QUESTION(‘確定’,null,’取消’,1,2,’NOTE’);

IfInt_Choose=2Then

Null;

ElseIfInt_Choose=1Then

Null;

EndIf;

OracleForm開發(6)--使用TabCanvas和StackedCanvas

按照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下的Relations  

      2.單擊創建按鈕

      3.選擇細明數據塊HHRSTONE

4.選擇Non-Isolated,若明細表存在記錄,則主題表不能刪除;若選擇isolated並明細表存在記錄,則主題表也能刪除。

     5. 入輸ITEM_ID,主題表與明細表之間相關聯的字段。

     以同樣方法創建HHRJEWEL與HHR_JEWEL_GOLDS的關系。

在創建二個關系同時,數據塊HHRJEWEL觸發器自動創建二個事件:

ON-POPULATE-DETAILS和ON-CHECK-DELETE-MASTER,程序單元(ProgramUnits)也自動創建三個過程:

Check_Package_Failure、Clear_All_Master_Details和Query_Master_Details。

      

      注意:

要查看二個明細表中的項目ITEM_ID屬性CopyValuefromItem是否為HHRJEWEL.ITEM_ID

      

     創建HHRJEWEL畫布,它為HHRJEWEL窗體的首要畫布。

在此畫布上添加一個框架(Frame),並設置此框架屬性如:

          LayoutDataBlock為HHRJEWEL

          UpdateLayout為Automatically表示自動布局,若要改為手工布局,則此項為Manually。

當添加項目到畫布時,項目會自動布局。

使用框的好處是方便版面布局和界面簡潔。

     

     但是,我們看到界面中沒有ITEM_ID項目,這個項目是不需要顯示在界面上的,它新增時自動產生的。

因此,在表單新增記錄時,需要在HHRJEWEL數據塊觸發器上添加事件:

ON-INSERT,事件代碼如下:

Declare

 MaxItemIDnumber;

begin

 selectMax(ITEM_ID)IntoMaxItemIDFromHHR_JEWEL_ITEMS; 

 IfMaxItemIDisNullThen

    MaxItemID:

=1;

 Else

    MaxItemID:

=MaxItemID+1;

 Endif;

 :

HHRJEWEL.ITEM_ID:

=MaxItemID;

 InsertIntoHHR_JEWEL_ITEMS(ITEM_ID,BAR,JEWEL_NAME,DESCR)

 Values(

 :

HHRJEWEL.ITEM_ID,

 :

HHRJEWEL.BAR,

 :

HHRJEWEL.JEWEL_NAME,

 :

HHRJEWEL.DESCR

 );

End;

      創建Tab畫布,與HHRJEWEL畫布是不一樣的,首先需要在工具欄中選擇TabCanvas,然後在HHRJEWEL畫布上繪畫Tab畫布區域大小,這樣就創建了一個Tab畫布。

它默認是一個TabPage。

      

     設置Tab畫布的類型為:

Tab_CANVAS.

     

     分別設置TabPage的標簽名為HHRSTONE和HHRGOLD

     但是,我們要在這個TabPage頁上實現表格有水平和垂直滾動條,是不可能的事,因為TabCanvas上不能再放StackedCanvas。

而二個滾條同時出現,就必須要有StackedCanvas。

那怎麼辦呢?

 答案還是要用StackedCanvas。

但是,不能在設計時看到效果,隻能在運行form時,才能體現出效果。

     下面說一說如何實現吧

     1. 在工具欄中,選擇StackedCanvas按鈕,在HHRJEWEL畫布上繪畫StackedCanvas區域大小,重命名為HHRGOLD。

     

     2. 將HHR_JEWEL_GOLD數據塊的垂直滾動條添加到HHRGOLD畫布上。

     

      3. 再在HHRJEWEL畫布上,創建StackedCanvas,命名為HHRGOLDSUB,用於布局HHR_JEWEL_GOLD數據塊中的項目。

     4. 添加HHR_JEWEL_GOLD數據塊項目,設置HHRGOLDSUB顯示水平滾動條。

     

     5. 將二個畫布移到TabCanvas上,並重疊在一起。

此時,隨便你選哪一個TabPage都會不有變化,因為二個StackedCanvas不在TabCanvas之上。

      

     6. 按照以上相同方法創建HHRSTONE和HHRSTONESUB到HHRJEWEL畫布。

     7. 需求在Form層觸發器中,添加WHEN-TAB-PAGE-CHANGED事件,其中Show_View(‘畫布名稱’)表示顯示參數畫布,Hide_View(‘畫布名稱’)表示隱藏參數畫布。

代碼如下:

     界面計設就到此完成。

     但是,還需求添加觸發事件,使得程序更完整。

分別在數據塊HHRSTONE和HHR_JEWEL_GOLDS觸發器中,添加PER_QUERY事件,它們事件內容一樣的,當主題數據塊HHRJEWEL.中ITEM_ID項目為空時,對二個明細查詢無效,如下

If:

HHRJEWEL.ITEM_IDIsNullThen

 raiseform_trigger_failure; 

Endif;

 

     通過FTP上傳到服務上並編譯,還需要設置到某個菜單上。

最終運行結果如下

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1