Microsoft Dynamics 365 新機能: 編集可能なグリッド: その 3

みなさん、こんにちは。

前回に続き、Microsoft Dynamics 365 新機能から編集可能なグリッドについて紹介します。
本機能は、オンライン、および設置型ともに提供されています。

前回は本機能の概要を紹介しました。ご覧になっていない方は一読ください。

Microsoft Dynamics 365 新機能: 編集可能なグリッド: その 1 Microsoft Dynamics 365 新機能: 編集可能なグリッド: その 2

今回は、編集可能なグリッドのイベントにスクリプトを追加してどのような制御ができるか紹介します。

追加できるイベント

- OnRecordSelect イベント
- OnChange イベント
- OnSave イベント

OnRecordSelect イベント

単一の行 (レコード) が編集可能なグリッドで選択されている場合に発生します。
ユーザーが同じ行で異なるセルを選択している、または複数の行を選択している場合、このイベントは発生しません。

OnChange イベント

編集可能なグリッドのセルの値が変更されているとき、またはセルがフォーカスを失ったときに発生します。

OnSave イベント

更新された情報がサーバーにを送信される前、および次のいずれかが起こると発生します。

- 選択しているレコードが変更されているとき
- 編集可能なグリッドの保存ボタンをクリックしたとき
- 保留中の変更がある間に編集可能なグリッドから、ユーザーが並べ替え、フィルター、グループ化、改ページ、ナビゲーション操作を実行したとき

事前準備

各イベントにサンプルスクリプトを実装します。今回は各イベントがどのように呼ばれるかわかるようスクリプトを挿入します。

1. Dynamics 365 にログインします

2. [設定] > [カスタマイズ] > [システムのカスタマイズ] をクリックします。

3. Web リソースにスクリプトを登録します。

function Do_OnRecordSelect()
{
var selectedRows = Xrm.Page.getControl("crmGrid").getGrid().getSelectedRows();
var massage = "";
selectedRows.forEach(function (selectedRow, i) {
var entityname = selectedRow.getData().getEntity().getEntityName();
var name = selectedRow.getData().getEntity().getAttributes().getByName("name").getValue();
massage = massage + entityname + "、" + name + "\n";
});
Xrm.Utility.alertDialog(massage + "を選択しました",null);
return;
}

function Do_OnChange()
{
var selectedRows = Xrm.Page.getControl("crmGrid").getGrid().getSelectedRows();
var massage = "";
selectedRows.forEach(function (selectedRow, i) {
var entityname = selectedRow.getData().getEntity().getEntityName();
var name = selectedRow.getData().getEntity().getAttributes().getByName("name").getValue();
massage = massage + entityname + "、" + name + "\n";
});
Xrm.Utility.alertDialog(massage + "を変更しました",null);
return;
}

function Do_OnSave()
{
var selectedRows = Xrm.Page.getControl("crmGrid").getGrid().getSelectedRows();
var massage = "";
selectedRows.forEach(function (selectedRow, i) {
var entityname = selectedRow.getData().getEntity().getEntityName();
var name = selectedRow.getData().getEntity().getAttributes().getByName("name").getValue();
massage = massage + entityname + "、" + name + "\n";
});
Xrm.Utility.alertDialog(massage + "を保存しました",null);
return;
}

4. [取引先企業] > [イベント] をクリックします。

image

5. OnChange イベントにメソッドを登録します。今回は、取引先企業名に登録します。

image

6. OnRecordSelect イベントを登録します。

image

7. OnSave イベントを登録します。

image

動作確認

1. Dynamics 365 にログインします。

2. [営業] > [取引先企業] を選択します。

3. リボンにある表示形式から [編集可能グリッド] を選択します。

4. レコードを選択します。

image

5. 選択したレコードの情報が表示されます。

image

6. 名前を変更します。

image

7. カーソルを移動します。

image

7. 別レコードをクリックします。

image

8. 保存が実行されます。

image

明示的に保存ボタンをクリックしても同じ動作となります。

まとめ

いかがだったでしょうか。編集可能なグリッドはこれまで期待されていた機能です。
グリッド自体にスクリプトを実装できるため、必要以上の実装は避け、
パフォーマンスを十分に考慮したうえで実装ください。

– プレミアフィールドエンジニアリング 河野 高也

※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります