メインコンテンツへスキップ
HPO Software 4Dデータベースとローコードアプリ構築のステップバイステップガイド。最初のテーブル作成から、実用的なビジネスアプリの完成までをサポートします。

当サイトの一部にはアフィリエイトリンクが含まれています。これらのリンク経由でご購入いただいた場合、追加費用なしで弊社に手数料が支払われることがありますが、推奨内容に影響はありません。詳細はアフィリエイト開示ページをご確認ください。 アフィリエイト開示.

ベスト 4D フォーム: 比較したトップピック (2026)

4D フォームは 4D アプリケーションのユーザー インターフェイス層であり、プラットフォームは 3 つの異なるフォーム タイプ(詳細、リスト、出力フォーム)を提供しており、それぞれが異なるタスクに適しています。2026 年において正しく実装するということは、タスクに合わせてフォーム タイプを選択し、そこに値リスト、サブフォーム、および動的プロパティを重ね合わせることを意味します。この比較では、実用的なオプション、そのトレードオフ、および決定方法について説明します。

重要なポイント

  • 4D は、詳細(一度に 1 レコード)、リスト(グリッド内に複数のレコード)、出力(印刷/レポート レイアウト)の 3 種類の 4D フォームを提供します。間違ったタイプを選択することは、初心者が犯す最も一般的な間違いです。
  • プロジェクト フォーム(.4DForm JSON ファイルとして保存)が現代のデフォルトです。テーブル フォームはレガシーであり、単一のテーブルにリンクされています。新規の開発にはプロジェクト フォームを使用してください。
  • 動的フォーム(DIALOG、FORM LOAD、FORM GOTO PAGE)を使用すると、実行時にインターフェイスを作成および切り替えることができます。これは、ウィザード形式のフローやロールベースのユーザー インターフェイスに不可欠です。
  • 値リスト(静的、階層的、またはフィールド/配列から生成)がドロップダウン リスト、コンボ ボックス、ポップアップ メニューを駆動します。これらをフィールドにバインドするのは、プロパティの 1 行の変更で完了します。
  • サブフォームはあるフォームを別のフォーム内に埋め込むもので、ウィジェットを複製せずにマスター・詳細レイアウトを作成するための標準的な方法です。
  • リスト フォームのパフォーマンスは、エンティティ選択かクラシック選択か、および大規模なレコード セットに対して**遅延読み込み(lazy loading)**が有効かどうかに大きく依存します。

「4D フォーム」の実際の意味

4D フォームは、構造(テーブル フォーム)またはスタンドアロンのプロジェクト ファイル(プロジェクト フォーム)として保存される宣言的なユーザー インターフェイス定義です。フォームには、定義されたページ サイズ(オプションで複数ページ)のキャンバス上に配置されたオブジェクト(入力フィールド、ボタン、リスト ボックス、サブフォーム、Web エリア、静的テキスト)が含まれます。各オブジェクトは、実行時に 4D が評価するプロパティ(データソース、入力可能状態、フォント、座標)を持っています。

比較において最も重要な区別は、フォームはウィンドウではないということです。フォームはレイアウトであり、ウィンドウは 4D がそれを表示するために開くコンテナです。同じフォームをモーダル ダイアログ ボックス、パレット ウィンドウ、サイズ変更可能なドキュメント ウィンドウに表示したり、サブフォームとして埋め込んだりできます。この分離を理解することで、経験豊富な開発者は、フォームを再構築するのではなく、1 つのフォームを複数のコンテキストで再利用できるようになります。

3 つのフォーム タイプの比較

フォームタイプ表示されるレコード一般的な用途主な注意点
詳細フォーム1 つデータ入力、レコード編集、ダイアログ明示的なナビゲーションが必要(ボタン、NEXT RECORD)
リスト フォーム多数ブラウズ、選択、ダッシュボード大規模な選択には遅延読み込みまたはページングが必要
出力フォーム多数印刷、PDF エクスポート、レポートインタラクティブではない。レイアウトは印刷向け

詳細フォームはデータ入力の主力です。テーブルの現在のレコードを表示し、ユーザーがフィールドを直接編集できるようにします。また、詳細フォームは設定ダイアログやログイン画面にも最適です。なぜなら、どのテーブルにもバインドせず、プロセス変数のみで駆動させることができるからです。

リスト フォームは、スクロール可能なレコードのグリッドを表示します。現代の 4D では、リスト フォームは通常、古い「列を持つリスト フォーム」アプローチではなく、リスト ボックス オブジェクトを中心に構築されます。リスト ボックスは配列ベースまたは選択ベースにでき、選択ベースのリスト ボックスはエンティティ選択に直接バインドされます。これは ORDA を使用する場合に推奨されるモデルです。

