(4) 検索テンプレートの検索条件に値設定
検索テンプレート画面で検索条件に"月"項目(1~12の選択リスト)が存在し、
検索ボタン押下時に"月"に値が未設定の時は当月を設定する。
また、指定月のデータが1件も存在しなかった場合、空レコード31行を追加する。
拡張対象ページのApexクラス : SkyEditorClass
対象データテーブルの「ID」 : dataTableSet1
global class MyExtender extends SkyEditor2.Extender { SkyEditorClass extension; SkyEditorClass.dataTableSet1 monthlyReports; public MyExtender(SkyEditorClass extension) { this.extension = extension; this.monthlyReports = extension.dataTableSet1; } // 画面初期表示時の処理 global override void init(){ // 取引先のIDを取得 String accountId = ApexPages.currentPage().getParameters().get('accid'); // reference項目にデフォルト検索条件値を設定 extension.Component1_val.accountLink__c = accountId; // // 「権限緩和」プロパティチェック有りの場合 // extension.Component1_val.SkyEditor2__Text__c = accountId; // extension.Component1_val.SkyEditor2__Textarea__c // = [SELECT Name FROM Account Where id = :accountId].Name; extension.Component1_op.value = 'eq'; //初期画面表示時に検索処理を実行 extension.doSearch(); } //検索前の処理 global override void preSearch(){ //検索条件を見て、空白なら条件を追加 if (extension.Component2_val.month__c == '') { extension.Component2_val.month__c = String.valueOf(Date.today().month()); extension.Component2_op.value = ‘eq’; } } //検索終了後、ゼロ件だった31日分のレコードを作成 global override void afterSearch() { if (monthlyReports.items.size() <= 0) { for (Integer i = 0; i < 31 ; i++) { this.monthlyReports.add(); } } } // TestMethod private static testMethod void testMyExtender() { Account acc = new Account(Name='Test'); insert acc; // 検索対象オブジェクトが取引先の場合 SkyEditorClass ext = new SkyEditorClass (new ApexPages.StandardController(acc)); MyExtender extender = new MyExtender(ext); ext.doSearch(); } }