プログラミングの概要とユーザーインターフェース
同じイベントを、1 回は Notes Client プラットフォームのため、もう 1 回は Web プラットフォームのために、2 回コーディングします。
メモ Notes Client と Web ブラウザのイベント処理の区別は、Release 6 で新しく追加されました。以下の「互換性の問題」を参照してください。ただし、アクションと共有アクションは「同じイベントを 2 回コーディングする」規則の例外です。Release 6 で設計して Release 5 で実行する場合、プラットフォームごとに 2 つの異なるアクションをコーディングしなければなりません。非表示切り替え式を使用して、アクションを Notes または Web プラットフォームで非表示にします。
Web イベントは JavaScript のみでコーディングできます。同じ JavaScript コードを、Web イベントとそれに対応する Notes Client イベントの両方に指定できます。
次の表に、式言語、LotusScript、JavaScript、および Java コードを使って Notes Client および Web ブラウザ環境で処理できるイベントを示します。シンプルアクションなど、プログラミングしないハンドラも示します。イベントの順序については、「イベント順序一覧表」を参照してください。ユーザーインターフェースについては、「プログラムペインの活用」と「[オブジェクト] タブの使用」を参照してください。
画像のホットスポット LotusScript スクリプトライブラリ サブフォーム ビュー
メモ onFocus のほうがよい
メモ onBlur のほうがよい
メモ Release 6 で新しく追加
メモ Release 6 で LotusScript に新しく追加
メモ Release 6 で式と LotusScript に新しく追加
メモ フォームとページの場合は onLoad のほうがよい
メモ フォームとページの場合は onUnload のほうがよい
メモ フォームの場合は onSubmit のほうがよい
@Command([RunAgent];"agentname")
@Command([ToolsRunMacro];"agentname")
LotusScript のサブルーチンと関数 LotusScript のサブルーチンや関数をオブジェクトに追加できます。作成したスクリプトは、オブジェクトで実行できるイベントのリストに追加され、必要に応じてこのリストから選択して使います。
LotusScript の Declarations と Options 領域 各オブジェクトには Declarations 領域があり、オブジェクトのすべての LotusScript イベントに適用される実行型でない LotusScript ステートメントを記述できます。また、Option、Use、UseLSX、Const などのステートメントを記述するための Options 領域もあります。各フォーム、フォルダ、ページ、サブフォーム、およびビューには Globals 領域があり、その文書のすべての LotusScript イベントに適用される実行型でない LotusScript ステートメントを記述できます。
onLoad と PostOpen の現在の文書 onLoad や PostOpen イベントによって現在の文書に対して変更された内容は、デフォルト値として処理されます。文書には変更マークは付きません。ユーザーがこの時点で文書を閉じると、onLoad または PostOpen の変更内容は失われます。PostOpen での変更内容を確実に保存するには、NotesUIDocument の Save メソッドなどを使って明示的に変更内容を保存しなければなりません。
互換性に関する問題 Notes R5 では、特定の JavaScript イベントは Web ブラウザだけでなく Notes Client でも発生します。また、同じユーザーアクションに対する式/ LotusScript イベントも Notes Client で発生します。たとえば、onBlur および Exiting イベントは、Notes Client ユーザーがフィールドを終了すると発生します。
Release 6 では、Notes Client と Web ブラウザへのイベントの適用が区別されます。Notes Client 用に 1 つの JavaScript または LotusScript イベントをコーディングし、Web ブラウザ用に別の JavaScript イベントをコーディングします。Release 5 の Notes Client で発生する JavaScript イベントでは、Release 6 の LotusScript、および場合によっては式を許可します。対応する LotusScript のみのイベントも発生しますが、これらを Release 6 のアプリケーションで使用することはお奨めしません。
次の表に影響を受けるイベントのリストを示します。
たとえば、Notes R5 で FieldOne に対する onBlur イベントを次のようにコーディングしたとします。
この機能を Release 6 に複製するには、コードを 2 回 (onBlur - Web イベント用に 1 回と onBlur - Client イベント用に 1 回) 指定するか、コードを「共通の JavaScript」の下に指定します。
onBlur イベントの他に、FieldOne に対して Exiting イベントを次のようにコーディングしたとします。
Release 6 では、下位互換性が問題でない場合には、onFocus - Client イベントのコードを結合し、Exiting イベントを削除する必要があります。次のコードは、JavaScript でのコーディング例です。
R5 のアプリケーションが Domino Designer Release 6 で保存されると、JavaScript イベントは対応する Web および場合によってはクライアントイベントに移されます。LotusScript イベントはそのまま残ります。たとえば、onBlur イベントは、onBlur - Web および onBlur - Client イベントに移され、Exiting イベントはそのまま残ります。
しかし、下位互換性が問題でない場合、以下の場合にはコーディングし直すことをお奨めします。
Release 6 のアプリケーションを R5 で再コンパイルする場合、JavaScript のクライアントイベントは失われ、JavaScript の Web イベントはクライアントと Web の両方で回復します。たとえば、JavaScript の OnLoad - Client は、Release 5 でコンパイルされた場合は失われます。JavaScript - Web は、R5 でコンパイルされても失われず、クライアントと Web の両方で動作します。
このため、上位互換性のガイドラインについて次の点に注意してください。R5 と Release 6 の両方を引き続き設計する場合には、LotusScript の「on」イベントを使わずに、LotusScript の PostOpen、QueryClose、QuerySave、Entering、および Exiting の各イベントを残し、クライアントと Web の両方について JavaScript のイベントをコーディングする必要があります (「共通 JavaScript」を使用)。
onHelp と HelpRequest R5 の HelpRequest イベント (式) は、ユーザーが Notes Client で [F1] キーを押したときにユーザーのアクションを実行し、標準ヘルプを非表示にします。onHelp イベント (JavaScript) は、ユーザーが Web ブラウザで [F1] キーを押したときにユーザーのアクションを実行し、標準ヘルプを呼び出します。
Release 6 の onHelp - Web イベントは、R5 の onHelp イベントと同じです。式、LotusScript、および JavaScript をサポートする onHelp - Client イベントは、R5 の HelpRequest と同様に動作します。HelpRequest はフォーム設計からはなくなりました。
関連項目