4D v16.3

概要

ホーム

 
4D v16.3
概要

概要  


 

 

フォームはデータの入力、修正、印刷を行うためのインターフェースとなります。ユーザーは、フォームを使用してデータベースのデータをやり取りし、フォームを使用してレポートを印刷します。カスタムアプリケーションにおいては、フォームを使用してカスタムダイアログボックスやパレットを作成します。

通常、データベースの各テーブルには少なくとも2 つのフォームが存在します。1 つは画面上にレコードを一覧するフォームであり、もう1 つは一度に1 件のレコードを表示しデータの入力や修正に使用するフォームです。レコードを一覧するフォームは出力フォームまたはリストフォームと呼ばれ、一度に1 件のレコードを表示するフォームは入力フォームまたは詳細フォームと呼ばれます。リストフォームを使用してレコードを表示しているとき、任意のレコードをダブルクリックすると詳細フォーム上にそのレコードが表示されます。

カスタムアプリケーションでは、ランゲージを用いて使用するフォームを指定できます。例えば使用するスクリーンのタイプに応じてフォームを切り替える必要があるかもしれません。またランゲージを使用すれば、データベースの使用者ごとにフォームを切り替えることもできます。カスタムアプリケーションを作成する際は、カスタムダイアログボックスやフローティングパレットとして使用するフォームを作成できます。また複数のプロセスで同時に複数のフォームを使用するようプログラムすることもできます。

フォーム上には複数のテーブルのフィールドを配置し、表示できます。リレートした1テーブルのフィールドをフォーム上に配置し、直接リレートした1 テーブルに値を入力することが可能です。またサブフォームを組み込み、リレートしたNテーブルのレコード一覧を表示することもできます。サブフォームには別のテーブルのレコード一覧を表示できます。サブフォームを使用すると、ユーザーは別のテーブルのレコードの表示、入力、変更を行えます。例えば請求書アプリケーションでは、請求書の入力フォーム上でサブフォームを使用し、このサブフォーム上で請求書の明細行を入力できます。請求項目は請求書フォーム上に表示されますが、実際のデータはリレートしたNテーブルに格納されます。

データ入力に用いるフォームには、複数のサブフォームを配置できます。例えばコンタクト管理データベースの場合、電話番号用のサブフォームと予定用のサブフォーム、そしてその人との前回のコンタクト用のサブフォームを配置できます。各サブフォームにはそれぞれ異なるNテーブルのレコードが表示されます。

フォームにはテーブル中のフィールドの一部、またはすべてのフィールドを配置できます。例えば従業員用と管理者用、二種類の入力フォームを用意し、管理者にはより多くのフィールドへのアクセスを提供できます。また別のフィールドグループを画面表示用に使用し、さらにレポート印刷用に4つめのグループを使用することも可能です。
データベースへデータを登録したかどうかに関わらず、フォームはいつでも変更可能です。フォームを変更しても、ディスク上に保存されたデータへの影響はありません。

各フォームには1 つ以上の表示ページがあり、それぞれにフィールドやその他の入力可オブジェクトが表示されます。フィールドが1 ページ内に納まらない場合、ページを追加することができます。マルチページフォームを作成する際、ページ間を移動するためのボタンやタブコントロールを追加します。

また各フォームには背景ページ(ページ0)があり、すべての表示ページに表示されるオブジェクトをこのページに配置します。この背景ページを使用し、ページの“外観”を定義する背景画像やボタン、タブコントロール、その他のグラフィックオブジェクトなどを配置します。

注: 複数ページフォームを出力フォーム(例えば印刷用)として使用すると、最初のページだけが表示されます。

4Dでは素早く標準のフォームを作成することができます。また、高性能なツールが用意されているため、洗練されたインタフェースを備えたフォームを作成するためのパワフルなツールも提供されます。データベースのニーズに適合したフォームを作成することができます。ポイント&クリック操作だけで、フィールドやボタン、変数などが配置された基本的なフォームを作成できます。

4Dにはフォームの作成や修正に使用するフォームウィザードフォームエディタ、2つのツールがあります。

フォームウィザードを使用して、あらゆるタイプのフォームの作成を開始できます。フォームウィザードではリストから目的のフィールドを選択し、ドロップダウンリストから目的のフォームテンプレートを選択して、新規フォームを作成することができます。フォームテンプレートは、フォームの外観を決定します。テンプレートはフォームサイズやプラットフォームインタフェース、フォント属性、ボタンなどの特性を指定します。詳細はフォームウィザードを使用してフォームを作成するを参照してください。

フォームエディターはオブジェクト指向の描画環境であり、フォーム上のオブジェクトを直接操作して、フォームをカスタマイズすることができます。例えばオブジェクトの位置変更やフォームウィザードではサポートされないオブジェクトの追加、タブコントロールを用いた複数ページフォームの作成、データ入力制約の指定によるビジネスルールの適用、フォームアクセス権の設定、フォームへのカスタムメニューの割り当て、フォーム使用時に自動実行されるフォームメソッドやオブジェクトメソッドの作成を行うことができます。詳細はフォームを編集するを参照してください。

4Dでは2つのカテゴリーのフォーム (テーブルフォームプロジェクトフォーム) を作成できます。基本的にテーブルフォームは特定のテーブルに属していて、そのためにデータベースに基づくアプリケーションの開発時に便利な自動機能の恩恵を得ることができます。プロジェクトフォームはテーブルに属さない独立したフォームです。このタイプのフォームは特にインターフェースダイアログボックスやコンポーネントを作成するために使用されます。

