- 取得連結
- X
- 以電子郵件傳送
- 其他應用程式
- FEB 24 TUE 2015
Oracle Form開發(Base on Table)
這是三年前寫的簡易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 Information:WINDOW
Title:指定適當的名稱(這個語言不限)

十三、新增一個Canvases:滑鼠先點選Canvases後,再按下 Create
Name:指定適當的名稱(只能使用英文)
Subclass Information:CANVAS
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來計算)
A、Formula

(例如上圖的金額欄位,在原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. 若要可Insert 資料 à PRE- INSERT

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

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

Relation
Detail Block:child Block Name
Master Delete:delete master record時, child block須做出的反應
Cascading:同歸於盡(child records and parent record are deleted together)
Isolated:脫離父子關係(child records exist without parent record)
Non-Isolated:child records not exist, and then parent can be delete
Coordination:when does child records query and display?
Deferred:execute query when cursor raise into this column of the child block
Auto-Query:query record when parent block execute query
Prevent MasterLess Operation:child without parent時, 可否單獨行動(query or insert row)
Join Condition:columns 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檔,即可測試畫面是符合所需功能.....
- 取得連結
- X
- 以電子郵件傳送
- 其他應用程式
留言
張貼留言