TIPTOP 客製紀錄 (二):單檔明細維護基礎

TIPTOP 客製紀錄 (二):單檔明細維護基礎

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


在了解單檔表單維護(單檔表單)之後,接下來要處理的是包含多筆資料的業務流程。ERP 系統中多數業務流程需要同時管理多筆資料,這就是單檔明細(陣列資料)的核心。

這份筆記紀錄了關於「陣列 (Array)」與「資料列控制」的開發實務。


標準程式架構

TIPTOP 程式架構

與單檔表單相同,在開發單檔明細程式時,通常會尋找邏輯清晰的標準程式(例如 aooi090)進行複製。將其複製並移除所有註解後,即可得到一個乾淨的 4GL 骨架。

這套底層骨架是 TIPTOP 客製單檔明細的基礎。以下是修改為 capi902 的架構說明:

開發執行順序

在 TIPTOP 中新增單檔明細程式的標準流程如下:

  1. 資料結構定義:沿用先前的 tc_apx_file
  2. 欄位細修:修改 capi902 的相關欄位設定。
  3. 程式編譯:編譯 capi902.4gl
  4. 畫面繼承:複製 aooi090 的 4FD 檔案到 capi902
  5. 介面調整:在 Genero Studio 中修改 capi902 的畫面欄位與佈局。
  6. 上傳與系統連結:執行上傳,並運行 r.f2 capi902r.gf capi902 0 c y y
  7. 權限註冊:到 p_zz 新增程式代號。
  8. 連結設定:運行 r.l2 capi902
  9. 權限放行:在 p_zz 點選給予該檔案對應的使用權限。

依序完成上述步驟後,即可開啟並測試單檔明細功能。

TIPTOP 4FD編輯

基礎實作練習

在單檔明細的練習中,建議嘗試進行整體資料表的建立與程式重構:新增一個名為 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 指令,能夠在短時間內完成程式的初步重構,提高應對複雜客製需求的開發效率。

實作成果

完成以上流程後,即可建立一支具備清單維護功能的程式。這不僅是技術的實踐,也強化了對系統架構的理解。

TIPTOP 成果

開發規範與最佳實踐

在處理明細資料客製時,需注意以下開發規範:

  1. Index 的正確操作:必須確認操作的是陣列的數據索引(如 ARR_CURR()),而非畫面上的顯示序號。這樣能避免在捲動畫面時發生資料存取錯誤。
  2. BP 段的架構佈局:理解 BP 段初始化設定的重要性。這是進入明細操作視窗前的前置處理,決定了後續邏輯的觸發時機。
  3. Row Event 的觸發順序:精確掌握 BEFORE ROWON ROW CHANGE 等事件的觸發時機,確保資料在進入資料列與離開資料列時能正確執行對應邏輯。

核心心法:單身明細與單一資料結構的關聯 維護程式與明細表格通常共用極其相似的資料紀錄(RECORD)定義。單檔明細實際上是將單一資料結構以陣列方式排列。理解這層關聯,能更容易掌握資料在「單筆」與「多筆」之間的流轉機制。


結語

完成單檔表單與單檔明細的開發後,已經具備了 TIPTOP 客製的基本能力。

從單筆資料維護進展到陣列資料處理,有助於理解全域資料的流動與控制。接下來的階段,將挑戰基礎知識的綜合應用,將不同的資料透過複雜邏輯進行串接。

下一篇紀錄中,將探討如何將這些處理好的資料輸出,進入 報表呈現 的階段。