IF Upper(Trim(sle_1.Text)) = "MYPASSWORD" THEN
Open(w_main) -- 開啟主視窗
Close(w_login) -- 關閉登入視窗
ELSE
sle_1.SetFocus() -- 密碼錯誤,焦點回編輯框
END IF
**安全性提示**:實際專案應使用加密儲存/比對、參數化查詢、嘗試次數限制、帳號鎖定機制。
| 按鈕名稱 | 標籤 | 功能 |
|---|---|---|
| `cb_insert` | 插入 | `dw_detail.Reset()` + `dw_detail.InsertRow(0)` 新增空白列 |
| `cb_delete` | 刪除 | `dw_detail.DeleteRow(0)` 刪除當前列 (尚未資料庫) |
| `cb_update` | 更新 | `dw_detail.Update()` → 成功 `COMMIT` + `dw_list.Retrieve()` 同步;失敗 `ROLLBACK` |
| `cb_close` | 關閉 | `Close(Parent)` 關閉主視窗,結束應用程式 |
CONNECT; -- 使用 SQLCA 連線資料庫
dw_list.SetTransObject(SQLCA); -- 綁定交易物件
dw_list.Retrieve(); -- 執行關聯 SQL 查詢,填充列表
dw_detail.SetTransObject(SQLCA); -- 詳細視窗同樣綁定
INTEGER li_row, li_number
li_row = dw_list.GetClickedRow() -- 取得點擊列號 (0=非資料區)
IF li_row = 0 THEN
MessageBox("提示", "請點選有效記錄列")
ELSE
li_number = dw_list.GetItemNumber(li_row, 1) -- 取得第 1 欄 (編號)
dw_detail.Retrieve(li_number) -- 以編號為參數檢索詳細資料
END IF
IF dw_detail.Update() = 1 THEN
COMMIT; -- 提交交易
dw_list.Retrieve(); -- 重新載入列表保持一致
ELSE
ROLLBACK; -- 回滾,資料庫恢復原狀
END IF
下一節 (2-6) 將詳細講解應用程式腳本編寫全過程:Application Open、登入視窗按鈕、主視窗初始化、主從聯動、四大 CRUD 按鈕、關閉邏輯。