出力フォームは印刷用に存在します。ヘッダー、フッター、ブレーク レベルを含むページ レイアウトでレコードをレンダリングします。出力フォームは画面上の操作を目的としていないため、4D では詳細フォームのようにユーザーがタブ キーでフィールド間を移動することはできません。

関連: — 自動化、ビュー、共有可能なインターフェイスを備えた、実際のリレーショナル データベースの上にあるスプレッドシートのようなシンプルなインターフェイス。.

これらが 3 つの主要な 4D フォームです。

プロジェクト フォーム vs. テーブル フォーム

プロジェクト フォームは、プロジェクトの “Forms” フォルダーに個別の “.4DForm” ファイルとして保存され、バージョン管理が可能です。各フォームは個別の JSON ドキュメントであるため、2 人の開発者が異なるフォームを編集していても、マージ時に衝突することはほとんどありません。テーブル フォームは構造ファイル内にあり、同じフォーム エディタで編集されますが、概念的に単一のテーブルにリンクされています。

2026 年に向けた実践的なヒント:すべての新しいフォームをプロジェクト フォームとして作成してください。 テーブル フォームは引き続き完全にサポートされており、レガシーなデータベースで目にすることになりますが、プロジェクト フォームの方が差異が明確で、テーブル間での再利用が容易であり、メンタル モデルも明確になります。テーブル フォームをプロジェクト フォームに変換するには、テーブルのフォーム リストからプロジェクトのフォーム リストに移動させます。オブジェクト定義は保持されます。

ショッピングの場合: — より広範なZohoスイートにプラグインするローコードアプリビルダーで、アプリごとではなくユーザーごとに価格が設定されます。.

フォームの構築:コア ステップ

  1. フォーム エディタ(エクスプローラー → フォーム → 新規)でフォームを作成し、詳細、リスト、または出力を選択します。
  2. ページ サイズを設定し、必要に応じてマルチステップ レイアウト用のページを追加します。
  3. オブジェクトを配置:エクスプローラーからキャンバスにフィールドをドラッグするか、オブジェクト ライブラリからボタン、リスト ボックス、サブフォームを追加します。
  4. データ ソースをリンク:各入力オブジェクトをフィールド、変数、または式に割り当てます。
  5. ドロップダウン リスト、コンボ ボックス、またはポップアップ メニューの値リストを構成します。
  6. イベントを配線(Wire) — フォーム イベント(On Load、On Clicked、On Data Change)およびオブジェクト イベントにメソッドをアタッチします。
  7. 組み込みプレビューを使用してフォーム エディタでテストし、その後、実行中のウィンドウでテストします。

ステップ 6 は、4D フォームを作成する際の実際の作業の大部分を占める部分です。イベント メソッドのないフォームは単なる静止画です。On Load フォーム イベントは通常、配列の作成、値リストのロード、または現在のユーザーのロールに基づいた入力可能状態の設定を行う場所になります。

値リスト:つまずきやすい詳細点

値リストは、4D フォームのすべてのドロップダウン、コンボ ボックス、ポップアップ メニューの背後にあるメカニズムです。次の 3 つのタイプがあります:

  • 静的リスト — リスト エディタに値を一度だけ入力します。ステータス コードなどの固定された列挙型に最適です。
  • 階層リスト — | セパレータの慣習を用いたネストされた要素をサポートし、カテゴリ ツリーに便利です。
  • 動的リスト — 実行時にフィールド、配列、または数式から入力されます。これらはライブ データを反映するため、アクティブな顧客リストなどを再デプロイなしで最新の状態に保てます。

よくある落とし穴は、ラベルを表示しながら、参照(ID)を保存するフィールドに動的な値リストをバインドすることです。4D はこれを「関連付けられた値(associated value)」という概念で管理します。リストは 1 つの値を保存し、別の値を表示します。これを正しく設定できるかどうかが、「42」を記録するドロップダウン リストになるか、「Acme Corp.」を記録するリストになるかの分かれ目です。

サブフォームとマスター・詳細レイアウト

サブフォームはあるフォームを別のフォームに統合します。親フォームがサブフォーム オブジェクトをホストし、その内部に子フォームが表示されます。データはサブフォームの “table” プロパティを通じて、また現代の 4D では子フォームに渡される Form オブジェクトを通じて流れます。

マスター・詳細は 4D フォームの典型的な使用例です。上部に請求書の詳細フォームを配置し、その下のサブフォームに請求書明細行のリスト フォームを配置します。親レコードが変更されると、親の On Data Change で更新するか、選択を再バインドすることで、サブフォームの選択も更新されます。また、サブフォームを使用すると再利用可能なコンポーネントを作成できます。例えば「顧客ピッカー」フォームを作成すれば、それを必要とするあらゆる親フォームに配置できます。

