フォーム イベント(クライアント側の参照)

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

すべてのクライアント側のコードは、イベントによって開始されます。Microsoft Dynamics 365 では、特定の関数を、特定のイベントの発生時に実行される JavaScript ライブラリに関連付けます。

すべてのフォーム イベントには、1 つ以上のイベント ハンドラを指定するときに使用するユーザー インターフェイスがあります。 各イベント ハンドラーは、単一の関数を JavaScript ライブラリおよび関数が渡されるパラメータに指定します。

イベント

OnLoad イベント

OnSave イベント

フィールド OnChange イベント

タブ TabStateChange イベント

IFRAME OnReadyStateComplete イベント

検索コントロール PreSearch イベント

OnProcessStatusChange イベント

OnStageChange イベント

OnStageSelected イベント

サポート情報検索コントロールのイベント

読み取り専用サブグリッド OnLoad イベント

編集可能グリッドイベント

OnLoad イベント

OnLoad イベントは、フォームが読み込まれた後に発生します。 このイベントを使用して、フォームの読み込みを禁止することはできません。OnLoad イベントを使用して、フォームが表示され、フィールドにプロパティを設定し、他のページ要素と対話する方法に関するロジックを適用します。

タブレット PC 用 Microsoft Dynamics 365 クライアントが切断されている場合、OnLoad イベントだけが発生します。

注意

更新されたエンティティ のフォームは、レコードを作成する最初の保存の後に、またはそれ以降のどの保存の後にも、ページを再度読み込みません。 したがって、OnLoad イベントは、フォームの最初の読み込み時にのみ発生します。

OnSave イベント

OnSave イベントは、次のタイミングで発生します。

  • 保存する変更済みデータがない時でも、ユーザーがフォームの右下隅の 自動保存ボタン ボタンをクリックする。

  • 保存する変更済みデータがない場合でも、コードが Xrm.Page.data.entity.上書き保存​​ メソッドを実行する。

  • ユーザーがフォームから移動し、フォームに保存されていないデータがある。

  • オートセーブが有効で、データ変更の 30 秒後にフォームに保存されていないデータがある。

  • コードが Xrm.Page.data.上書き保存​​ メソッドを実行し、フォームに保存されていないデータがある。

  • コードが Xrm.Page.data.refresh メソッドを実行して true 値を最初のパラメーターとして渡し、フォームに保存されていないデータがある。

保存を実行するのにクリックされるボタンを確認するには、getSaveMode メソッドを使用します。

イベント引数オブジェクトのpreventDefault メソッドを使用して、保存操作をキャンセルできます。 実行コンテキストの一部であるgetEventArgsメソッドを使用してアクセスできるpreventDefaultメソッド。 フォーム イベント ハンドラーを構成して、実行コンテキストに渡すようにする必要があります。 詳細については、「実行コンテキストとフォーム イベント パイプラインの使用」を参照してください。

フィールド OnChange イベント

OnChange イベントは、通常、フォーム フィールドのデータが変更されフォーカスが失われるとすると発生します。

注意

ラジオ ボタンまたはチェック ボックスを使用するように設定される、2 つのオプション (ブール値) に適用される、この動作の例外があります。 これらの場合、イベントは、ただちに実行されます。

また、このイベントは、レコードの保存後などの、サーバー上のデータ変更が取得されて、フォームのリフレッシュ時にフィールドが更新されるときにも発生します。

Xrm.Page.data.entity属性を使用します。fireOnChange メソッドでもこのイベントが発生します。

OnChange イベントは、setValue メソッドを使用してプログラム的にフィールドが変更される場合も発生しません。 値を設定したあとに OnChange イベントのイベント ハンドラーを実行したい場合、コードで Xrm.Page.data.entityattribute.fireOnChange メソッドを使用する必要があります。

すべてのフィールドは、OnChangeイベントはをサポートしています。 フィールドのデータは、OnChange イベントの前後に検証されます。

注意

Status フィールドは OnChange イベントをサポートしますが、フィールドはフォームでは読み取り専用で、イベントはユーザーとの対話では発生しません。 別のスクリプトは、フィールドでfireOnChangeメソッドを使用してこのイベントを発生させる場合があります。

タブ TabStateChange イベント

TabStateChange イベントは、ユーザーの操作によってタブの DisplayState が変更されたか、setDisplayState メソッドがコードに適用されたときに発生します。 タブの IFRAME の src プロパティを変更する場合は、このイベントを使用します。

注意

タブは展開されたりたたまれたりしないので、このイベントは Dynamics 365 モバイル クライアント (電話やタブレット) でサポートされていません。

Dynamics 365 モバイル クライアントで、対話型サービス ハブでタブは展開または閉じられませんが、TabStateChange イベントは、ユーザーが対話型サービス ハブで、あるタブから別のタブに移動したときに発生します。

