
TIPTOP 客製紀錄 (二):單檔明細維護基礎
TIPTOP 客製開發進階:單檔明細。紀錄如何掌握 DISPLAY ARRAY 與 INPUT ARRAY,精準控制清單中每一列資料的處理。
WRITTEN BY

- Name
- Harry Chang
在了解單檔表單維護(單檔表單)之後,接下來要處理的是包含多筆資料的業務流程。ERP 系統中多數業務流程需要同時管理多筆資料,這就是單檔明細(陣列資料)的核心。
這份筆記紀錄了關於「陣列 (Array)」與「資料列控制」的開發實務。
標準程式架構

與單檔表單相同,在開發單檔明細程式時,通常會尋找邏輯清晰的標準程式(例如 aooi090)進行複製。將其複製並移除所有註解後,即可得到一個乾淨的 4GL 骨架。
這套底層骨架是 TIPTOP 客製單檔明細的基礎。以下是修改為 capi902 的架構說明:
開發執行順序
在 TIPTOP 中新增單檔明細程式的標準流程如下:
- 資料結構定義:沿用先前的
tc_apx_file。 - 欄位細修:修改
capi902的相關欄位設定。 - 程式編譯:編譯
capi902.4gl。 - 畫面繼承:複製
aooi090的 4FD 檔案到capi902。 - 介面調整:在 Genero Studio 中修改
capi902的畫面欄位與佈局。 - 上傳與系統連結:執行上傳,並運行
r.f2 capi902與r.gf capi902 0 c y y。 - 權限註冊:到
p_zz新增程式代號。 - 連結設定:運行
r.l2 capi902。 - 權限放行:在
p_zz點選給予該檔案對應的使用權限。
依序完成上述步驟後,即可開啟並測試單檔明細功能。

基礎實作練習
在單檔明細的練習中,建議嘗試進行整體資料表的建立與程式重構:新增一個名為 tc_apz_file 的資料表,並建立一支全新的維護程式。
這項練習的核心在於訓練「批量複製與重構」的效率。在 TIPTOP 環境中,熟練使用 vi 編輯器是必備技能,例如使用以下指令進行全域替換:
:%s/tc_apx/tc_apz/g (或在選定範圍內使用 1,$s/tc_apx/tc_apz/g)
練習的重點包括:
- 全域替換操作:熟悉在數千行代碼中,快速替換資料來源前綴。
- 理解命名規範:透過從
MAIN到各個FUNCTION的整體替換,深刻理解「前綴」在 TIPTOP 系統中的重要性。 - 完整開發流程複習:當資料庫表格變更時,必須從
p_zta的匯入到 4FD 欄位對應重新設定,這有助於熟悉完整的開發步驟。
透過靈活運用 vi 指令,能夠在短時間內完成程式的初步重構,提高應對複雜客製需求的開發效率。
實作成果
完成以上流程後,即可建立一支具備清單維護功能的程式。這不僅是技術的實踐,也強化了對系統架構的理解。

開發規範與最佳實踐
在處理明細資料客製時,需注意以下開發規範:
- Index 的正確操作:必須確認操作的是陣列的數據索引(如
ARR_CURR()),而非畫面上的顯示序號。這樣能避免在捲動畫面時發生資料存取錯誤。 - BP 段的架構佈局:理解 BP 段初始化設定的重要性。這是進入明細操作視窗前的前置處理,決定了後續邏輯的觸發時機。
- Row Event 的觸發順序:精確掌握
BEFORE ROW、ON ROW CHANGE等事件的觸發時機,確保資料在進入資料列與離開資料列時能正確執行對應邏輯。
核心心法:單身明細與單一資料結構的關聯 維護程式與明細表格通常共用極其相似的資料紀錄(RECORD)定義。單檔明細實際上是將單一資料結構以陣列方式排列。理解這層關聯,能更容易掌握資料在「單筆」與「多筆」之間的流轉機制。
結語
完成單檔表單與單檔明細的開發後,已經具備了 TIPTOP 客製的基本能力。
從單筆資料維護進展到陣列資料處理,有助於理解全域資料的流動與控制。接下來的階段,將挑戰基礎知識的綜合應用,將不同的資料透過複雜邏輯進行串接。
下一篇紀錄中,將探討如何將這些處理好的資料輸出,進入 報表呈現 的階段。