
TIPTOP 客製紀錄 (一):單檔表單維護基礎
紀錄 TIPTOP 客製開發的基礎流程。從單檔表單維護開始,了解 4GL 程式架構與 4FD 畫面檔的連動關係,建立系統客製的基本觀念。
WRITTEN BY

- Name
- Harry Chang
TIPTOP 系統客製的第一步,通常從最基礎也最核心的「單檔-表單」開始。這份筆記紀錄了單檔維護的核心概念與開發流程。
單檔表單:ERP 客製的基礎
開發 TIPTOP 的第一步是學會基礎的單檔維護。單檔表單維護不僅包含基本的增、刪、修、查(CRUD),更重要的是理解 4GL 程式骨架與畫面檔(4FD)的連動關係。這是後續開發主從架構與複雜邏輯的基礎。
4GL 與 4FD 的連動關係
在 TIPTOP GP 5.3 的 Genero 架構中,4GL 與 4FD 負責不同的系統層面:
- 4FD (Form Design):負責畫面呈現。決定了欄位的位置、按鈕的佈局等。透過 Genero Studio 編輯,編譯後定義視覺介面。
- 4GL (Genero Language):負責邏輯控制。處理與資料庫的溝通,並控制資料如何傳遞至 4FD 介面。
例如當執行 INPUT BY NAME record.* FROM field.* 指令時,4GL 會根據欄位的 Name 屬性,自動對應並將資料送到 4FD 上的同名欄位。如果命名不一致,資料就無法正確顯示。
標準程式架構

開發新程式時,通常會尋找一支邏輯清晰的標準程式(例如 aapi203)進行複製。將其複製並移除所有註解後,即可得到一個乾淨的 4GL 骨架。
在 TIPTOP 系統中,每一支單檔維護程式都應符合此標準架構。以下是修改為 capi901 的標準單檔程式架構說明:
這套底層骨架是 TIPTOP 客製的基礎,無論功能多麼複雜,基本架構都以此為核心。
開發執行順序
以下紀錄在 TIPTOP 新增一支程式的標準作業流程:
- 資料結構定義:到
cap/sch,新增tc_apx_file.sch的檔案。 - 標準化匯入:到
p_zta透過匯入 create 工具新增檔案。 - 欄位細修:修改
capi901的相關欄位設定。 - 程式編譯:編譯
capi901.4gl。 - 畫面繼承:複製
aapi203的 4FD 檔案到capi901。 - 介面調整:在 Genero Studio 中修改
capi901的畫面欄位與佈局。 - 上傳與系統連結:執行上傳,並運行
r.f2 capi901與r.gf capi901 0 c y y。 - 權限註冊:到
p_zz新增程式代號。 - 連結設定:運行
r.l2 capi901。 - 權限放行:在
p_zz點選給予該檔案對應的使用權限。
依序完成上述步驟後,即可在系統中開啟並測試新增的功能。

基礎實作練習
作為初期的開發練習,建議先從微小的改動開始,例如:在 capi901 中新增一個名為 tc_apx05 的欄位。
TIPTOP 的客製開發門檻涉及多項底層技術基礎,包含:
- 對資料庫操作的熟悉度:理解資料表之間的關聯與資料流動。
- 對
vi編輯器的熟悉度:在終端機環境進行代碼編輯的基本工具。 - 對 Linux 指令的熟悉度:熟悉目錄切換與系統操作。
透過新增單一欄位的練習,能專注於感受資料從資料庫讀取到呈現在畫面上的完整流程,建立對 4GL 與 4FD 對應關係的直覺,避免初期因為同時面對過多技術細節而失焦。
完成上述步驟後,即可建立一支具備完整查詢、新增、修改與刪除功能的單檔程式。

開發規範與最佳實踐
在龐大的 ERP 系統中進行客製,必須遵守嚴謹的開發規範,以確保系統架構的穩定與可維護性:
- 命名規則 (Naming Convention):客製的變數、資料表與程式,必須嚴格遵守系統的命名規範(如
tc_xxx或cl_xxx)。這有助於在系統升級或全域搜尋時,快速辨識出客製化項目。 - 修改註記 (Annotation Style):在代碼中進行修改時,必須留下修改註記,包括修改日期、需求編號(Ticket ID)以及修改者簽名。這能幫助後續維護人員清楚理解當初修改的意圖與背景。
- 環境隔離:所有的開發與測試都必須在測試區 (Test Environment) 進行,確認邏輯正確無誤後,才能將程式碼移植到正式區 (Production),以避免造成正式系統異常。
核心心法:最小影響原則 (Principle of Minimal Impact) 在開發大型系統時,應追求「以最小的改動達到最精準的效果」。在不破壞原本系統架構與標準邏輯的前提下,加入客製邏輯,以維持系統的穩定性。
結語
單檔表單的維護是 TIPTOP 客製的基礎。透過理解 4GL 架構的嚴謹性、4FD 的視覺配置,以及在龐大代碼中落實「最小影響原則」,能建立起系統客製的正確觀念與基本功。
下一篇紀錄中,將跨越單一資料表的界線,進一步探討 單檔明細 的陣列處理,學習如何管理與操作主從架構下的數據清單。