public without sharing class searchContractController { public List at {get;set;} private String accountid = null; public String searchName {get;set;} // 検索文字列 private String ctype; Date todayDate = Date.today(); public searchContractController() { ctype = ApexPages.currentPage().getParameters().get('Ctype'); todayDate = Date.today(); } public void init(){ User useracc = [SELECT accountid FROM user WHERE id = :UserInfo.getUserId() ]; accountid = Useracc.accountid; at = [SELECT id,Name,State_Master__c,State_Master__r.Name,Sales_Section__c, Contract_Decide_Start_Date__c,Contract_Decide_End_Date__c FROM Account WHERE ParentId = :accountid AND Contact_Type__c like :ctype AND Contract_Decide_Start_Date__c <= :Date.Today() AND Contract_Decide_End_Date__c >= :Date.Today() AND Secondary_contract__c = false]; } public PageReference serContact(){ at = Database.query(this.makeSoql(searchName,todayDate)); return null; } private String makeSoql(String CateName,Date timetest){ String soql = 'SELECT id,Name,State_Master__c,State_Master__r.Name,Sales_Section__c,'; soql += ' Contract_Decide_Start_Date__c,Contract_Decide_End_Date__c FROM Account'; soql += ' where ParentId = \'' + this.accountid + '\'' ; soql += ' AND Secondary_contract__c = false' ; soql += ' AND Contact_Type__c like \'%' + String.escapeSingleQuotes(ctype.replaceAll('%', '\\%')) + '%\''; soql += ' AND Contract_Decide_Start_Date__c <=' + String.valueOf(timetest).substring(0, 10); soql += ' AND Contract_Decide_End_Date__c >= ' + String.valueOf(timetest).substring(0, 10); if(!String.isBlank(CateName)){ soql += ' AND Name like \'%' + String.escapeSingleQuotes(CateName.replaceAll('%', '\\%')) + '%\''; } return soql; } }