アプリケーションの設計
サブフォームを作成する
必要なサブフォームに類似するサブフォームをコピーして修正することも、新規にサブフォームを作成して設計することもできます。
1. 開いているデータベースで、アプリケーションナビゲータの [共有要素] - [サブフォーム] をダブルクリックして [新規サブフォーム] をクリックします。または、[ファイル] - [新規] - [サブフォーム] を選択することもできます。
2. [新規サブフォーム] ダイアログボックスで名前を割り当て、必要な場合はアプリケーションを選択して [OK] をクリックします。
3. サブフォームを設計します。サブフォーム上で、フィールド、テキスト、およびその他の設計要素を作成します。
4. [設計] - [サブフォームのプロパティ] を選択します。[サブフォームのプロパティ] インフォボックスが表示されます。
5. (省略可能) コメントを入力します。
6. 次の中からサブフォームの表示オプションを選択します。
この設定をオンにしないと、フィールド名がいったん表に保存されてからメモリに保存されます。メモリにフィールド名を保存すると、[アクションの追加] ダイアログボックスなどの場所でもフィールド名を表示できます。
1. フォームを開きます。
2. サブフォームを挿入する位置にカーソルを合わせます。
3. [作成] - [リソース] - [サブフォームの挿入] を選択します。[サブフォームの挿入] ダイアログボックスが表示されます。
4. 挿入するサブフォームを選択してから、[OK] をクリックします。[データベース] プルダウンリストにあるデータベースを選択すると、他のデータベースに含まれているサブフォームを挿入することもできます。
フォームに計算結果のサブフォームを表示する
3. [作成] - [リソース] - [サブフォームの挿入] を選択します。
4. [式の定義によりサブフォームを挿入] を選択します。
5. [OK] をクリックします。
6. 表示するサブフォームを設定する式を、プログラムペインに入力します。
7. フォームを閉じ、フォームに名前を付けて保存します。
計算結果のサブフォームの表示例
ディスカッションデータベースの [メイントピック] フォームに、新規文書が作成されたときにサブフォーム「NewDocSubform」を表示し、既に保存されている文書が開かれたときにサブフォーム「SavedDocSubform」を表示します。また、NewDocSubform と SavedDocSubform には同じフィールド、または同じ図形が使用されていないものとします。この場合のサブフォーム挿入式は、次のようになります。
@If(@IsNewDoc;"NewDocSubform";"SavedDocSubform");
メモ サブフォーム式は文書が開いているときは更新できません。
サブフォームを削除する
削除されたサブフォームを参照する文書を開くと、「サブフォーム: <サブフォーム名> がロードされていません」というメッセージがステータスバーに表示されます。この場合、文書を開くことはできますが、削除されたサブフォームは表示されません。削除されたサブフォームを参照する文書を開くと、「サブフォーム: <サブフォーム名> がロードされていません」というメッセージがステータスバーに表示されます。またフォーム上で、削除されているサブフォームの挿入位置をクリックすると、「文書が無効またはありません。」というメッセージが表示されます。この場合、設計者はサブフォームを開くことはできません。
これらのメッセージが表示されないようにするには、データベースに他のサブフォームを追加して、このサブフォームに、削除されたサブフォームと同じ名前を付けます。
フォームからサブフォームを削除する
各フォームからサブフォームを削除できます。削除するサブフォームを使用している他のフォームには、影響を与えません。
1. フォーム上のサブフォームの領域をクリックします。
2. [編集] - [削除] を選択します。
3. 必要に応じて、配置を調整します。
データベースからサブフォームを削除する
データベースからサブフォームのすべてを削除できます。データベースからサブフォームを削除すると、このサブフォームを参照するフォームではエラーが発生するため、注意が必要です。
1. データベースの設計リストで [共有要素] - [サブフォーム] をクリックします。
サブフォーム、XPage、およびデータバインド
XPage でサブフォームを使用している場合、この XPage に含まれるサブフォーム内のフィールドにデータをバインドすることはできません。
たとえば、ディスカッションテンプレートを使用して新しいアプリケーションを作成し、新しい XPage を作成するとします。その際、[返答] フォームに対する新しいデータソースを作成するため、編集ボックスをページにドラッグアンドドロップして [件名] フィールドにデータバインドしようとしましたが、ドロップダウンリスト内に [件名] フィールドがありません。
これは、[件名] フィールドが設定されたサブフォームが [返答] フォームに含まれているためです。フィールドにバインドするには、[データのバインド] フィールドにサブフォームの名前を手動で入力する必要があります。