動的フォームとランタイム UI

動的 4D フォームは、アプリケーションの実行中にインターフェイスを変更します。主要なコマンドは、DIALOG(フォームをモーダルまたは非モーダル ダイアログとして開く)、FORM LOAD(表示させずにフォームをメモリにロードする)、FORM GOTO PAGE(ページを切り替える)、およびオブジェクトのプロパティを即座に変更する OBJECT SET... です。

関連: — ポータル、ディレクトリ、内部ツールを対象としたコード不要のデータベース ビルダーで、ユーザーごとの料金ではなく定額料金が適用されます。.

動的フォームは 2 つのシナリオで重要です。1 つ目はウィザード フローです。複数のページを持つ単一のフォームで、ユーザーがステップを完了するたびに FORM GOTO PAGE で進めます。2 つ目はロールベースのインターフェイスです。ユーザー権限に基づいて On Load 時にオブジェクトを非表示または無効にすることで、1 つのフォームを管理者と読み取り専用ビューアの両方に対応させます。トレードオフは複雑さです。動的な動作は静的なレイアウトよりもデバッグが難しいため、別のフォームを作成せざるを得ない場合にのみ使用してください。

パフォーマンスに関する考慮事項

4D フォームのリスト フォームのパフォーマンスは、4D が実体化(materialize)しなければならないレコード数によって決まります。エンティティ選択にリンクされた選択ベースのリスト ボックスは、表示される行のみをロードするため、テーブルが大きくなってもメモリ消費は一定に保たれます。従来の配列ベースのリスト ボックスはすべてを事前にロードするため、大規模なテーブルでは著しく速度が低下します。

他に有効な手段が 2 つあります。リスト ボックスの遅延読み込み(lazy loading)(スクロール時に行を取得する)と、テーブル全体ではなく限定された選択範囲を返すサーバー側クエリです。クライアント/サーバー展開の場合、ネットワーク経由でレコードを取得する往復コストは通常、レンダリング時間を大幅に上回るため、選択範囲を絞り込むことが最も価値のある最適化になります。

私たちの選択: — デスクトップ、Web、モバイル上で 1 つのファイルからカスタム アプリを必要とするチーム向けの、長期にわたって実行されているリレーショナル データベース プラットフォームです。.

決定方法

  • 1 レコードのデータ入力? $ ightarrow$ 詳細フォーム
  • 多数のレコードから参照または選択? $ ightarrow$ 選択ベースのリスト ボックスを持つリスト フォーム
  • 印刷または PDF 出力? $ ightarrow$ 出力フォーム
  • 複数のテーブルで再利用可能にする? $ ightarrow$ テーブル フォームではなくプロジェクト フォーム
  • 複数ステップのプロセス? $ ightarrow$ 複数ページを持ち、動的にページを切り替えるフォーム
  • マスター・詳細関係? $ ightarrow$ リスト フォームのサブフォームをホストする詳細フォーム
  • 固定の選択肢? $ ightarrow$ 静的な値リスト。 ライブデータ? $ ightarrow$ 動的な値リスト

これらのオプションを活用して、ニーズに合った適切な 4D フォームを選択してください。

学習リソース

公式 4D ドキュメントは、4D フォーム、オブジェクト、イベント、およびコマンドの権威あるリファレンスです。正確なプロパティ名やコマンドのシグネチャを確認するには、まずそこから始めてください。基礎となるデータベース概念の背景については、Wikipedia の 4D (software) の記事がプラットフォームの有用な歴史を伝えています。.4DForm ファイルを手動で編集したり、バージョン管理で比較したりする場合は、JSON 形式のページを読む価値があります。フォームの背後にあるテーブル構造を決定づける一般的なリレーショナル設計原則については、database normalization(データベース正規化)の概要を確認してください。

よくある質問

4D フォームとは何ですか?

4D フォームは、データソースにリンクされたオブジェクト(入力フィールド、ボタン、リスト ボックス、サブフォーム)で構成される宣言的なユーザー インターフェイス プレゼンテーションです。4D は実行時にフォームのプロパティを評価し、それをウィンドウ、ダイアログ ボックス、または埋め込みサブフォームとして表示します。フォームには、詳細、リスト、出力の 3 つのタイプがあります。

4D の詳細フォームとリスト フォームの違いは何ですか?

詳細フォームは一度に 1 つのレコードを表示し、データの入力と編集に使用されます。リスト フォームは通常リスト ボックスを使用して多数のレコードを表示し、参照と選択に使用されます。これら 2 つは組み合わせて使われることが多く、リスト フォームでレコードを選択し、詳細フォームでそれを編集するという流れになります。

