フォームウィザードを使用して新規フォームを手早く作成することができます。新規フォームを作成後すぐにそのフォームを使用したり、またはフォームエディターでフォームを編集することもできます。
フォームウィザードには2 つの画面があります。基本画面を使用すると簡単な操作で新規フォームを作成できます。詳細画面ではフォームを作成する前にカスタマイズを加えることができます。
フォームウィザードの詳細設定オプションを表示するには、フォームウィザードの基本画面で詳細設定...ボタンをクリックします。フォームウィザードの最初の画面に戻るには< 戻るボタンをクリックします。
詳細設定画面でもポイント&クリック操作で新規フォームを作成できますが、より幅広いカスタマイズオプションが用意されています。
カスタマイズオプションはフォームウィザードの最初の画面で選択したフォータイプにより異なります。フォームウィザードでは以下のフォームタイプを指定できます:
- 詳細フォーム
- リストフォーム (テーブルフォームのみ)
- 印刷用詳細フォーム
- 印刷用リストフォーム (テーブルフォームのみ)
さらにフォームウィザードを使用して、カスタマイズオプションをテンプレートとして保存することができます。テンプレート名はフォームウィザードの基本ページにあるテンプレートドロップダウンリストに表示されます。ユーザー定義テンプレートを使用すれば、高度にカスタマイズされたフォームを、フォームウィザードの基本ページでカスタムテンプレートとフィールドを指定するだけで作成できます。
フィールドページはフォームウィザードの基本画面と同じような外観をしています。フィールドページでは、フォームウィザードの基本ページと全く同じ方法で、フォームにフィールドを追加するために使用されます。この機能は基本画面をスキップして、詳細画面ですべての設定を行いたい開発者のために用意されています。フォームにフィールドを追加する方法については前節を参照してください。
フィールドページには追加のオプション、リレートフィールド入力可があります。このオプションを使用して、リレートテーブルのフィールドの"入力可"プロパティ値を指定できます。このオプションはデフォルトでチェックされていて、フィールドは入力可です。例えばリレーションプロパティの"サブフォームにリレート値を自動代入する"が選択されている場合などに、ユーザーがリレートフィールドの値を更新できないようにするためにこのオプションの選択を外すことができます (リレーションプロパティについてはリレーションプロパティを参照)。
“入力可”プロパティについては入力可/必須入力とフィールドプロパティを参照してください。
オプションページではフォームサイズ、フィールドラベルの位置、フォームの表示に関する様々なオプションを設定できます。
このエリアではフォームサイズを指定できます。内容に合わせてフォームサイズを自動設定したり、最大幅と最大高さを入力して固定サイズにしたり、画面サイズを選択したりすることができます。これらの設定を組み合わせることも可能です。
画面サイズドロップダウンメニューでは以下の選択肢が提供されます:
- 自動 (フォームサイズは現在のスクリーンに合わせられます)
- 低解像度 640x480
- 中解像度 800x600
- 標準 1024x768
- 高解像度 1280x1024
- 大スクリーン 1600x1200
値はピクセル単位で、幅x高さの率に対応します。
画面サイズを入力するか、ドロップダウンリストから選択すると、プレビューエリアが選択した内容を反映して更新されます。フォームウィザードはフォーム上のフィールドやオブジェクトの配置を調整し、すべてのオブジェクトが選択されたスクリーンサイズに収まるようにします。必要に応じてページを作成オプション (後述) が選択されていて、4Dがすべてのフィールドを1ページ収めることができない場合、すべてのフィールドをフォーム上に配置するために必要なだけページが作成されます。複数ページを生成すると、フォームウィザードはボタン、フォームタイトル、その他すべてのページで共通して使用されるオブジェクトを0ページに配置します。
- フィールドに合わせる: このチェックボックスにチェックすると、フォームウィザードはフィールドの周りの背景項目をフィールドに合わせてサイズ調整し、空のスペースがなくなるようにします。
- 印刷用フォームの場合 (印刷用詳細フォームや印刷用リストフォーム):
- “フォームサイズ”エリアには用紙設定...ボタンがあり、クリックすると印刷時の用紙サイズ等を設定できる印刷設定ダイアログボックスが表示されます。4Dはフォームのサイズとプレビューエリアをここで選択したページフォーマットに調整します。
- "画面表示オプション"エリアでは、フォームタイトル、ページ番号、印刷日や印刷時刻など、レポートの印刷時に挿入したいオブジェクトを指定することができます。
- リストフォームタイプの場合: “フォームサイズ”エリアには対象の幅オプションがあります。
このオプションにチェックしない場合、リストフォームの幅はフォームフィールドに合わせて自動で計算されます。このオプションにチェックして値を入力すると、ウィザードはフィールド幅を減らして指定された幅にすべてのフィールドを収めるようとします。必要に応じて切り捨てオプションにチェックすると、ウィザードはフォーム幅が指定された値よりも小さくなるように必要なだけフィールドを取り除きます。この二番目のオプションにチェックしない場合、フォーム幅は対象の幅オプションで指定された値より大きくなる場合があります。
オプションページのラベルの位置エリアでは、フィールドに対してどの位置にラベルを配置するかを指定できます。ラベルを表示する場合、フィールドの左あるいは上を選択できます。
オプションページの画面表示オプションエリアでは、フォームに要素を追加し、また追加のオプションを設定することができます:
- フォームタイトル: フォーム上部にテーブル名をタイトルとして追加します。プロジェクトフォームではこのオプションを使用できません。
- 1行に1フィールド: フィールドをすべて縦に並べる場合にチェックします。このオプションが選択されていないと、フォームウィザードは可能な限りフィールドを横に並べようとします。
- 必要に応じてページを作成: フィールドが1ページに収まらない場合、フォームウィザードが自動で複数ページを作成するように指示します。このオプションを使用すると、フォームウィザードは全ページで共通に使用されるオブジェクトを背景ページ (0ページ) に配置します。
- ダイナミックフィールド名を使用: このオプションが選択されると、フィールド名やテーブル名は動的参照を使用してフォームに挿入されます。これによりフィールド名やテーブル名が変更された場合、自動でその変更がフォームにも反映されます。テーブル名やフィールド名はストラクチャーエディターあるいはSET FIELD TITLESやSET TABLE TITLESコマンドを使用して変更されます。詳細はスタティックテキスト中で参照を使用するを参照してください。
- 関連メニューバー: フォームにメニューバーを関連付けるには、このオプションにチェックを入れ、メニューバーを選択します。詳細はフォームにメニューバーを割り当てるを参照してください。
- レコード番号/レコード数: フォームにカレントレコード番号とそうレコード数を表示する4D変数 (デフォルトでvRecNumという変数名) が追加されます。このオプションはプロジェクトフォームでは使用できません。
ボタンページではフォームで使用されるボタンをカスタマイズできます。
注: このページは"印刷用詳細フォーム"と"印刷用リストフォーム"タイプのフォームでは表示されません。
印刷用でないリストおよび詳細フォームでは、ユーザーはボタンを使用してレコードへの変更を保存したりキャンセルしたり、あるいは複数ページフォームではページ間を移動したりします。
さらに、テーブルフォームにはレコード間を移動する自動アクションボタン (先頭レコード、最終レコード、次レコード、前レコード)、サーブフォームにレコードを追加/削除するボタン、またはカレントレコードを削除するボタンを配置することもできます。
ボタンページではボタンのデザイン、ボタンのアクション、フォーム上でのボタンの位置、各ボタンのラベルなどを指定できます。
注: フォームエディターでボタンを追加したり、削除したり、位置を変更したり、また他のオブジェクトを追加したりクリックされたときに実行されるアクションを指定することができます。
ボタンファミリーとボタンの位置エリアではボタンのスタイルと位置を指定できます。
ボタンファミリードロップダウンリストでファミリーを選択し、[<]や[>]ボタンをクリックしてボタンをプレビューできます。
4Dは一連の組み込みボタンアクションを提供しています。ボタンに組み込みボタンアクションを割り当てれば、ユーザーがそのボタンをクリックした際に実行させる動作を指定するメソッドを書く必要がありません。
利用できる組み込みアクションの数はフォームのカテゴリー (テーブルまたはプロジェクト) により異なります。例えばレコード間を移動するアクションはプロジェクトフォームでは使用できません。
詳細フォームの場合、フォームウィザードで以下の組み込みボタンアクションを利用できます:
- OK: 新規レコードの保存、または既存レコードへの変更の保存を行う。
- キャンセル: 新規レコードの破棄、または既存レコードへの変更の破棄を行う。
- 次ページ, 前ページ, 先頭ページ, 最終ページ: 複数ページフォームにおいて指定されたページを表示する。
以下のアクションはテーブルフォームでのみ使用できます:
- 次レコード、前レコード、先頭レコード、最終レコード: カレントレコードを保存し、指定されたレコードを表示する。
- レコード削除: データベースからカレントレコードを削除する (確認ダイアログボックスが表示される)。
注: サブフォームを挿入するとき、サブフォームページのオプションエリアで追加と削除ボタンんチェックソックスにチェックを入れておくと、4Dは自動で2つのサブフォームボタンを挿入します。追加はNテーブルまたはサブテーブルに新規レコードを追加し、削除はサブフォーム中で現在選択されているレコードを削除します。
4Dにはほかにもアクションが定義されたボタンがあります。これらのアクションはフォームウィザードでフォームを作成する際やフォームエディターでフォームを編集する際に設定できます。詳細は標準アクションを参照してください。
デフォルトボタンはページのアクションエリアに表示されています:
![](../../picture/107813/pict107813.en.png)
自動ボタンの選択や選択解除は、フィールドページでフォームにフィールドを配置したり取り除いたりするのと同じ方法で行います。追加したボタンは選択されたアクションエリアに表示されます。
注: "選択されたエリア"ボタンに含まれている場合でも、ページ管理ボタン (前ページや次ページ) は複数ページフォームが作成される場合にのみ実際に配置されます。
ボタンのデフォルトラベルを変更したい場合 (ラベルありテンプレートが選択されていなければなりません)、選択されたアクションエリアでボタンを選択し、ラベルエリアに新しいラベルを入力します。ラベル入力後、タブを押すか、選択されたアクションリストの他のボタンを選択します。入力したラベルがプレビューエリアに表示されます。
注:
- データベースローカライズのために、リソース参照をラベルとして入力することができます (付録 C: XLIFFアーキテクチャー参照)。
- ボタンTipはボタンラベルとは独立しています。ボタンにTipを割り当てたい場合、フォームエディターのプロパティリストを使用します (ヘルプメッセージ参照)。
サブフォームページではフォームにサブフォームを追加できます。このサブフォームは、サブフォームの自動更新メカニズムを使用したい場合、リレートしたNテーブルのフォームでなければなりません。
リレートしたNテーブルのフィールドを使用したい場合、フォームにサブフォームを追加します。サブフォームは複数のレコードを一度に表示します。サブフォームを使用してリレートしたレコードや他のテーブルのレコードを表示させることができます。サブフォームに表示されているレコードに情報を入力することもできます。
リレートしたNテーブル、またはリレートしていないテーブルのフィールドをサブフォーム中のフィールドに表示できます。リレートしたNテーブルのフィールドを配置した場合、リレーションによりどのレコードを表示するかが決定されます。リレートしていないフィールドやマニュアルリレーションのフィールドをサブフォームに配置した場合、デフォルトでテーブルのカレントセレクションが表示されます。メソッドを使用してレコードセレクションを制御できます。
詳細画面のサブフォームページでは、フォームをサブフォームとして使用し、サブフォームオプションを設定して、サブフォームに対して動作するボタンを追加することができます。
フォームにサブフォームを追加するには、サブフォーム組み込みオプションにチェックします。サブフォームのテーブルを“テーブル”ドロップダウンリストから選択し、リストフォームドロップダウンリストから使用するサブフォームを選択します。また“詳細フォーム”ドロップダウンリストから、ユーザーがリストサブフォームをダブルクリックした際に表示されるページフォームを設定することもできます。設定したサブフォームはカレントフォームの一部としてプレビューエリアに表示されます。
サブフォームには以下のオプションを設定できます:
- 複数選択可: ユーザーはShift (連続選択)、あるいはCtrl (Windows) や Command (Mac OS) (非連続選択) キーを使用して、同時に複数のレコードを選択することができます。
- リスト入力可: ユーザーはサブフォームに直接サブレコードの値を入力して、更新できます。
- 追加・削除ボタン: ウィザードは自動で2つのボタンをフォームに挿入します (フォームで指定されたボタンファミリーが使用されます)。これらのボタンにはサブレコード追加とサブレコード削除の標準アクションが割り当てられます:
![](../../picture/107831/pict107831.en.png)
これらのオプションについてはリストサブフォームを参照してください。
詳細設定画面で新しいフォームのプロパティをすべて設定したら、OKボタンをクリックします。OKをクリックすると以下のダイアログボックスが表示されます:
![](../../picture/107834/pict107834.en.png)
新規フォームを作成するには使用ボタンをクリックしてフォームのテストを行うか (テーブルフォームのみ)、編集ボタンをクリックして新規フォームをフォームエディターで開きます。
フォーム作成ダイアログでは、詳細設定画面で設定した内容に基づき、新しいフォームテンプレートを作成することができます。フォームテンプレートを作成すると、その名前がフォームウィザードのテンプレートドロップダウンリストに追加されます。フォームテンプレートはフォームとは別に保存されます。
フォームテンプレートを作成するにははいをクリックし、テンプレート名エリアに名前を入力します。