public with sharing class PersonalEvaluationCommentListController { public String userId { get; private set; } public String province { get; private set; } // 省(複数) public String tabName { get; private set; } public String rptName { get; private set; } public PersonalEvaluationCommentListController() { userId = System.currentPageReference().getParameters().get('user'); province = System.currentPageReference().getParameters().get('province'); // tab String tabParam = System.currentPageReference().getParameters().get('tab'); if (String.isBlank(tabParam)) { // Controllerの値をそのままつかう } else { tabName = tabParam; } // report String rptParam = System.currentPageReference().getParameters().get('rpt'); if (String.isBlank(rptParam)) { // Controllerの値をそのままつかう } else { rptName = rptParam; } // INCLUDESを使うため、provinceは必ず 'xxx','yyy' の形式です if (String.isBlank(province) == false) { String tmpP1 = province.replace('\'', ''); tmpP1 = tmpP1.replace(';', ','); String tmpP2 = ''; for (String str : tmpP1.split(',')) { tmpP2 += '\'' + str + '\','; } province = tmpP2.substring(0, tmpP2.length() - 1); } } public List getCommentList() { List rtn = new List(); if (String.isBlank(tabName)) { System.debug('rptName=' + rptName); if (String.isBlank(province)) { rtn = [Select CreatedById, CreatedDate, Comment__c, province__c from PersonalEvaluation__c where OwnerId = :userId and ReportName__c <> null and ReportName__c = :rptName order by CreatedDate desc limit 5]; } else { // INCLUDESのBINDができません、必ずこう使う String soql = 'Select CreatedById, CreatedDate, Comment__c, province__c from PersonalEvaluation__c' + ' where province__c INCLUDES (' + province + ')' + ' and ReportName__c <> null and ReportName__c = :rptName order by CreatedDate desc limit 5'; rtn = Database.query(soql); //rtn = [Select CreatedById, CreatedDate, Comment__c, province__c from PersonalEvaluation__c where province__c INCLUDES (:province) and ReportName__c <> null and ReportName__c = :rptName order by CreatedDate desc limit 5]; } } else { System.debug('tabName=' + tabName); if (String.isBlank(province)) { rtn = [Select CreatedById, CreatedDate, Comment__c, province__c from PersonalEvaluation__c where OwnerId = :userId and TabName__c <> null and TabName__c = :tabName order by CreatedDate desc limit 5]; } else { // INCLUDESのBINDができません、必ずこう使う String soql = 'Select CreatedById, CreatedDate, Comment__c, province__c from PersonalEvaluation__c' + ' where province__c INCLUDES (' + province + ')' + ' and TabName__c <> null and TabName__c = :tabName order by CreatedDate desc limit 5'; rtn = Database.query(soql); //rtn = [Select CreatedById, CreatedDate, Comment__c, province__c from PersonalEvaluation__c where province__c INCLUDES pstr and TabName__c <> null and TabName__c = :tabName order by CreatedDate desc limit 5]; } } return rtn; } }