サブフォームとは、単一のオブジェクトとして保存されているフォームの要素の集まりです。サブフォームには、通常のフォームと同じ要素を含めることができます。サブフォームを使用すると設計を変更する時間を短縮できます。サブフォームのフィールドを変更すると、そのサブフォームを使用するフォームもすべて更新されます。サブフォームのよくある使用例は、ビジネス文書への会社のロゴの追加や、宛先ラベル情報のメールやメモフォームへの追加です。サブフォームは、フォームの固定部分として設定することも、式の結果によって表示と非表示を切り替えることもできます。例えば、メモ、警告、レターなどの各種のメールメッセージにそれぞれの図形とスタイルを提供するカスタムメールの選択肢をユーザーに提供できます。サブフォームで使用されるフィールド名は、フォームの他の場所では使用できません。サブフォームに対する変更は、そのサブフォームを使用するすべてのフォームと文書に影響します。
必要なサブフォームに類似するサブフォームをコピーして修正することも、新規にサブフォームを作成して設計することもできます。
サブフォームのプロパティ |
使い方 |
---|---|
[サブフォームの挿入] ダイアログに含める |
サブフォームの挿入時にサブフォーム名が表示されます。[サブフォームの挿入] ダイアログボックスにサブフォームを表示しないようにする方法では、セキュリティは保護されません。[設計者] 以上のアクセス権を持つユーザーは、Domino Designer にある任意のサブフォームを開いて、個々の要素をコピーできます。このオプションは、計算結果のサブフォームには適用されません。 |
[フォームの作成] ダイアログに含める |
このオプションを選択すると、設計者が [作成] - [設計] - [フォーム] を選択した直後にサブフォームが表示されます。このオプションは、計算結果のサブフォームには適用されません。 |
Notes パススルー HTML を解釈する |
サブフォームに直接 HTML を貼り付けることができます。HTML の貼り付けの詳細については、「ページの設計」の章のトピック「ページまたはフォームで HTML を使用する」を参照してください。 |
インデックスにフィールド名を追加しない |
サブフォームの新規フィールド名がフィールドの索引に保存されないようにするには、この設定をオンにします。この設定をオンすると、メモリが保存されます。 この設定をオンにしないと、フィールド名がいったん表に保存されてからメモリに保存されます。メモリにフィールド名を保存すると、[アクションの追加] ダイアログボックスなどの場所でもフィールド名を表示できます。 |
ディスカッションデータベースの [メイントピック] フォームに、新規文書が作成されたときにサブフォーム「NewDocSubform」を表示し、既に保存されている文書が開かれたときにサブフォーム「SavedDocSubform」を表示します。また、NewDocSubform と SavedDocSubform には同じフィールド、または同じ図形が使用されていないものとします。この場合のサブフォーム挿入式は、次のようになります。
@If(@IsNewDoc;"NewDocSubform";"SavedDocSubform");
削除されたサブフォームを参照する文書を開くと、「サブフォーム: <サブフォーム名> がロードされていません」というメッセージがステータスバーに表示されます。この場合、文書を開くことはできますが、削除されたサブフォームは表示されません。削除されたサブフォームを参照する文書を開くと、「サブフォーム: <サブフォーム名> がロードされていません」というメッセージがステータスバーに表示されます。またフォーム上で、削除されているサブフォームの挿入位置をクリックすると、「文書が無効またはありません。」というメッセージが表示されます。この場合、設計者はサブフォームを開くことはできません。
これらのメッセージが表示されないようにするには、データベースに他のサブフォームを追加して、このサブフォームに、削除されたサブフォームと同じ名前を付けます。
各フォームからサブフォームを削除できます。削除するサブフォームを使用している他のフォームには、影響を与えません。
データベースからサブフォームのすべてを削除できます。データベースからサブフォームを削除すると、このサブフォームを参照するフォームではエラーが発生するため、注意が必要です。
XPage でサブフォームを使用している場合、この XPage に含まれるサブフォーム内のフィールドにデータをバインドすることはできません。
例えば、ディスカッションテンプレートを使用して新しいアプリケーションを作成し、新しい XPage を作成するとします。その際、[返答] フォームに対する新しいデータソースを作成するため、編集ボックスをページにドラッグアンドドロップして [件名] フィールドにデータバインドしようとしましたが、ドロップダウンリスト内に [件名] フィールドがありません。
これは、[件名] フィールドが設定されたサブフォームが [返答] フォームに含まれているためです。フィールドにバインドするには、[データのバインド] フィールドにサブフォームの名前を手動で入力する必要があります。