IFrame を設定する場合。src プロパティを折りたたまれたタブの IFRAME の OnLoad イベントに設定する場合、タブが展開されたときに値が上書きされます。

IFRAME OnReadyStateComplete イベント

OnReadyStateComplete イベントは、IFRAME のコンテンツが読み込まれ、コードにアクセスできることを示します。 スクリプト内の IFRAME コントロールを参照する場合は、このイベントを使用します。

注意

このイベントは、電話用 Dynamics 365、および対話型サービス ハブでサポートされていません。

検索コントロール PreSearch イベント

検索コントロールには、レコードを検索するのにコントロールがダイアログを起動する直前に発生する PreSearch イベントがあります。 このイベントに対するイベント ハンドラーに設定する UI はありません。 検索コントロールでaddPreSearchremovePreSearch メソッドを使用して、このイベントのイベント ハンドラーの追加と削除をする必要があります。

このイベントを他の検索コントロールのメソッドおよびイベント と共に使用して、ユーザーが選択する検索結果を検索コントロールが表示する直前に、フォーム データに基づく検索に表示される結果を最新のものに変更します。

OnProcessStatusChange イベント

このイベントはプロセスのインスタンスの状態が変化した場合に発生します。Xrm.Page.data.process.addOnProcessStatusChange メソッドを使用して、このイベントのイベント ハンドラを追加し、Xrm.Page.data.process.removeOnProcessStatusChange メソッドを使用してイベント ハンドラを削除します。詳細:業務プロセス フローのスクリプトを作成する.

注意

このイベントは、Dynamics 365 用 2016 年 12 月の更新プログラム (オンラインおよび設置型) で導入されました。

OnStageChange イベント

このイベントは、業務プロセス フロー コントロールのステージが変更されると発生します。 このイベントは、ユーザーがユーザー インターフェイスで次のステージまたは前のステージに移動ボタンをクリックするか、開発者がXrm.Page.data.process.moveNext またはXrm.Page.data.process.movePrevious メソッドを使用すと発生します。 このイベントのハンドラーでコードを使用してステージを変更すると、キャンセルできません。

実行コンテキスト オブジェクトは、このイベントのイベント ハンドラーに渡されます。getEventArgs 機能を使用して、次のメソッドを持つオブジェクトを取得できます。

  • getDirection
    ステージ変更の方向を示す"next" または "previous" のいずれかの文字列を返します。

  • getStage
    ステージ オブジェクトを返します。 ナビゲーションが新規エンティティに移動する場合を除き、戻されたステージは目的のステージ オブジェクトつまりアクティブ ステージを表します。 ナビゲーションが新規エンティティに移動する場合は、ステージは移動元のステージつまり以前のアクティブ ステージ オブジェクトを表します。詳細:ステージ メソッド.

Xrm.Page.data.process.addOnStageChange メソッドを使用して、このイベントのイベント ハンドラを追加し、Xrm.Page.data.process.removeOnStageChange メソッドを使用してイベント ハンドラを削除します。詳細:業務プロセス フローのスクリプトを作成する.

OnStageSelected イベント

このイベントは、業務プロセス フロー コントロールのステージが選択されると発生します。 このイベントのハンドラーでコードを使用してステージを選択すると、キャンセルできません。

実行コンテキスト オブジェクトは、このイベントのイベント ハンドラーに渡されます。getEventArgs 機能を使用して、次のメソッドを持つオブジェクトを取得できます。

  • getStage
    選択されたステージを表すステージ オブジェクトを返します。詳細:ステージ メソッド.

Xrm.Page.data.process.addOnStageSelected メソッドを使用して、このイベントのイベント ハンドラを追加し、Xrm.Page.data.process.removeOnStageSelected メソッドを使用してイベント ハンドラを削除します。詳細:業務プロセス フローのスクリプトを作成する.

サポート情報検索コントロールのイベント

サポート情報検索コントロールは、ナレッジ マネージメント機能が有効化されている組織のフォームにのみ追加できます。 このコントロールには、開発者がプログラムでイベント ハンドラーを割り当てることができる割当先の 2 つのイベント (OnResultOpened および OnSelection) が含まれています。詳細:サポート情報の検索コントロール (クライアント側の参照)

読み取り専用サブグリッド OnLoad イベント

サブグリッドの OnLoad イベントにイベント ハンドラーを接続します。詳細:サブグリッドに対するスクリプトの作成

編集可能グリッドイベント

編集可能グリッド イベントにイベント ハンドラーを接続します。詳細:編集可能なグリッドのオブジェクトとメソッド (クライアント側の参照)

関連項目

フォーム スクリプトの簡易参照
Microsoft Dynamics 365 フォームのコードを記述する
Xrm.Page オブジェクト モデルの使用
クライアント側のプログラミング リファレンス
業務プロセス フローのスクリプトを作成する

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権