Dynamics CRM Online 2015 Update 1 SDK 新機能: フォームスクリプトのサブグリッドの制御 その 3

みなさん、こんにちは。

前回に引き続き Dynamics CRM Online 2015 Update 1 で提供される
フォームスクリプトのサブグリッド制御を紹介します。

前回記事からの続きとなりますので、まだご覧になっていない場合
以下のリンクよりご確認ください。

フォームスクリプトのサブグリッドの制御 その 1
フォームスクリプトのサブグリッドの制御 その 2

今回は ViewSelector オブジェクトを紹介します。

ViewSelector オブジェクト

ViewSelector オブジェクトは Grid オブジェクトより getViewSelector
関数で取得します。ViewSelector オブジェクトは以下の関数を持ちます。

- getCurrentVIew: 現在のビューを取得します。
- setCurrentView: ビューを設定します。
- isVisible: ビューセレクターが表示されているか確認できます。

早速試してみましょう。

isVisible と getCurrentView の利用

1. 以前の記事で作成した Web リソースを開きます。

image

2. 新しく以下の関数を追加します。

function viewSelectorSample()
{
  // viewSelector の取得
  var selector = Xrm.Page.getControl("Contacts").getViewSelector();
  // ビューの表示状況を確認
  if(selector.isVisible())
  {
    alert("ビューは選択可能です。");
  }
  else
  {
    alert("ビューは選択不可能です。");
  }

  // 現在のビューを確認
  var current = selector.getCurrentView();
  alert("エンティティタイプ: " + current.entityType + "\nビューの id: " + current.id + "\nビューの名前: " + current.name);
}

3. 保存して、Web リソースを公開します。

4. 取引先企業のフォームの OnLoad に設定します。尚、以前設定した
ものは削除してください。

image

5. 保存してカスタマイズを公開します。

動作確認

1. 任意の取引先企業レコードを開きます。以下のメッセージが
表示されます。

image

image

2. ビューの選択ができない状態になっているので、フォームの
カスタマイズより、取引先担当者サブグリッドのビュー選択を
可能に変更します。

image

3. カスタマイズを公開後、再度取引先企業レコードを開くと以下の
メッセージが出ます。

image

setCurrentView の利用

最後に異なるビューをサブグリッドに設定してみます。

1. 設定 | カスタマイズ | システムのカスタマイズより、エンティティ |
取引先担当者 | ビューを選択します。

image

2. サブグリッドに設定したい任意のビューを開きます。この記事では
「あなたがフォローする」を利用してみます。アドレスバーの
URL より id を抜き出します。

image

3. 先ほどの Web リソースに新しい関数を追加します。

function changeViewSample()
{
  // 新しいビューの作成
  var ContactsIFollow = {
    entityType: 1039, // SavedQuery
    id:"{3A282DA1-5D90-E011-95AE-00155D9CFA02}",
    name: "あなたがフォローする 取引先担当者"
  };
  // ビューの設定
  Xrm.Page.getControl("Contacts").getViewSelector().setCurrentView(ContactsIFollow);
}

4. 保存して Web リソースを公開します。

5. 取引先企業フォームのカスタマイズより、任意のフィールドの
OnChange イベントに作成した関数を設定します。この記事では
説明フィールドを利用しました。

image

6. 変更を保存してカスタマイズを公開します。

動作確認

1. 任意の取引先企業レコードを開きます。取引先担当者のサブグリッド
のビューが既定であることを確認します。

image

2. 説明列を変更します。取引先担当者のサブグリッドビューが更新
されたことを確認します。

image

まとめ

今回のリリースではサブグリッドの操作が非常に柔軟になりました。
これによりあるサブグリッドビューの OnLoad イベントを利用して
他のサブグリッドのビューを変更するなど、今までできなかった
事が出来るようになっています。是非お試しください!

- 中村 憲一郎