プログラミングの概要とユーザーインターフェース


イベントの説明
シンプルアクション、式、LotusScript、JavaScript、および Java コードは、次の各オブジェクトで発生したイベントへの応答として実行されます。アクション、アクションホットスポット、エージェント、ホットスポットボタン、データベース、フィールド、フォルダ、フォーム、式のポップアップ、アウトライン、ページ、スクリプトライブラリ、サブフォーム、およびビュー。

同じイベントを、1 回は Lotus Notes Client プラットフォームのため、もう 1 回は Web プラットフォームのために、2 回コーディングします。

メモ Lotus Notes Client と Web ブラウザのイベント処理の区別は、Release 6 で新しく追加されました。以下の「互換性の問題」を参照してください。ただし、アクションと共有アクションは「同じイベントを 2 回コーディングする」規則の例外です。Release 6 で設計して Release 5 で実行する場合、プラットフォームごとに 2 つの異なるアクションをコーディングしなければなりません。非表示切り替え式を使用して、アクションを Lotus Notes または Web プラットフォームで非表示にします。

Web イベントは JavaScript のみでコーディングできます。同じ JavaScript コードを、Web イベントとそれに対応する Lotus Notes Client イベントの両方に指定できます。

次の表に、式言語、LotusScript、JavaScript、および Java コードを使って Lotus Notes Client および Web ブラウザ環境で処理できるイベントを示します。シンプルアクションなど、プログラミングしないハンドラも示します。イベントの順序については、「イベント順序一覧表」を参照してください。ユーザーインターフェースについては、「プログラムペインの活用」と「[オブジェクト] タブの使用」を参照してください。
イベントRunLanguageオブジェクトトリガー
アクションクライアント
Java
LotusScript
Java のインポート
シンプルアクション
エージェントオブジェクトがロードされたとき
Clickクライアント
LotusScript
シンプルアクション
アクション
アクションホットスポット
ボタン
ナビゲータオブジェクト
ピクチャホットスポット
オブジェクトが選択されたとき
Clickクライアント式ポップアップオブジェクトが選択されたとき
Column Valueクライアント Webフィールド

シンプルファンクション
フォルダ列
ビュー列
オブジェクトがロードされたとき
DeclarationsクライアントLotusScriptアクション
アクションホットスポット
エージェント
ボタン
データベーススクリプト
フォーム
Globals
ナビゲータオブジェクト
ページ

Picture Hotspot
LotusScript Script Library
Subform
View

オブジェクトがロードされたとき
Default Valueクライアント Webフィールド文書が作成されたとき
Document Selectionクライアント簡易検索エージェントオブジェクトがロードされたとき
Entering

メモ onFocus のほうがよい

クライアントLotusScriptフィールドオブジェクトが選択されたとき
Exiting

メモ onBlur のほうがよい

クライアントLotusScriptフィールドオブジェクトの選択が解除されたとき
Form Formulaクライアント Webフォルダ
ビュー
オブジェクトがロードされたとき
Frame - Clientクライアント Webアウトラインエントリオブジェクトがロードされたとき
HelpRequestクライアントフォルダ
ビュー
ヘルプが選択されたとき
Hide Whenクライアント Webアウトラインエントリオブジェクトがロードされたとき
HTML 属性Webフィールドフォームがロードされたとき
HTML Body AttributesWebフォーム
ページ
フォームがロードされたとき
HTML Head ContentWebフォーム
ページ
フォームがロードされたとき
Imageクライアントアウトラインエントリオブジェクトがロードされたとき
InitializeクライアントLotusScriptアクション
アクションホットスポット
エージェント
ボタン
データベーススクリプト
フィールド
フォルダ
フォーム
Globals
ナビゲータオブジェクト
ページ
ピクチャホットスポット LotusScript スクリプトライブラリ
サブフォーム
ビュー
オブジェクトがロードされたとき
入力有効化クライアントフィールドフォームがロードされたとき
Input Translationクライアント Webフィールド文書が保存されたとき
Input Validationクライアント WebフィールドInput Translation の後
InViewEdit

メモ Release 6 で新しく追加

クライアントLotusScriptフォルダ
ビュー
ビューエントリが編集されたとき(検索、検証、保存)
JavaAgentクライアントJavaエージェントオブジェクトがロードされたとき
JavaScript ライブラリクライアント
Web
JavaScriptスクリプトライブラリオブジェクトがロードされたとき
Java class nameクライアントJavaスクリプトライブラリオブジェクトがロードされたとき
JS Headerクライアント WebJavaScriptフォーム
ページ
サブフォーム
オブジェクトがロードされたとき
Labelクライアントアウトラインエントリオブジェクトがロードされたとき
ObjectExecuteクライアントLotusScriptアクション
アクションホットスポット
ボタン
FX/Lotus NotesFlow(TM) 対応の OLE2 サーバーによってオブジェクトがアクティブにされたとき
onBlur