プロジェクト フォームとテーブル フォームのどちらを使用すべきですか?

プロジェクト フォームが現代の標準であり、個別の “.4DForm” ファイルとして保存されるため、再利用やバージョン管理での管理が容易です。テーブル フォームはレガシーであり、単一のテーブルにリンクされています。新規開発にはプロジェクト フォームを使用してください。テーブル フォームは既存のデータベース向けに引き続きサポートされています。

4D フォームの値リストはどのように機能しますか?

値リストは、ドロップダウン リスト、コンボ ボックス、ポップアップ メニューに値を供給します。静的(一度だけ入力)、階層的(ネストされた項目)、または動的(実行時にフィールド、配列、数式から作成)に設定できます。値リストはある値を保存しながら別の値を表示できるため、顧客 ID を保存しつつ顧客名を表示させることが可能です。

実行時に 4D フォームを変更できますか?

はい。動的フォームでは、DIALOG、FORM LOAD、FORM GOTO PAGE などのコマンドを使用して、アプリケーションの実行中にフォームをロードし、ページを切り替え、オブジェクトのプロパティを変更できます。これにより、ウィザード形式のフローや、1 つのフォームで異なるユーザーに対応するロールベースのインターフェイスを実現できます。

大規模なテーブルで 4D リスト フォームが遅くなるのはなぜですか?

リスト フォームの速度低下は、一般的に実体化するレコードが多すぎることが原因です。エンティティ選択にリンクされた選択ベースのリスト ボックスは表示行のみをロードしますが、配列ベースのリスト ボックスはすべてをロードします。遅延読み込みを有効にすることと、クエリを限定的な選択範囲に絞り込むことが、最も効果的な 2 つの解決策です。

よくある質問

4Dフォームとは何ですか?

4D フォームは、データ ソースにリンクされたオブジェクト (入力フィールド、ボタン、リスト ボックス、サブフォーム) で構成される宣言型ユーザー インターフェイス プレゼンテーションです。 4D は実行時にフォームのプロパティを評価し、それをウィンドウ、ダイアログボックス、または埋め込みサブフォームとして表示します。フォームには、詳細、リスト、出力の 3 つのタイプがあります。

4D の詳細フォームとリスト フォームの違いは何ですか?

詳細フォームには一度に 1 つのレコードが表示され、データの入力と編集に使用されます。リスト フォームには、通常はリスト ボックスに多数のレコードが表示され、参照と選択に使用されます。多くの場合、この 2 つは組み合わせられます。レコードを選択するためのリスト フォームと、それを編集するための詳細フォームです。

プロジェクト フォームとテーブル フォームを使用する必要がありますか?

プロジェクト フォームはデフォルトで最新の標準であり、別個の '.4DForm' ファイルとして保存されるため、バージョン管理での再利用と管理が容易になります。テーブル フォームは従来のものであり、単一のテーブルにリンクされています。新しい開発にはプロジェクト フォームを使用する必要があります。テーブル形式は既存のデータベースに対して引き続きサポートされます。

値リストは 4D フォームでどのように機能しますか?

値リストは、ドロップダウン リスト、コンボ ボックス、およびポップアップ メニューに入力されます。これらは、静的 (1 回のみ入力)、階層 (ネストされた項目)、または動的 (実行時にフィールド、配列、または数式から作成) にすることができます。値リストでは、ある値を保存しながら別の値を表示できます。これは、顧客 ID を保存するときに顧客の名前を表示する方法です。

実行時に 4D フォームを変更できますか?

はい。動的フォームは、DIALOG、FORM LOAD、FORM GOTO PAGE などのコマンドを使用して、アプリケーションの実行中にフォームをロードし、ページを切り替え、オブジェクトのプロパティを変更します。これは、ウィザード スタイルのフローと、1 つのフォームが異なるユーザーにサービスを提供するロールベースのインターフェイスをサポートします。

大きなテーブルを使用すると 4D リスト フォームが遅くなるのはなぜですか?

リスト形式の速度の低下は、一般に、実体化するレコードが多すぎることが原因で発生します。エンティティ選択にリンクされた選択ベースのリスト ボックスは、表示されている行のみを読み込みますが、配列ベースのリスト ボックスはすべてを読み込みます。遅延読み込みを有効にすることと、クエリを制限付き選択に絞り込むことは、最も大きな影響を与える 2 つの修正です。


FileMaker を 45 日間無料でお試しください

デスクトップ、Web、モバイル上で 1 つのファイルからカスタム アプリを必要とするチーム向けの、長期にわたって実行されているリレーショナル データベース プラットフォームです。