這是三年前寫的簡易form的開發文件,針對的Oracle ERP r11g,跟r12大同小異.......

 

一、安裝Oracle Developer Form 6i(請安裝英文),並更新Patch

       

二、設定TNSNAMES,預設路徑應於C:\orant\NET80\ADMIN\TNSNAMES.ORA

 

三、利用ftp軟體連線到AP Server(ex: 測試環境AP),下載Library

A、路徑:/test/erpsit/erpsitappl/au/11.5.0/resource

resource下所有檔案下載到本機端(ex: 我是放在D:\OraLib\Lib)

 

   

B、路徑:/test/erpsit/erpsitappl/au/11.5.0/forms/US

US下所有的檔案(除了XXX開頭為公司自行客製的form不需要copy) 下載到本機端(ex: 我是放在D:\OraLib\Form)

 

   

 

 

 

四、Windows的開始 à 執行 à 輸入regedità 確定

   

 

五、登錄編輯程式:我的電腦 à HKEY_LOCAL_MACHINE à SOFTWARE à ORACLE

A、NLS_LANG:更改為 AMERICAN_AMERICA.ZHT16BIG5

B、新增一個可擴充字串值 NLS_DATE_FORMAT,值為 YYYY/MM/DD (僅在您的Client端電腦)

   

 

C、FORMS60_PATH:將前面第三步驟下載在本機端的路徑,新增到這裡

   

此處若路徑沒指定或指定錯誤,則無法正確的開啟form

 

六、開啟Form Builder

   

 

七、先與DataBase 連線(路徑:Files à Connect

   

 

八、開啟前面第三步驟下載的form source裡的 TEMPLATE.fmb

   

 

 

九、另存新黨(路徑:File à Save As...) :請依預想開發功能下去命名file name

Ex:XXXOEQTY.fmb

前三碼XXX代表客製

第四~六碼代表模組簡稱(OE、INV、AR等)

第七碼之後則依該form的功能 or 數字編號

    自行存檔在想存檔的路徑

     

 

 

十、更改:在下圖TEMPLATE 字上滑鼠左鍵點一下,修改名稱與File Name相同

   

   

 

十一、刪除用不到的示範資料

A、Data Blocks:刪除BLOCKNAME 與 DETAILBLOCK

   

     滑鼠點選BLOCKNAME,再按下Delete

   

 

 

 

 

 

 

B、Canvases:刪除BLOCKNAME

   

 

C、Windows:刪除BLOCKNAME

   

 

十二、新增一個Windows:滑鼠先點選Windows後,再按下 Create

   

在新產生的Windows物件上按滑鼠右鍵 à Property Palette (或是直接按Hot Keyà F4)

   

Name:指定適當的名稱(只能使用英文)

Subclass InformationWINDOW

Title:指定適當的名稱(這個語言不限)

   

 

 

十三、新增一個Canvases:滑鼠先點選Canvases後,再按下 Create

Name:指定適當的名稱(只能使用英文)

Subclass InformationCANVAS

Window:請指定到上一個步驟中建立的Window

     

回到上個步驟建立的Window,指定Primary Canvas

   

Ps:一定要確實的把Window與Canvas互相指定的動作做好,否則會有問題

 

 

十四、新增Data Blocks

A、為DataBase Object( Table or View)時

     

    選擇” Use then data Block Wizard à OK

     

        

 

輸入Table or View à按下 Refresh (下方的Available Columns就會將所有欄位抓出來) à按下 >> (選取所有欄位) à Next

   

 

 

 

 

  

 

 

B、Non DataBase Object(通常用來放Button or Summary Field等)

     

  

 

十五、設定第一個開啟的Block

      (在Form Name的地方按滑鼠右鍵 à Property Palette  或是 按Hot Key “F4)

 

 

 

十六、設定第一個開啟的Window

      (在Form Level Trigger的 PRE-FORM)

   

 

十七、設定關閉的Window

      (在Program Units à APP_CUSTOM (Package Body) )

   

若只有一個Window,就如上圖設定;若客製設計有多Window時,依序設定

 

十八、設計畫面

      1. 在預定設計畫面的Canvas前的圖示點兩下滑鼠左鍵開啟Canvas

       

       

 

      2. 先設定 Data Block的 Navigation Style(此處為Master Table,所以設為Change Data Block)

   

 

 3. 點開Data Block,將所需要在畫面呈現的欄位設定上去

   

      (要放到畫面上的,Subclass Information 必設,否則放到ERP上使用時,可能會發生異常!)

 

   

       (指定放到那個Canvas上,以及寬度)

 

 

   

      Prompt:設定秀在畫面上的欄位文字說明

 

   

      (回到畫面上可以自行移動擺放的位置)

 

     4. 設定Detail Table 的 Navigation Style(Change Record)

   

 

    5. Detail Table要在畫面上秀出多筆Reocrd (可在Block設,也可以至Item再設,優先權 Item > Block)

     

 

    6. 多筆資料時,會手動增加一個Item為顯示當下游標停留在那一筆Record

     

   

 

       8.設定Scroll Bar

         

  

  

 

補充說明:Item Property à Calculation(可利用此簡便的功能便可不用再寫sql or pl/sql來計算)

AFormula

 

(例如上圖的金額欄位,在原Table上並沒有此欄位)

 

Calculation Mode : Formula

Formula : 寫入計算公式(如下圖為兩個欄位相乘)

    

 

B、Summary

先設定一個BLOCK: CONTROL

           Single Record à Yes

   

 

Soure Block設定:Query All Record à Yes

  

 

在CONTROL BLOCK設定一個item

Calculation Mode : Summary

Summary Function : Sum (其他還有Avg、Count、Max、Min等功能可選擇)

Summarized Block : Source Block

Summarized Item : Source Item

  

 

 

十九、取得Profile values(Form Level Trigger à PRE-FORM

   

 

 

二十、因為OM是OU(Operation Unit) Level,所以必須限制住ORG_ID

   

 

 

二十一、設定Data Block的Trrigger

  1. 1.      若要可Insert 資料 à PRE- INSERT

   

2. 若要可 Update 資料 à PRE-UPDATE

   

 

二十二、設定Master Data Block 與 Detail Data Block的關連,必須要Master Data Block設定Relation

   

Relation

       Detail Blockchild Block Name

       Master Deletedelete master record, child block須做出的反應

Cascading:同歸於盡(child records and parent record are deleted together)

Isolated:脫離父子關係(child records exist without parent record)

Non-Isolatedchild records not exist, and then parent can be delete

       Coordinationwhen does child records query and display?

               Deferredexecute query when cursor raise into this column of the child block

               Auto-Queryquery record when parent block execute query

       Prevent MasterLess Operationchild without parent, 可否單獨行動(query or insert row)

Join Conditioncolumns name are same, you can do like this “customer_id and address_id”

Columns name are different, you only do like this “p_block.cola = c_block.columna and p_block.colb=c_block.columnb”

 

 

 

以上設定並complie後,上傳至AP Server再complie成fmx檔,即可測試畫面是符合所需功能.....

文章標籤
全站熱搜
創作者介紹
創作者 fantasy 的頭像
fantasy

fantasy 的恬淡心情

fantasy 發表在 痞客邦 留言(0) 人氣(10,302)