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


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

同じイベントを、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 ブラウザ環境で処理できるイベントを示します。シンプルアクションなど、プログラミングしないハンドラも示します。イベントの順序については、「イベント順序一覧表」を参照してください。ユーザーインターフェースについては、「プログラムペインの活用」と「[オブジェクト] タブの使用」を参照してください。
イベント実行言語オブジェクトトリガ
Actionクライアント
Java
LotusScript
呼び出された Java
シンプルアクション
エージェントオブジェクトがロードされたとき
Clickクライアント
LotusScript
シンプルアクション
アクション
アクションホットスポット
ボタン
ナビゲータオブジェクト
画像のホットスポット
オブジェクトが選択されたとき
Clickクライアント式ポップアップオブジェクトが選択されたとき
Column Valueクライアント Webフィールド

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

画像のホットスポット
LotusScript
スクリプトライブラリ
サブフォーム
ビュー

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

メモ onFocus のほうがよい

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

メモ onBlur のほうがよい

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

メモ Release 6 で新しく追加

クライアントLotusScriptフォルダ
ビュー
ビューエントリが編集されたとき(検索、検証、保存)
JavaAgentクライアントJavaエージェントオブジェクトがロードされたとき
Javascript Libraryクライアント
Web
JavaScriptスクリプトライブラリオブジェクトがロードされたとき
Java class nameクライアントJavaスクリプトライブラリオブジェクトがロードされたとき
JS Headerクライアント WebJavaScriptフォーム
ページ
サブフォーム
オブジェクトがロードされたとき
Labelクライアントアウトラインエントリオブジェクトがロードされたとき
ObjectExecuteクライアントLotusScriptアクション
アクションホットスポット
ボタン
FX/NotesFlow■対応の 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フォーム
ページ
オブジェクトがアンロードされる前
Optionsクライアント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 スクリプトライブラリ サブフォーム
ビュー
オブジェクトがアンロードされたとき
Valueクライアント 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 メソッドなどを使って明示的に変更内容を保存しなければなりません。

互換性に関する問題
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 のアプリケーションで使用することはお奨めしません。

次の表に影響を受けるイベントのリストを示します。
ユーザーアクションイベントリリース発生対象言語
アクション、アクションホットスポット、ボタン
オブジェクトの選択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クライアントのみ
LotusScript
PostOpenR5 と Release 6 クライアントのみ
LotusScript
オブジェクトを閉じるonUnloadR5 と Release 6 クライアント WebJavaScript
Release 6クライアントのみ
LotusScript
QueryCloseR5 と Release 6 クライアントのみ
LotusScript
オブジェクトの保存onSubmitR5 と Release 6 クライアント WebJavaScript
Release 6クライアントのみ
LotusScript
QuerySaveR5 と Release 6 クライアントのみ
LotusScript

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


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

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

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


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

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


LotusScript での例
上位互換性
Notes R5 アプリケーションは、Notes Client Release 6 でも同様に動作します。Notes Client で動作する JavaScript イベントは、引き続き Web とクライアントの両方で動作します。LotusScript の PostOpen、QueryClose、QuerySave、Entering、Exiting、および Click イベントは、引き続き動作します。

R5 のアプリケーションが Domino Designer Release 6 で保存されると、JavaScript イベントは対応する Web および場合によってはクライアントイベントに移されます。LotusScript イベントはそのまま残ります。たとえば、onBlur イベントは、onBlur - Web および onBlur - Client イベントに移され、Exiting イベントはそのまま残ります。

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


下位互換性
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 と HelpRequest
R5 の HelpRequest イベント (式) は、ユーザーが Notes Client で [F1] キーを押したときにユーザーのアクションを実行し、標準ヘルプを非表示にします。onHelp イベント (JavaScript) は、ユーザーが Web ブラウザで [F1] キーを押したときにユーザーのアクションを実行し、標準ヘルプを呼び出します。

Release 6 の onHelp - Web イベントは、R5 の onHelp イベントと同じです。式、LotusScript、および JavaScript をサポートする onHelp - Client イベントは、R5 の HelpRequest と同様に動作します。HelpRequest はフォーム設計からはなくなりました。

関連項目