フォームを使用して情報を入力し保存すると、その情報は文書として保存されます。ユーザーが文書を開くと、フォームはテンプレートとして使用され、データを表示する構造が決定されます。そのためフォームを設計するときは、それを使用する文書がどこでどのように表示されるかを考慮する必要があります。
フォームは作成元のデータベースに格納され、関連するすべての文書を表示する際に使用されます。ただし、文書をデータベースにメールで送信する際に、この文書の作成に使用されたフォームが送信先のデータベースに定義されていない場合があります。この場合、文書の作成に使用されたフォームを各文書に保存するように指定することができます。各文書にフォームを保存すると、メモリの消費量が増えます。
ユーザーが文書を開くときには、Domino® では次のルールを使用して、文書の表示に使用するフォームを判別します。
条件 |
文書の表示に使用されるフォーム |
---|---|
文書の作成に使用されたフォームが利用でき、文書にはフォームも、フォーム式も保存されていない場合 |
文書の作成に使用されたフォームです。オリジナルのフォーム名は文書の [Form] という非表示フィールドに保存されます。[文書のプロパティ] インフォボックスの [フィールド] タブで、このフィールドの値が確認できます。 |
文書にフォームが保存されている場合 |
文書に保存されているフォームです。フォームが文書に保存されている場合、フォーム名は [$Title] という内部フィールドに保存されます。 |
ビューにフォーム式がある場合 |
ビューのフォーム式でフォームが決定されます。 |
文書の作成に使用したフォームがデータベースで利用できない場合 |
データベースのデフォルトのフォームです。各データベースにはデフォルトのフォームが 1 つだけあります。[フォーム] リストではこれに矢印を付けて表示します。 |
各文書にフォームを保存すると、フォームがデータベースにない、名前が変更されている、または削除されているなどの場合でも、文書を正しく表示できます。ただし、この機能はシステムのメモリの使用量を増加させ、通常の約 20 倍のディスクスペースを必要とすることもあります。また、フォームの設計を変更すると、文書に保存したフォームのコピーすべてを更新するには簡単な方法はありません。通常は、以下の条件に該当する場合のみ、フォームを文書に保存します。
文書にフォームを保存するときに、フォーム名を [$Title] という非表示フィールドに保存します。詳細情報は [$Info]、[$WindowTitle]、[$Body] というフィールドに保存されます。異なるフォームを使用して文書を表示するには、この格納されたフォーム情報を削除し、文書を表示するための別のフォームを指定するエージェントを作成します。
フォームに共有フィールドがある場合、このフィールドは、文書に保存されるフォームのコピー内の単独使用フィールドに変換されます。これで共有フィールド定義がないデータベースに文書のコピーを保存した場合でも、確実にこのフィールドを使用できます。オリジナルのフォームでは、このフィールドの共有という定義は変わりません。
デフォルトのフォーム選択を上書きするには、特定のビューに対するフォーム式を作成します。例えば、ユーザーが文書を編集するときにすべてのフィールドを表示するフォーム式や、ユーザーが文書を読み込むときにフィールド順序の変更やフィールドの省略を行うフォーム式を記述することができます。フォーム式は指定のビューだけに適用されるため、別のビューで作成された文書にはフォーム式を使用しません。
文書にフォームを保存する代わりに、LotusScript® の Send メソッドを使用して、文書とともにメール送信できるフォームを設計できます。これにより、データベースで確実に正しいフォームの文書が表示できますが、各文書にフォームを格納する必要はありません。