プロジェクトフォームを使用してより簡単にOS標準に準拠するインターフェースを作成できます。特にレコード一覧を表示する場合、(DIALOGコマンドを使用して) サブフォームにレコードセレクションを表示するプロジェクトフォームを呼び出すことが推奨されます。少々の追加プログラムを行うことで、MODIFY SELECTIONDISPLAY SELECTIONコマンドよりも制御のしやすいフォームを作成できます。

テーブルフォームとプロジェクトフォームはエクスプローラーのフォームページで別々にグループ化されます。

特定のテーブルに属するフォームです。各テーブルには、データをフィールドに入力したり画面上に表示するために、少なくとも1 つのフォームが存在すべきです。通常テーブルには入力フォームと出力フォームが別々に存在します。入力フォームはデータ入力に使用されます。このフォームには1 画面につき1 件のレコードが表示され、通常はレコードの保存や変更内容のキャンセルを行うためのボタン、レコード間を移動する(先頭レコード、最終レコード、前レコード、次レコード)ボタンが置かれます。出力フォームは1 行に1 レコードを納めたレコード一覧を表示します。クエリの結果は出力フォームに表示され、ユーザは出力フォーム上の行をダブルクリックして、入力フォーム上にそのレコードを表示することができます。

次の図は一般的な入力フォームと出力フォームを示しています:

テーブルのフォームを作成せずにレコードの表示を行おうとすると、4Dはデフォルトの入力フォームと出力フォームを作成するかどうかを尋ねてきます (これを行わないように設定することもできます)。

注: 環境設定の自動フォーム作成オプションを使用すると、例えば自動的にデフォルトフォームを作成するように設定することができます。この場合デフォルトフォーム作成ダイアログボックスは表示されません。詳細は一般ページを参照してください。

はい (またはすべてはい) をクリックするとデフォルトフォームが作成されます。デザインモードでこれらのフォームを修正したり、より洗練されたフォームで置き換えることができます。しかし、変更を一切行わなくても、これらのフォームを使い始めて、データベースにデータを登録したり表示したりすることができます。いいえをクリックするとテーブルフォームは作成されません。この場合、データ入力や表示はプロジェクトフォームで行うことになります。テーブルごとに32,000までのフォームを使用し、それぞれ特定のタスクを行わせることができます。

プロジェクトフォームは以下の点でテーブルフォームと異なります:

  • プロジェクトフォームは詳細 (ページ) タイプでのみ使用できます。リストフォームのメカニズムはプロジェクトフォームと互換性がありません。
  • プロジェクトフォームはテーブルリストに表示されず、カレントの入力フォームや出力フォームとして指定できません。プロジェクトフォームをラベルエディターや4Dの読み込み/書き出しエディター (データの読み込みと書き出し参照) で使用することはできません。
  • プロジェクトフォームはDIALOGコマンドで表示するか、継承フォームとしてのみ使用できます (継承フォームを使用する参照)。
  • プロジェクトフォームには、フィールドを含む、テーブルフォームと同じタイプのオブジェクトを配置できます。
    フィールドがプロジェクトフォームに配置される場合、そのオブジェクトにはテーブル番号とフィールド番号が格納されます。フォームが他のデータベースやコンポーネントにコピーされると、参照もコピーされます。使用されるテーブルおよびフィールドはターゲットデータベースのものとなります。テーブルが存在しなかったり、フィールドタイプが異なるなど非互換が発生した場合、フォームは正しく動作しません。
    プロジェクトフォームは主にDIALOGコマンドのコンテキストで使用されることを想定しているため、(次レコードやレコード削除など) レコード管理の標準アクションボタンは、デフォルトではエディターやフォームウィザードに配置されません。レコードの表示やデータの変更はランゲージコマンドを使用して開発者が管理します。
    他方、プロジェクトフォームをテーブルフォームの継承フォームとして使用する場合、自動レコード管理メカニズムを使用することが可能です。
  • プロジェクトフォームには、テーブルフォームと同様、フォームメソッドを作成することができます。フォームメソッドにはエクスプローラーのメソッドページからアクセスできます。

テーブルフォームをプロジェクトフォームに変更したり、プロジェクトフォームをテーブルフォームに変換したりすることが可能です。
テーブルフォームをプロジェクトフォームに変換すると、テーブルフォームで提供されていたデータ管理に関するすべての自動機能が動作しなくなるので、注意が必要です。同様に“リストフォーム”や“印刷用リストフォーム”タイプのフォームはページタイプのプロジェクトフォームに変換されます。

フォームタイプの変更はエクスプローラーのフォームページでドラッグ&ドロップやコピー/ペーストを使用して行います。これは同じデータベース内あるいは2つのデータベース間で行えます。

プロジェクトフォームとテーブルフォームを相互に変換するには:

  1. エクスプローラーのフォームページで、変換したいフォームを選択し、変換先項目上にドロップします。
    プロジェクトフォームをテーブルフォームに変換するときは、フォームを割り当てるテーブル名上にドロップします。
    同じデータベース内でフォームのドラッグ&ドロップ操作を行うと、デフォルトでフォームが移動されます。フォームをコピーしたい場合はドラッグ&ドロップの間Alt (Windows) あるいは Option (Mac OS) キーを押してください。2つのデータベース間でドラッグ&ドロップを行うと、フォームはコピーされます。エクスプローラーのコンテキストメニューからコピー/ペーストコマンドを使用することもできます。

 
プロパティ 

プロダクト: 4D
テーマ: フォームの管理

 
履歴 

 
ARTICLE USAGE

デザインリファレンス ( 4D v16)
デザインリファレンス ( 4D v16.1)
デザインリファレンス ( 4D v16.3)