跳到主要內容
分享: facebook PLURK twitter 
 
  這是三年前寫的簡易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)

 form01  
B、路徑:/test/erpsit/erpsitappl/au/11.5.0/forms/US
US下所有的檔案(除了XXX開頭為公司自行客製的form不需要copy下載到本機端(ex: 我是放在D:\OraLib\Form)

 form002  



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

五、登錄編輯程式:我的電腦 à HKEY_LOCAL_MACHINE à SOFTWARE à ORACLE
A、NLS_LANG:更改為 AMERICAN_AMERICA.ZHT16BIG5
B、新增一個可擴充字串值 NLS_DATE_FORMAT,值為 YYYY/MM/DD (僅在您的Client端電腦)
 form004  


C、FORMS60_PATH:將前面第三步驟下載在本機端的路徑,新增到這裡
 form005  
此處若路徑沒指定或指定錯誤,則無法正確的開啟form

六、開啟Form Builder
 form006  

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

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


九、另存新黨(路徑:File à Save As...) :請依預想開發功能下去命名file name
Ex:XXXOEQTY.fmb
前三碼XXX代表客製
第四~六碼代表模組簡稱(OE、INV、AR等)
第七碼之後則依該form的功能 or 數字編號
    自行存檔在想存檔的路徑
   form010  


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

十一、刪除用不到的示範資料
A、Data Blocks:刪除BLOCKNAME 與 DETAILBLOCK
 form013  
     滑鼠點選BLOCKNAME,再按下Delete
 form014  







B、Canvases:刪除BLOCKNAME
 form015  

C、Windows:刪除BLOCKNAME
 form016  

十二、新增一個Windows:滑鼠先點選Windows後,再按下 Create
 form017  
在新產生的Windows物件上按滑鼠右鍵 à Property Palette (或是直接按Hot Keyà F4)
 form018  

Name:指定適當的名稱(只能使用英文)
Subclass InformationWINDOW
Title:指定適當的名稱(這個語言不限)
 fomr019  


十三、新增一個Canvases:滑鼠先點選Canvases後,再按下 Create
Name:指定適當的名稱(只能使用英文)
Subclass InformationCANVAS
Window:請指定到上一個步驟中建立的Window
 form020    
回到上個步驟建立的Window,指定Primary Canvas
 form021  
Ps:一定要確實的把Window與Canvas互相指定的動作做好,否則會有問題


十四、新增Data Blocks
A、為DataBase Object( Table or View)時
 form022    
    選擇” Use then data Block Wizard à OK
   form023  

      form025  

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

form028  

form029  
form030  
 form031

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


十五、設定第一個開啟的Block
      (在Form Name的地方按滑鼠右鍵 à Property Palette  或是 按Hot Key “F4)
 form034


十六、設定第一個開啟的Window
      (在Form Level Trigger的 PRE-FORM)
 form035  

十七、設定關閉的Window
      (在Program Units à APP_CUSTOM (Package Body) )
 form036  

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

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

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

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

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

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


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

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

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


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

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

       8.設定Scroll Bar
       form048  

form049   
  

補充說明:Item Property à Calculation(可利用此簡便的功能便可不用再寫sql or pl/sql來計算)
AFormula
form050  
(例如上圖的金額欄位,在原Table上並沒有此欄位)

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

B、Summary
先設定一個BLOCK: CONTROL
           Single Record à Yes
 form052  


Soure Block設定:Query All Record à Yes
form053   

在CONTROL BLOCK設定一個item
Calculation Mode : Summary
Summary Function : Sum (其他還有Avg、Count、Max、Min等功能可選擇)
Summarized Block : Source Block
Summarized Item : Source Item
form054   


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



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


二十一、設定Data Block的Trrigger
  1. 1.      若要可Insert 資料 à PRE- INSERT
 form057  
2. 若要可 Update 資料 à PRE-UPDATE
 form058  

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

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檔,即可測試畫面是符合所需功能.....

留言

這個網誌中的熱門文章

北風練習題

常用ASCII