メモ Release 6 で LotusScript に新しく追加

クライアントJavaScript
LotusScript
フィールドオブジェクトの選択が解除されたとき
onBlur - WebWebJavaScriptアクション
アクションホットスポット
ボタン
フィールド
オブジェクトの選択が解除されたとき
onChange

メモ Release 6 で新しく追加

クライアントJavaScript
LotusScript
フィールドオブジェクトの内容が変更されたとき
onChangeWebJavaScriptフィールドオブジェクトの内容が変更されたとき
onClickWebJavaScriptアクション
アクションホットスポット
ボタン
フィールド
フォーム
ページ
ピクチャ
オブジェクトが選択されたとき
onDblClickWebJavaScriptアクション
アクションホットスポット
ボタン
フィールド
フォーム
ページ
ピクチャ
オブジェクトがダブルクリックされたとき
onFocus

メモ Release 6 で LotusScript に新しく追加

クライアントLotusScript
JavaScript
フィールドオブジェクトが選択されたとき
onFocusWebJavaScriptアクション
アクションホットスポット
ボタン
フィールド
オブジェクトが選択されたとき
onHelpクライアント
LotusScript
JavaScript
フォーム
ページ
ヘルプが選択されたとき
onHelpWebJavaScriptアクション
アクションホットスポット
ボタン
フォーム
ページ
ピクチャ
ヘルプが選択されたとき
onKeyDownWebJavaScriptアクション
アクションホットスポット
ボタン
フィールド
フォーム
ページ
ピクチャ
キーが押されたとき
onKeyPressWebJavaScriptアクション
アクションホットスポット
ボタン
フィールド
フォーム
ページ
ピクチャ
英数字キーが押されたとき
onKeyUpWebJavaScriptアクション
アクションホットスポット
ボタン
フィールド
フォーム
ページ
ピクチャ
キーが離されたとき
onLoad

メモ Release 6 で式と LotusScript に新しく追加

クライアントJavaScript

LotusScript
フォーム
ページ
オブジェクトがロードされたとき
onLoadWebJavaScriptフォーム
ページ
オブジェクトがロードされたとき
onMouseDownWebJavaScriptアクション
アクションホットスポット
ボタン
フィールド
フォーム
ページ
ピクチャ
右または左クリックでオブジェクトが選択されたとき
onMouseMoveWebJavaScriptアクション
アクションホットスポット
ボタン
フィールド
フォーム
ページ
ピクチャ
マウスがオブジェクト上を移動したとき
onMouseOutWebJavaScriptアクション
アクションホットスポット
ボタン
フィールド
フォーム
ページ
ピクチャ
マウスがオブジェクトから移動されたとき
onMouseOverWebJavaScriptアクション
アクションホットスポット
ボタン
フィールド
フォーム
ページ
ピクチャ
マウスがオブジェクト上に移動されたとき
onMouseUpWebJavaScriptアクション
アクションホットスポット
ボタン
フィールド
フォーム
ページ
ピクチャ
マウスボタンがオブジェクト上で離されたとき
onResetWebJavaScriptフォームオブジェクトがリセットされたとき
onSelectWebJavaScriptフィールドオブジェクトの内容が選択されたとき
OnSubmit

メモ Release 6 で式と LotusScript に新しく追加

クライアント
JavaScript
LotusScript
フォーム
ページ
オブジェクトが保存される前
onSubmitWebJavaScriptフォームオブジェクトが保存される前
OnUnload

メモ Release 6 で式と LotusScript に新しく追加

クライアント
LotusScript
JavaScript
フォーム
ページ
オブジェクトがアンロードされる前
onUnloadWebJavaScriptフォーム
ページ
オブジェクトがアンロードされる前
オプションクライアントLotusScriptアクション
アクションホットスポット
エージェント
ボタン
データベーススクリプト
フィールド
フォルダ
フォーム
グローバル
ナビゲータオブジェクト
ページ
ピクチャホットスポット LotusScript スクリプトライブラリ
サブフォーム
ビュー
オブジェクトがロードされたとき
PostDocumentDeleteクライアント
LotusScript
データベーススクリプト文書が削除された後 (文書はまだ使用できます)
PostDragDropクライアント
LotusScript
データベーススクリプト
フォルダ
ビュー
オブジェクト内でドラッグアンドドロップ操作をした後
PostEntryResize

メモ Release 6 で新しく追加

