Freigeben über


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

みなさん、こんにちは。

今回から Dynamics CRM Online 2015 Update 1 で提供される SDK の
新機能よりフォームスクリプトのサブグリッド制御を紹介します。

概要

Dynamics CRM Online 2015 Update 1 まで、フォームスクリプトを
利用したサブグリッドの操作は Refresh のみサポートしていました。
今回のリリースでは以下が追加されました。

追加されたオブジェクト
- GridControl : サブグリッド自体の操作用
- Grid : グリッドに含まれる行 (レコード) の操作用
- GridRow : 特定の行 (レコード) の操作用
- GridRowData : レコードの特定列の操作用
- GridEntity : グリッドのエンティティ情報の操作用
- ViewSelector : グリッドのビューの操作用

サポートされる操作
- サブグリッドの OnLoad イベントの管理、エンティティ名取得
- サブグリッド内の行の取得
- 選択されている行の取得
- サブグリッド内の行数
- サブグリッドのエンティティ情報の取得
- サブグリッドのビューの取得と操作

今回は検証用のフォームスクリプトの作成と GridControl の機能
について紹介します。

GridControl オブジェクト

フォームスクリプトより GridControl オブジェクトを取得するには
Xrm.Page.getControl(“<サブグリッド名”>) 関数を利用します。この
コントロールは通常のコントロールが持つ setFocus や Notificaiton
関数の他に、以下の関数を持ちます。

- addOnLoad/removeOnLoad : OnLoad イベントの管理
- getEntityName : エンティティ名の取得
- getGrid : Grid オブジェクトの取得
- getViewSelector : サブグリッドビューの取得

早速試してみましょう。

フォームスクリプトの開発と設定

1. ブラウザで Dynamics CRM Online に接続します。

2. 設定 | カスタマイズ | システムのカスタマイズより Web リソース
を選択して、新規ボタンをクリックします。

image

3. 名前と表示名に「formscriptsample.js」と入力し、「種類」より
「スクリプト (JScript)」 を選び、「テキストエディター」をクリック
します。

image

4. 以下のスクリプトを貼り付けて、OK をクリックします。

function subGridSample()
{
  // サブグリッドの取得
  var contactGridControl = Xrm.Page.getControl("Contacts");
  // OnLoad 用の関数を作成
  var myContactsGridOnloadFunction = function () { alert("サブグリッドの OnLoad イベント") };
  // OnLoad イベントの設定
  contactGridControl.addOnLoad(myContactsGridOnloadFunction);

  // サブグリッドのエンティティ名を表示
  alert("サブグリッドのエンティティ名: " + contactGridControl.getEntityName());

  // サブグリッドの更新
  contactGridControl.refresh();
}

5. 公開ボタンをクリックしてから、画面を閉じます。

6. エンティティ | 取引先企業 | フォームを選択します。「取引先企業」
フォームを開きます。

image

7. 「フォームのプロパティ」ボタンをクリックします。

8. フォームの OnLoad イベントに開発した Web リソースと
関数を設定します。

image

9. フォームを一旦保存してから、カスタマイズを公開します。

動作確認

1. 任意の取引先企業レコードを開きます。

2. サブグリッドのエンティティ名が表示されます。

image

3. 続いて OnLoad イベントが発生してメッセージが表示されます。

image

まとめ

今回はまずフォームスクリプトの作成と GridControl の取得および
関数の実行を紹介しました。次回はいよいよサブグリッドの中身
についての操作を紹介します。お楽しみに!

- 中村 憲一郎

Comments

  • Anonymous
    March 02, 2016
    いつもお世話になっております。Dynamics CRM 2015ではなく、2013になってしまいますがサブグリッドについて質問させてください。サブグリッド表示した際に対象のサブグリッドの右上に「+」ボタンが表示されますがボタン押下時の動きがサブグリッドによって違います。虫眼鏡の入力エリアが表示され選択候補がでてくるパターンといきなり新規登録画面が表示されるパターンがありますがその違いは何になるのでしょうか?また、虫眼鏡の入力エリアが表示されるパターンを新規登録画面を表示されるパターンに変更したい場合はどうすればよいのでしょうか?大変お手数ではございますがご教示頂ければ幸いです。よろしくお願い致します。以上 takayuki
    • Anonymous
      March 06, 2016
      コメントありがとうございます。こちらは、該当する関連グリッドに表示されているコマンドバーと連動しております。関連グリッド側のコマンドーとして、新規追加が表示されている場合は新規レコードの作成が、既存レコードの追加が表示されている場合は検索となります。挙動の変更は関連グリッドに対してのコマンドバーのカスタマイズが必要となります。コマンドバーのカスタマイズはこちらのブログでもいくつか記事がございますので是非お試しください。まずはサブグリッドの挙動と関連グリッドのコマンドバーの関係をご確認ください。- 中村 憲一郎
      • Anonymous
        March 13, 2016
        ご回答ありがとうございます。返信が遅くなってしまい申し訳ございません。いろいろと試してみたいと思います。以上 takayuki