アプリケーションの設計


サブフォームを使用する
サブフォームとは、単一のオブジェクトとして保存されているフォームの要素の集まりです。 サブフォームには、通常のフォームと同じ要素を含めることができます。サブフォームを使用すると設計を変更する時間を短縮できます。サブフォームのフィールドを変更すると、そのサブフォームを使用するフォームもすべて更新されます。サブフォームのよくある使用例は、ビジネス文書への会社のロゴの追加や、宛先ラベル情報のメールやメモフォームへの追加です。式の結果により、サブフォームはフォームの固定部分にしたり、条件により表示したりできます。たとえば、メモ、警告、レターなどの各種のメールメッセージにそれぞれの図形およびスタイルを提供するカスタムメールの選択肢をユーザーに提供できます。サブフォームで使用されるフィールド名は、フォームの他の場所では使用できません。サブフォームに加えた変更は、そのサブフォームを使用するすべてのフォームと文書に影響します。

サブフォームを作成する必要なサブフォームに類似しているサブフォームをコピーして修正することも、新規にサブフォームを作成して設計することもできます。
1 新規のサブフォームがあるデータベースを開き、[共有コード] - [サブフォーム] をクリックします。

2 [新規サブフォーム] をクリックします。

3 フォームの作成時に使用した同じ要素を使って、サブフォームを作成します。

4 [設計] - [サブフォームのプロパティ] を選択します。[サブフォームのプロパティ] インフォボックスが表示されます。

5 [サブフォーム情報] タブで、新規サブフォームの名前を入力します。

6 (省略可能) コメントを入力します。

7 次の中からサブフォームの表示オプションを選択します。
サブフォームのプロパティ使用法
[サブフォームの挿入] ダイアログに含めるサブフォームの挿入時にサブフォーム名が表示されます。[サブフォームの挿入] ダイアログボックスにサブフォームを表示しないようにする方法では、セキュリティは保護されません。[設計者] 以上のアクセス権を持つユーザーは、IBM(R) Lotus Domino Designer(R) にある任意のサブフォームを開いて、個々の要素をコピーできます。このオプションは、計算結果のサブフォームには適用されません。
[フォームの作成] ダイアログに含めるこのオプションを選択すると、設計者が [作成] - [設計] - [フォーム] を選択した直後にサブフォームが表示されます。このオプションは、計算結果のサブフォームには適用されません。
Lotus Notes パススルー HTML を解釈するサブフォームに直接 HTML を貼り付けることができます。HTML の貼り付けについて詳しくは、「ページの設計」の章のトピック「ページまたはフォームで HTML を使用する」を参照してください。
インデックスにフィールド名を追加しないサブフォームの新規フィールド名がフィールドの索引に保存されないようにするには、この設定をオンにします。この設定をオンすると、メモリが保存されます。

この設定をオンにしないと、フィールド名がいったん表に保存されてからメモリに保存されます。メモリにフィールド名を保存すると、[アクションの追加] ダイアログボックスなどの場所でもフィールド名を表示できます。

8 サブフォームを保存して閉じます。

フォームにサブフォームを挿入する 1 フォームを開きます。
2 サブフォームを挿入する位置にカーソルを合わせます。

3 [作成] - [リソース] - [サブフォームの挿入] を選択します。[サブフォームの挿入] ダイアログボックスが表示されます。

4 挿入するサブフォームを選択してから、[OK] をクリックします。[データベース] プルダウンリストにあるデータベースを選択すると、他のデータベースに含まれているサブフォームを挿入することもできます。

フォームに計算結果のサブフォームを表示する 1 フォームを開きます。
2 サブフォームを挿入する位置にカーソルを合わせます。

3 [作成] - [リソース] - [サブフォームの挿入] を選択します。

4 [式の定義によりサブフォームを挿入] を選択します。

5 [OK] をクリックします。

6 表示するサブフォームを設定する式を、プログラムペインに入力します。

7 フォームを閉じ、フォームに名前を付けて保存します。

計算結果のサブフォームの表示例ディスカッションデータベースの [メイントピック] フォームに、新規文書が作成されたときにサブフォーム「NewDocSubform」を表示し、既に保存されている文書が開かれたときにサブフォーム「SavedDocSubform」を表示します。また、NewDocSubform と SavedDocSubform には同じフィールド、または同じ図形が使われていないものとします。この場合のサブフォーム挿入式は、次のようになります。
@If(@IsNewDoc;"NewDocSubform";"SavedDocSubform");

メモ サブフォーム式は文書が開いているときは更新できません。

サブフォームを削除するユーザーが開いた文書が、既に削除されているサブフォームを参照している場合は、ステータスバーに「サブフォーム <サブフォーム名> がロードされていません。」というメッセージが表示されます。文書は開かれますが、削除されたサブフォームは表示されません。設計者が開いたフォームが、既に削除されているサブフォームを参照している場合は、ステータスバーに「サブフォーム <サブフォーム名> がロードされていません。」というメッセージが表示されます。またフォーム上で、削除されているサブフォームの挿入位置をクリックすると、「文書が無効またはありません。」というメッセージが表示されます。この場合、設計者はサブフォームを開くことはできません。
これらのメッセージが表示されないようにするには、データベースに他のサブフォームを追加して、このサブフォームに、削除されたサブフォームと同じ名前を付けます。

フォームからサブフォームを削除する各フォームからサブフォームを削除できます。削除するサブフォームを使用している他のフォームには、影響を与えません。
1 フォーム上のサブフォームの領域をクリックします。

2 [編集] - [削除] を選択します。

3 必要に応じて、配置を調整します。

データベースからサブフォームを削除するデータベースからサブフォームのすべてを削除できます。データベースからサブフォームを削除すると、このサブフォームを参照するフォームではエラーが発生しますので、注意してください。
1 データベースの設計リストから [サブフォーム] をクリックします。

2 [編集] - [削除] を選択します。