クライアント
LotusScript
フォルダ
ビュー
カレンダーフォルダやビューでサイズ変更操作をした後
PostModeChangeクライアント
LotusScript
JavaScript
フォーム
サブフォーム
オブジェクトが読み込みモードまたは編集モードに変更された後
PostOpen

メモ フォームとページの場合は onLoad のほうがよい

クライアント
LotusScript
データベーススクリプト
フォルダ
フォーム
ページ
サブフォーム
ビュー
オブジェクトが開かれた後
PostPasteクライアント
LotusScript
フォルダ
ビュー
貼り付け操作の後
PostRecalcクライアント
JavaScript
LotusScript
フォーム
ページ
サブフォーム
オブジェクトが更新された (および値が再計算された) 後
PostSaveクライアント
JavaScript
LotusScript
フォーム
サブフォーム
オブジェクトが保存された後
PostSend

メモ Release 6 で新しく追加

クライアント
JavaScript
LotusScript
フォーム
サブフォーム
オブジェクトが送信された後
QueryAddToFolderクライアント
LotusScript
フォルダ
ビュー
文書がフォルダに追加される前
QueryClose

メモ フォームとページの場合は onUnload のほうがよい

クライアント
LotusScript
データベーススクリプト
フォルダ
フォーム
ページ
サブフォーム
ビュー
オブジェクトが閉じられるとき
QueryDocumentDeleteクライアント
LotusScript
データベーススクリプト文書が削除用にマークされる前
QueryDocumentUndeleteクライアント
LotusScript
データベーススクリプト文書に付けられた削除用マークが解除される前
QueryDragDropクライアント
LotusScript
データベーススクリプト
フォルダ
ビュー
ドラッグアンドドロップ操作をする前
QueryEntryResize

メモ Release 6 で新しく追加

クライアント
LotusScript
フォルダ
ビュー
カレンダーフォルダやビューでサイズ変更操作をする前
QueryModeChangeクライアント
JavaScript
LotusScript
フォーム
サブフォーム
文書が読み込みモードまたは編集モードに変更される前
QueryOpenクライアント
JavaScript
LotusScript
フォーム
ページ
サブフォーム
オブジェクトが開かれる前
QueryOpenクライアント
LotusScript
フォルダ
ビュー
オブジェクトが開かれる前
QueryOpenDocumentクライアント
LotusScript
フォルダ
ビュー
文書がロードされる前
QueryPasteクライアント
LotusScript
フォルダ
ビュー
貼り付け操作の前
Queryrecalc

メモ Release 6 で新しく追加

クライアント
JavaScript
LotusScript
フォーム
ページ
サブフォーム
オブジェクトが更新される (および値が再計算される) 前
QueryRecalcクライアント
LotusScript
フォルダ
ビュー
オブジェクトが更新される (および値が再計算される) 前
QuerySave

メモ フォームの場合は onSubmit のほうがよい

クライアント
LotusScript
フォーム
サブフォーム
オブジェクトが保存される前
QuerySend

メモ Release 6 で新しく追加

クライアント
JavaScript
LotusScript
フォーム
サブフォーム
オブジェクトが送信される前
RegionDoubleClickクライアント
LotusScript
フォルダ
ビュー
カレンダービューまたはフォルダ内のエリアがダブルクリックされたとき
Sourceクライアントアウトラインエントリオブジェクトがロードされたとき
Target Frameクライアント Webフォーム
ページ
オブジェクトがロードされたとき
Target Frame (シングルクリック)クライアント Webフォルダ
ビュー
オブジェクトがロードされたとき
Target Frame (ダブルクリック)クライアント Webフォルダ
ビュー
オブジェクトがロードされたとき
TerminateクライアントLotusScriptアクション
アクションホットスポット
エージェント
ボタン
データベーススクリプト
フィールド
フォルダ
フォーム
グローバル
ナビゲータオブジェクト
ページ
ピクチャホットスポット LotusScript スクリプトライブラリ
サブフォーム
ビュー
オブジェクトがアンロードされたとき
クライアント Webフィールド計算結果フィールドが計算されたとき
View Selectionクライアント
単純検索
フォルダ
ビュー
オブジェクトがロードされたとき
WebQueryOpenWebフォームオブジェクトが表示される前**
WebQuerySaveWebフォームオブジェクトが保存される前**
Window Titleクライアント Webフォーム
ページ
オブジェクトがロードされたとき
** WebQueryOpen と WebQuerySave は、次の @コマンドのいずれかを使った式でなければなりません。

