(2) 画面表示時にテーブル表示データに条件を付ける (標準機能で対応しています)
参照関係、又は主従関係オブジェクトデータを表示する画面にて、
画面表示時にテーブルに条件(Where句、Order By句)を付けた状態でデータを表示する。
拡張対象ページのApexクラス : SkyEditorClass
対象データテーブルの「ID」 : dataTableSet1
global with sharing class MyExtender extends SkyEditor2.Extender { SkyEditorClass extension; SkyEditorClass.dataTableSet1 contacts; public MyExtender(SkyEditorClass extension) { this.extension = extension; this.contacts = extension.dataTableSet1; // 対象オブジェクト:取引先責任者 // 親オブジェクトのデータが存在する場合のみ子オブジェクト取得Query 生成 if (extension.record != null && extension.record.Id != null) { // SkyEditor 作成したクラスのコンストラクタで生成したQuery を取得 SkyEditor2.Query tableQuery1 = extension.queryMap.get('dataTableSet1'); // 条件を追加 // 追加内容: 「AND Name like '田中'」 tableQuery1.addWhere('AND'); tableQuery1.addWhere('Name', '田中', SkyEditor2.WhereOperator.Co); // 作成日を昇順で並び替え。且つNull の場合はNull を先頭表示設定追加 tableQuery1.addSort('CreatedDate', true, true); extension.queryMap.put('dataTableSet1', tableQuery1); } } }
// TestClass @isTest private class testMyExtender{ private static testMethod void testMyExtender() { Account acc = new Account(Name='Test'); insert acc; Contact cont = new Contact(Account = acc, LastName= 'TestUser'); insert cont; SkyEditorClass ext = new SkyEditorClass(new ApexPages.StandardController(acc)); MyExtender extender = new MyExtender(ext); } }