最佳 4D 形式:最佳選擇比較(2026 年)
4D 表單是 4D 應用程式的使用者介面層,該平台提供三種不同的表單類型:詳細資訊 (detail)、清單 (list) 和輸出 (output) 表單,每種類型適合不同的任務。在 2026 年要做好設計,意味著將表單類型與任務相匹配,然後疊加值清單、子表單和動態屬性。本比較涵蓋了實際的選項、其權衡以及如何做出決定。
要點
- 4D 提供三種類型的 4D 表單:詳細資訊(一次一筆記錄)、清單(網格中的多筆記錄)和 輸出(列印/報告佈局)。選擇錯誤的類型是初學者最常犯的錯誤。
- 專案表單 (Project Forms,儲存為
.4DFormJSON 檔案) 是現代的預設設定;表格表單 (Table forms) 是遺留功能且連結到單一表格。新開發應使用專案表單。 - 動態表單 (
DIALOG,FORM LOAD,FORM GOTO PAGE) 允許您在執行時建立和交換介面 —— 這對於精靈式流程和基於角色的使用者介面至關重要。 - 值清單 (Value lists,靜態、分層或來自欄位/陣列) 驅動下拉清單、組合框和彈出式選單;將其綁定到欄位僅需更改單行屬性。
- 子表單 將一種表單嵌入到另一種表單中,是建立主從 (master-detail) 佈局而無需重複建立小部件的標準方法。
- 清單表單的效能高度依賴於實體選擇 (entity selection) 與經典選擇 (classic selection),以及是否為大型記錄集啟用了延遲載入 (lazy loading)。
「4D 表單」的實際意義
4D 表單是儲存在結構(表格表單)或獨立專案檔案(專案表單)中的聲明式使用者介面定義。表單包含物件(輸入欄位、按鈕、清單框、子表單、Web 區域和靜態文字),這些物件排列在具有定義頁面大小且(可選)具有多個頁面的畫布上。每個物件都帶有屬性(資料來源、可輸入狀態、字體、座標),4D 會在執行時評估這些屬性。
對於比較來說最重要的區別是:表單不是視窗。表單是一個佈局;視窗是 4D 開啟以顯示該佈局的容器。相同的表單可以出現在模式對話方塊、調色板視窗、可調整大小的文件視窗中,或作為子表單嵌入。了解這種分離可以讓經驗豐富的開發人員在多個上下文中重複使用同一個表單,而不是重新構建。
三種表單類型比較
| 表單類型 | 顯示記錄 | 典型用途 | 關鍵注意事項 |
|---|---|---|---|
| 詳細資訊表單 | 一筆 | 資料輸入、記錄編輯、對話方塊 | 需要明確的導覽(按鈕, NEXT RECORD) |
| 清單表單 | 多筆 | 瀏覽、選擇、儀表板 | 大量選擇需要延遲載入或分頁 |
| 輸出表單 | 多筆 | 列印、PDF 匯出、報告 | 不具互動性;佈局以列印為導向 |
詳細資訊表單是資料輸入的主力。它們顯示表格的當前記錄並允許使用者直接編輯欄位。詳細資訊表單也是設定對話方塊或登入畫面的自然選擇,因為您可以將其完全不綁定到任何表格,而僅使用程序變數來驅動。
清單表單呈現可捲動的記錄網格。在現代 4D 中,清單表單通常圍繞著 清單框 (list box) 物件構建,而不是舊的「帶欄位的清單表單」方法。清單框可以是基於陣列的或基於選擇的,而基於選擇的清單框直接綁定到實體選擇 —— 這是使用 ORDA 時的首選模型。
輸出表單用於列印。它們在頁面佈局中呈現帶有頁首、頁尾和分頁層級的記錄。輸出表單不適用於螢幕互動,4D 不允許使用者像在詳細資訊表單上那樣使用 Tab 鍵進入欄位。
相關: — 位於真實關係資料庫之上的電子表格簡單介面,具有自動化、視圖和可共享介面。.
以上是三種主要的 4D 表單。
專案表單 vs. 表格表單
專案表單作為單獨的 .4DForm 檔案儲存在專案的 「Forms」 資料夾中,並支援版本控制:每個表單都是一個獨立的 JSON 文件,因此兩個開發人員編輯不同表單時,在合併期間很少發生衝突。表格表單位於結構檔案中,並透過相同的表單編輯器進行編輯,但在概念上連結到單一表格。
2026 年的實用技巧:將每個新表單都設定為專案表單。 表格表單仍然受到完全支持,您會在舊版資料庫中遇到它們,但專案表單能提供更清晰的差異、在表格之間更容易重複使用,以及更清晰的心智模型。將表格表單轉換為專案表單涉及將其從表格的表單清單移出並移入專案的表單清單;物件定義將被保留。
如果您正在購物: — 低程式碼應用程式建立器,可插入更廣泛的 Zoho 套件,並按使用者而不是按應用程式定價。.
建立表單:核心步驟
- 在表單編輯器中建立表單 (Explorer $\rightarrow$ Forms $\rightarrow$ New),選擇詳細資訊、清單或輸出。
- 設定頁面大小,並根據需要新增頁面以進行多步驟佈局。
- 放置物件:將欄位從 Explorer 拖曳到畫布,或從物件庫新增按鈕、清單框和子表單。
- 連結資料來源:將每個輸入物件指派給欄位、變數或運算式。
- 為任何下拉清單、組合框或彈出式選單配置值清單。
- 連線事件 —— 將方法附加到表單事件 (
On Load,On Clicked,On Data Change) 和物件事件。 - 在表單編輯器中使用內建預覽進行測試,然後在運行視窗中測試。
步驟 6 是建立 4D 表單時大部分實際工作發生的地方。沒有事件方法的表單只是靜態影像;On Load 表單事件通常是用於填充陣列、載入值清單或根據目前使用者角色設定可輸入狀態的地方。
值清單:讓人絆倒的細節
值清單是 4D 表單中每個下拉式選單、組合框和彈出式選單背後的機制。共有三種類型:
- 靜態清單 —— 您在清單編輯器中輸入一次值。非常適合狀態代碼等固定枚舉。
- 分層清單 —— 支援使用
|分隔符號約定的巢狀元素,對於類別樹很有用。 - 動態清單 —— 在執行時從欄位、陣列或公式填充。這些反映了即時數據,因此活躍客戶清單能保持最新而無需重新部署。
一個常見的陷阱:將動態值清單綁定到儲存引用 (ID) 的欄位,同時顯示標籤。4D 使用「關聯值 (associated value)」的概念來管理這一點:清單儲存一個值並顯示另一個值。正確處理的區別在於,下拉清單記錄的是 「42」 還是 「Acme Corp.」。
子表單和主從佈局
子表單將一種表單整合到另一種表單中。父表單承載一個子表單物件;子表單顯示在內部。資料流經子表單的 「table」 屬性,並且在現代 4D 中,流經傳遞給子表單的 Form 物件。
主從佈局 (master detail) 是 4D 表單的典型用法:頂部是發票的詳細資訊表單,下方子表單中是發票行的清單表單。當父記錄變更時,子表單選擇也會更新 —— 前提是您在父表單的 On Data Change 中更新它,或透過重新綁定選擇來更新。子表單還允許您建立可重複使用的元件:例如「客戶選擇器」表單可以放入任何需要它的父表單中。
動態表單和執行時 UI
動態 4D 表單會在應用程式執行時修改介面。關鍵指令是 DIALOG (將表單作為模式或非模式對話方塊開啟)、FORM LOAD (將表單載入記憶體而不顯示)、FORM GOTO PAGE (切換頁面) 以及 OBJECT SET... (動態更改物件屬性)。
動態表單對於兩種情境非常重要。首先是 精靈流程 (Wizard Flows):具有多個頁面的單一表單,當使用者完成步驟時透過 FORM GOTO PAGE 前進。其次是 基於角色的介面 —— 根據使用者權限在 On Load 時隱藏或停用物件,使一個表單能同時為管理員和唯讀檢視者服務。權衡之處在於複雜性:動態行為比靜態佈局更難調試,因此請將其保留在若無此功能則必須建立第二個表單的情況下。
效能考慮因素
4D 清單表單的效能主要由 4D 必須具體化 (materialize) 的記錄數量決定。連結到實體選擇的基於選擇的清單框僅載入其顯示的行,這使得記憶體使用量在表格增長時保持平穩。經典的基於陣列的清單框會提前載入所有內容,在大型表格上會明顯減慢速度。
另外兩個槓桿:清單框上的 延遲載入 (lazy loading) (捲動時檢索行) 和 伺服器端查詢 (傳回有界選擇而非整個表格)。對於用戶端-伺服器部署,透過網路獲取記錄的往返成本通常遠高於渲染時間,因此縮小選擇範圍是最有價值的最佳化。
如何決定
- 單筆記錄的資料輸入? 詳細資訊表單。
- 從多筆記錄中瀏覽或選擇? 具有基於選擇之清單框的清單表單。
- 列印或 PDF 輸出? 輸出表單。
- 可在多個表格上重複使用? 專案表單,而非表格表單。
- 多步驟流程? 具有多個頁面且動態前進的表單。
- 主從關係? 承載清單表單子表單的詳細資訊表單。
- 固定選擇集? 靜態值清單。即時數據? 動態值清單。
這些選項可協助您選擇適合您需求的 4D 表單。
學習資源
官方 4D 文件是 4D 表單、物件、事件和指令的權威參考。從那裡開始查找確切的屬性名稱和指令簽名。有關底層資料庫概念的背景,維基百科關於 4D (software) 的文章提供了該平台的有用歷史。如果您打算手動編輯 .4DForm 檔案或在版本控制中比較它們,JSON 格式頁面值得一讀。有關如何建構表單背後表格的一般關係設計原則,請參閱 database normalization 概述。
常見問題
什麼是 4D 表單?
4D 表單是一種聲明式使用者介面呈現,由連結到資料來源的物件(輸入欄位、按鈕、清單框、子表單)組成。4D 在執行時評估表單屬性,並將其顯示在視窗、對話方塊中或作為嵌入的子表單。表單分為三種類型:詳細資訊、清單和輸出。
4D 中的詳細資訊表單和清單表單有什麼區別?
詳細資訊表單一次顯示一筆記錄,用於資料輸入和編輯。清單表單顯示多筆記錄(通常在清單框中),用於瀏覽和選擇。兩者經常結合使用:先用清單表單選擇記錄,再用詳細資訊表單編輯該記錄。
我應該使用專案表單還是表格表單?
專案表單是現代的預設標準,並儲存為獨立的 .4DForm 檔案,使其更容易重複使用並在版本控制中管理。表格表單是遺留功能且連結到單一表格。新開發項目應使用專案表單;現有資料庫仍支援表格表單。
值清單在 4D 表單中如何運作?
值清單填充下拉清單、組合框和彈出式選單。它們可以是靜態的(僅輸入一次)、分層的(巢狀項目)或動態的(在執行時從欄位、陣列或公式建立)。值清單可以儲存一個值,同時顯示另一個值,這就是您在儲存客戶 ID 的同時顯示客戶姓名的方式。
我可以在執行時更改 4D 表單嗎?
是的。動態表單使用 DIALOG、FORM LOAD 和 FORM GOTO PAGE 等指令,在應用程式執行時載入表單、切換頁面和變更物件屬性。這支援嚮導式流程和基於角色的介面,使一個表單能服務於不同的使用者。
為什麼我的 4D 清單表單在處理大表時很慢?
清單表單的緩慢通常源於具體化了太多記錄。連結到實體選擇的基於選擇之清單框僅載入顯示的行,而基於陣列的清單框則載入所有內容。啟用延遲載入和將查詢範圍縮小到有界選擇是影響最大的兩個修復方法。
常見問題
什麼是 4D 表格?
4D 表單是聲明性使用者介面演示,由連結到資料來源的物件(輸入欄位、按鈕、列錶框、子表單)組成。 4D 在執行時間評估表單的屬性,並將其顯示在視窗、對話方塊中或作為嵌入的子表單。表單分為三種類型:詳細資訊、清單和輸出。
4D 中的詳細表單和清單表單有什麼區別?
詳細表單一次顯示一筆記錄,用於資料輸入和編輯。清單形式通常在列錶框中顯示許多記錄,用於瀏覽和選擇。兩者通常結合在一起:使用清單表單來選擇記錄,然後使用詳細資料表單來編輯記錄。
我應該使用項目形式還是表格形式?
預設情況下,專案表單是現代標準,並儲存為單獨的“.4DForm”文件,使它們更易於在版本控制中重複使用和管理。表格形式是遺留的並且連結到單一表格。新開發項目應採用項目形式;現有資料庫仍支援表格形式。
4D 形式的值列表如何運作?
值清單填入下拉清單、組合框和彈出式選單。它們可以是靜態的(僅輸入一次)、分層的(嵌套項目)或動態的(在運行時從字段、數組或公式創建)。值清單可以儲存一個值,同時顯示另一個值,這就是您在儲存客戶 ID 的同時顯示客戶姓名的方式。
我可以在運行時更改 4D 表單嗎?
是的。動態表單使用 DIALOG、FORM LOAD 和 FORM GOTO PAGE 等指令在應用程式執行時載入表單、切換頁面和變更物件屬性。這支援嚮導式流程和基於角色的介面,其中一種表單服務於不同的使用者。
為什麼我的 4D 清單表單對於大表來說很慢?
列表形式的緩慢通常是由於具體化了太多記錄。連結到實體選擇的基於選擇的列錶框僅載入顯示的行,而基於數組的列錶框加載所有內容。啟用延遲載入和將查詢範圍縮小到有界選擇是影響最大的兩個修復。
免費試用 FileMaker 45 天
長期運行的關係資料庫平台,適用於需要透過單一文件在桌面、Web 和行動裝置上自訂應用程式的團隊。