@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 メソッドなどを使って明示的に変更内容を保存しなければなりません。
互換性に関する問題Lotus Notes R5 では、特定の JavaScript イベントは Web ブラウザだけでなく Lotus Notes Client でも発生します。また、同じユーザーアクションに対する式/ LotusScript イベントも Lotus Notes Client で発生します。たとえば、onBlur および Exiting イベントは、Lotus Notes Client ユーザーがフィールドを終了すると発生します。
Release 6 では、Lotus Notes Client と Web ブラウザへのイベントの適用が区別されます。Lotus Notes Client 用に 1 つの JavaScript または LotusScript イベントをコーディングし、Web ブラウザ用に別の JavaScript イベントをコーディングします。Release 5 の Lotus Notes Client で発生する JavaScript イベントでは、Release 6 の LotusScript、および場合によっては式を許可します。対応する LotusScript のみのイベントも発生しますが、これらを Release 6 のアプリケーションで使用することはお奨めしません。

次の表に影響を受けるイベントのリストを示します。
ユーザーアクションイベントリリース発生対象Language
アクション、アクションホットスポット、ボタン
オブジェクトの選択onClickR5 と Release 6 Web のみJavaScript
ClickR5 と Release 6 クライアントのみLotusScript
フィールド
オブジェクトの入力EnteringR5 と Release 6 クライアントのみLotusScript
onFocusR5 と Release 6 クライアント WebJavaScript
Release 6クライアントのみLotusScript
オブジェクトの終了ExitingR5 と Release 6 クライアントのみLotusScript
onBlurR5 と Release 6 クライアント WebJavaScript
Release 6クライアントのみLotusScript
フォーム、ページ
オブジェクトを開くonLoadR5 と Release 6 クライアント WebJavaScript
Release 6クライアントのみFormula
LotusScript
PostOpenR5 と Release 6 クライアントのみFormula
LotusScript
オブジェクトを閉じるonUnloadR5 と Release 6 クライアント WebJavaScript
Release 6クライアントのみFormula
LotusScript
QueryCloseR5 と Release 6 クライアントのみFormula
LotusScript
オブジェクトの保存onSubmitR5 と Release 6 クライアント WebJavaScript
Release 6クライアントのみFormula
LotusScript
QuerySaveR5 と Release 6 クライアントのみFormula
LotusScript

たとえば、Lotus Notes R5 で FieldOne に対する onBlur イベントを次のようにコーディングしたとします。


この場合、Web ブラウザまたは Lotus Notes Client のどちらかでユーザーがフィールドから離れるとき、FieldOne が「foo」の場合は FieldTwo は「bar」に設定されます。

この機能を Release 6 に複製するには、コードを 2 回 (onBlur - Web イベント用に 1 回と onBlur - Client イベント用に 1 回) 指定するか、コードを「共通の JavaScript」の下に指定します。

onBlur イベントの他に、FieldOne に対して Exiting イベントを次のようにコーディングしたとします。


この場合、Web ブラウザではなく Lotus Notes Client でユーザーがフィールドから離れるとき、FieldOne が「foo」の場合は FieldThree も「bar」に設定されます。

Release 6 では、下位互換性が問題でない場合には、onFocus - Client イベントのコードを結合し、Exiting イベントを削除する必要があります。次のコードは、JavaScript でのコーディング例です。


LotusScript での例
上位互換性Lotus Notes R5 アプリケーションは、Lotus Notes Client Release 6 でも同様に動作します。Lotus Notes Client で動作する JavaScript イベントは、引き続き Web とクライアントの両方で動作します。LotusScript の PostOpen、QueryClose、QuerySave、Entering、Exiting、および Click イベントは、引き続き動作します。
R5 のアプリケーションが Lotus Domino Designer Release 6 で保存されると、JavaScript イベントは対応する Web および場合によってはクライアントイベントに移されます。LotusScript イベントはそのまま残ります。たとえば、onBlur イベントは、onBlur - Web および onBlur - Client イベントに移され、Exiting イベントはそのまま残ります。

しかし、下位互換性が問題でない場合、以下の場合にはコーディングし直すことをお奨めします。


下位互換性Lotus Notes Client R5 で動作する Release 6 のアプリケーションは、Release 6 のクライアントで同様に動作します。ただし、Release 6 で新たに追加されたイベントは R5 では動作しません。たとえば、LotusScript の onLoad - Client は、R5 では動作しません。
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 と HelpRequestR5 の HelpRequest イベント (式) は、ユーザーが Lotus Notes Client で [F1] キーを押したときにユーザーのアクションを実行し、標準ヘルプを非表示にします。onHelp イベント (JavaScript) は、ユーザーが Web ブラウザで [F1] キーを押したときにユーザーのアクションを実行し、標準ヘルプを呼び出します。
Release 6 の onHelp - Web イベントは、R5 の onHelp イベントと同じです。式、LotusScript、および JavaScript をサポートする onHelp - Client イベントは、R5 の HelpRequest と同様に動作します。HelpRequest はフォーム設計からはなくなりました。

関連項目