TIPTOP 客製紀錄 (二):單檔明細 —— 穿梭在陣列與邏輯的綠色迷宮

TIPTOP 客製紀錄 (二):單檔明細 —— 穿梭在陣列與邏輯的綠色迷宮

進階課程:挑戰單檔明細。掌握 DISPLAY ARRAY 與 INPUT ARRAY,讓學妹學會如何在清單中精準控制每一列資料的「生長」。


在第一課(單檔表單)中,中科大學妹已經學會了如何正確地在 TIPTOP 的土壤中種下一顆資料種子。但是,ERP 的世界從來不只是單一資料的對應。絕大部分的業務流程,都需要同時管理「一整排」資料。這就是我們第二課的核心:單檔-明細。

這是一場關於「陣列 (Array)」與「資料列控制」的實戰演練。


起點-由架構開始

TIPTOP 程式架構

同昨天邏輯,在 TIPTOP 的森林裡尋找一個「順眼」的程式(找那種邏輯清晰、沒有過多雜草的程式),我是使用 aooi090,將它複製出來。接著,把所有的註記(Comments)全部拿掉,我們會得到一個最乾淨、最純粹的 4GL 骨架。

在 TIPTOP 的世界裡,每一隻單檔維護程式都必須符合這個標準架構。這就像是花園的圍籬,定義了程式運行的邊界。

這以下是一個標準單檔程式的「乾淨版」架構與逐行說明,修改成 capi902:

這就是 TIPTOP 客製的基底。無論功能多麼複雜,底層的骨架永遠是這幾行。只要記住這個節奏,妳就已經掌握了客製程式的律動。

執行的順序

這邊記錄在 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 森林中開啟你親手新增的功能了。

TIPTOP 4FD編輯

練習的開始

同昨天的邏輯,但今天我們要增加一些難度。這一次的任務不再只是修剪枝葉,而是要挑戰開闢一片新的苗圃:新增一個名為 tc_apz_file 的資料表,並從頭開始建立一支全新的維護程式。

這項練習的核心目的,是為了訓練學妹「批量複製與重構」的效率。在 TIPTOP 的世界裡,熟練使用 vi 編輯器的指令是基本功中的基本功。我教她如何透過 vi 的強大功能,練習快速複製並重構整支程式:

:%s/tc_apx/tc_apz/g (或在選定範圍內使用 1,$s/tc_apx/tc_apz/g)

這場練習的精髓在於:

  • 全域替換的膽識:學會如何精準地在數千行代碼中,一鍵替換所有的資料來源前綴。
  • 架構的完整複製:從 MAIN 到各個 FUNCTION,透過整體的替換,讓新人更有感地發現「前綴」在 TIPTOP 命名規範中的靈魂地位。
  • 從零到一的複習:當資料庫表格變了,從 p_zta 的匯入到 4FD 的欄位對應都要重新來過,這能迫使學妹在短時間內反覆複習那 10 個開發步驟。

這不是單純的複製貼上,而是在練習「如何站在巨人的肩膀上快速開墾」。當妳能靈活運用 vi 指令在幾秒鐘內完成整支程式的初步重構,那份對於代碼的掌控感,會讓妳在應對更複雜的客製需求時,更顯游刃有餘。

第二課收成與行動

我們在這堂課中,成功實作了一支具備清單維護功能的程式。這不僅是技術的累積,更是對系統嚴密性的體認。

TIPTOP 成果

園藝法則:精準修剪的藝術

在處理明細客製時,我再次提醒學妹關於大型 ERP 的生存規範:

  1. Index 的嚴格守護:永遠確認妳操作的是真正的數據索引(如 ARR_CURR()),而不是畫面上的顯示序號。這是防止程式在捲動時發生「錯位」現象的護城河。
  2. BP 段的架構佈局:理解 BP 段的初始化重要性。這是進入明細操作視窗前的第一道手續,決定了後續順序的觸發時機。
  3. Row Event 的先後順序:必須精確掌握 BEFORE ROWON ROW CHANGE..等 的觸發時機。這就像是園丁修剪每一列枝條前後的動作——進入前先定位,離開後再結算。

核心心法:用同樣的資料結構,了解單身明細的運作 當妳發現維護程式與明細表格其實共用著極其相似的資料紀錄(RECORD)定義時,妳就會明白:明細不過是將單一的種子,整齊地排列成了一排苗圃。透過這層關聯,妳能更容易掌握資料在「單筆」與「多筆」之間流轉的脈動。


結語:通往組合技的基石

隨著單檔表單與單檔明細的圓滿收成,我們已經在 TIPTOP 的土壤中紮下了最穩固的基本功。

從「點」的資料維護到「線」的陣列處理,這不再只是單一功能的完成,而是對全域資料流動的深刻體悟。接下來的挑戰,將會是這些基礎知識的「組合技應用」——如何將這些散落在各處的資料,透過更複雜的邏輯串接與維護,發揮出系統應有的最大價值。

基本功已經打好,這座數位花園的圍籬也已築起。在下一課中,我們將學習如何將這些辛勤灌溉的數據「打包」輸出,挑戰最後的 報表呈現,完成這場傳承之旅的最後收穫。