學習目標
建立通訊錄專案所需的兩個 DataWindow 物件:
- TELE-DATAWINDOW1:Grid(網格) 風格,用於主檔列表瀏覽,僅顯示編號、姓名、電話三欄,並依編號遞增排序。
- TELE-DATAWINDOW2:Freeform(自由表格) 風格,用於單筆記錄詳細檢視,包含所有欄位,支援以編號為參數的條件查詢。
DataWindow 物件 vs 控制項:再次釐清
DataWindow 物件 是設計階段的資料呈現定義(版面、SQL、排序、驗證規則);DataWindow 控制項 是視窗執行期的容器,負責實例化物件並處理使用者互動。本節專注於物件的建立。
建立 TELE-DATAWINDOW1(Grid 風格)
- 啟動精靈:PowerBar → DataWindow 畫板 → New。
- 資料來源:Quick Select(簡易查詢);呈現樣式:Grid。
- 選擇資料表:
MYTELEBOOK → 僅勾選 NUMBER、NAME、TELEPHONE 三欄。
- 排序設定:
NUMBER 欄位 → Sort 選 Ascending(遞增)。
- 完成預覽:點擊工具列 Preview,確認資料依編號由小到大顯示於網格中。
- 儲存物件:雙擊視窗左上角 → 是 → 物件名 TELE-DATAWINDOW1 → 庫選
TELEPHONE-BOOK1.PBL → 確定。
建立 TELE-DATAWINDOW2(Freeform 風格 + 參數查詢)
- 啟動精靈:DataWindow 畫板 → New。
- 資料來源:SQL Select(標準 SQL);呈現樣式:Freeform(欄位縱向排列,適合單筆詳細檢視)。
- 選擇資料表與欄位:
MYTELEBOOK → 全選所有欄位。
- 排序:Sort 標籤 → 將
NUMBER 拖入右側框,預設遞增。
- 定義檢索參數:
- 選單 Design → Retrieval Arguments。
- 參數名:NUMBER-SEARCH,型別:Number。
- 設定 WHERE 條件:
- Where 標籤 → Column 選
NUMBER,Operator 選 =,Value 輸入 :NUMBER-SEARCH(冒號前綴表示參數)。
- 點擊工具列 Select 畫板完成 SQL 定義。
- 測試參數查詢:Preview → 對話框輸入
1 → 確認顯示編號 1 的完整記錄。
- 儲存物件:名稱 TELE-DATAWINDOW2 → 庫
TELEPHONE-BOOK1.PBL。
關鍵圖示

圖 2-26 選擇現有或建立新 DataWindow

圖 2-27 選擇 Quick Select + Grid

圖 2-28 選擇欄位與排序

圖 2-29 四大帶狀區域(Header、Detail 等)

圖 2-30 預覽:資料依編號排序顯示

圖 2-31 定義檢索參數 NUMBER-SEARCH

圖 2-32 輸入參數 1 後的 Freeform 預覽
小結
兩個 DataWindow 物件分工明確:Grid 適合大量資料快速瀏覽與選取;Freeform + 參數查詢 適合單筆深度檢視與編輯。下節將把它們放入視窗控制項,構建完整的主從介面。