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 リソース
を選択して、新規ボタンをクリックします。
3. 名前と表示名に「formscriptsample.js」と入力し、「種類」より
「スクリプト (JScript)」 を選び、「テキストエディター」をクリック
します。
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. エンティティ | 取引先企業 | フォームを選択します。「取引先企業」
フォームを開きます。
7. 「フォームのプロパティ」ボタンをクリックします。
8. フォームの OnLoad イベントに開発した Web リソースと
関数を設定します。
9. フォームを一旦保存してから、カスタマイズを公開します。
動作確認
1. 任意の取引先企業レコードを開きます。
2. サブグリッドのエンティティ名が表示されます。
3. 続いて OnLoad イベントが発生してメッセージが表示されます。
まとめ
今回はまずフォームスクリプトの作成と GridControl の取得および
関数の実行を紹介しました。次回はいよいよサブグリッドの中身
についての操作を紹介します。お楽しみに!
- 中村 憲一郎