You need to sign in to do that
Don't have an account?
Andrew Perez
Dynamic Search Page Errors
I'm running into two problems on my search page. Nothing is happening when I click the 'Reset' button and I am getting this error when I search using a date field:
System.QueryException: expecting a colon, found '('
Error is in expression '{!searchEng}' in component <apex:commandButton> in page engagement_search: Class.Engagements_Search_Controller.searchEngagementss: line 94, column 1
Class.Engagements_Search_Controller.searchEng: line 26, column 1
Class.Engagements_Search_Controller.searchEngagementss: line 94, column 1
Class.Engagements_Search_Controller.searchEng: line 26, column 1
Here is my code:
System.QueryException: expecting a colon, found '('
Error is in expression '{!searchEng}' in component <apex:commandButton> in page engagement_search: Class.Engagements_Search_Controller.searchEngagementss: line 94, column 1
Class.Engagements_Search_Controller.searchEng: line 26, column 1
Class.Engagements_Search_Controller.searchEngagementss: line 94, column 1
Class.Engagements_Search_Controller.searchEng: line 26, column 1
Here is my code:
public with sharing class Engagements_Search_Controller { public Engagements__c eng{get;set;} public List<Engagements__c> engagementList {get;set;} // create a list of strings to hold the conditions List<string> conditions = new List<string>(); private integer totalRecs = 0; private integer OffsetSize = 0; private integer LimitSize= 25; public integer total_size; //used to show user the total size of the list public Integer totalPages{get;set;} public Engagements_Search_Controller(){ system.debug('==>Engagements_Search_Controller is calling==>'); eng = new Engagements__c(); //engagementList = new List<refount>(); } public void searchEng(){ totalRecs = 0; OffsetSize = 0; if(engagementList !=null && engagementList.size()>0){ engagementList=null; } searchEngagementss (); conditions.clear(); } public Void searchEngagementss(){ System.debug('Total Records is ==>'+totalRecs); System.debug('OffsetSize is ==>'+OffsetSize); if(engagementList != null && !engagementList.isEmpty()){ engagementList.clear(); } String strQuery ='SELECT Name,Pending_Go_No_Go_Canceled__c,Additional_SIC_Sector__c, Additional_SIC_Industry__c,What_We_Found__c,What_We_Did__c, SIC_Final__c, Unit_Name__c, Company_Name__c, Ultimate_Parent_Company__c, Country__c, BR_Start_Date__c, Project_Start_Date__c,Scope_of_BR_Area__c,Scope_of_BR_Theme__c From Engagements__c '; if(eng.Name !=null && eng.Name !=''){ conditions.add('Name Like \'%' +eng.Name +'%\' '); } if(eng.Additional_SIC_Sector__c !=null && eng.Additional_SIC_Sector__c !=''){ conditions.add('Additional_SIC_Sector__c Includes (\'' +eng.Additional_SIC_Sector__c +'\') '); } if(eng.Additional_SIC_Industry__c !=null && eng.Additional_SIC_Industry__c !=''){ conditions.add('Additional_SIC_Industry__c Includes (\'' +eng.Additional_SIC_Industry__c +'\') '); } if(eng.Scope_of_BR_Area__c !=null && eng.Scope_of_BR_Area__c !=''){ conditions.add('Scope_of_BR_Area__c Includes (\'' +eng.Scope_of_BR_Area__c +'\') '); } if(eng.Scope_of_BR_Theme__c !=null && eng.Scope_of_BR_Theme__c !=''){ conditions.add('Scope_of_BR_Theme__c Includes (\'' +eng.Scope_of_BR_Theme__c +'\') '); } if(eng.SIC_Final__c !=null && eng.SIC_Final__c !=''){ conditions.add('SIC_Final__c Like\'%' +eng.SIC_Final__c +'%\' '); } if(eng.Unit_Name__c !=null && eng.Unit_Name__c !=''){ conditions.add('Unit_Name__c Like\'%' +eng.Unit_Name__c +'%\' '); } if(eng.Company_Name__c !=null && eng.Company_Name__c !=''){ conditions.add('Company_Name__c Like\'%' +eng.Company_Name__c +'%\' '); } if(eng.Ultimate_Parent_Company__c !=null && eng.Ultimate_Parent_Company__c !=''){ conditions.add('Ultimate_Parent_Company__c Like\'%' +eng.Ultimate_Parent_Company__c +'%\' '); } if(eng.Country__c !=null && eng.Country__c !=''){ conditions.add('Country__c Like\'%' +eng.Country__c +'%\' '); } if(eng.BR_Start_Date__c !=null){ conditions.add('BR_Start_Date__c Like (\'' +eng.BR_Start_Date__c +'\') '); } if(eng.Project_Start_Date__c !=null){ conditions.add('Project_Start_Date__c Like (\'' +eng.Project_Start_Date__c +'\') '); } if(eng.What_We_Found__c !=null && eng.What_We_Found__c !=''){ conditions.add('What_We_Found__c Like\'%' +eng.What_We_Found__c +'%\' '); } if(eng.What_We_Did__c !=null && eng.What_We_Did__c !=''){ conditions.add('What_We_Did__c Like\'%' +eng.What_We_Did__c +'%\' '); } if (conditions.size() > 0) { strQuery += ' WHERE ' + conditions[0]; for (Integer i = 1; i < conditions.size(); i++) strQuery += ' AND ' + conditions[i]; } if(totalRecs !=null && totalRecs ==0){ List<Engagements__c> engTemp = Database.query(strQuery); totalRecs = (engTemp !=null &&engTemp.size()>0)?engTemp.size():0; } system.debug('strQuery ==>'+strQuery ); // add sort and limits at the end strQuery += ' ORDER BY Name ASC, Unit_Name__c DESC LIMIT :LimitSize OFFSET :OffsetSize'; engagementList =Database.query(strQuery); //conditions.clear(); //return engagementList.size(); } public void FirstPage() { OffsetSize = 0; searchEngagementss(); } public void previous() { OffsetSize = (OffsetSize-LimitSize); searchEngagementss(); } public void next() { OffsetSize = OffsetSize + LimitSize; searchEngagementss(); } public void LastPage() { OffsetSize = totalrecs - math.mod(totalRecs,LimitSize); searchEngagementss(); } public boolean getprev() { if(OffsetSize == 0){ return true; } else { return false; } } public boolean getnxt() { if((OffsetSize + LimitSize) > totalRecs){ return true; } else { return false; } } public Integer getTotal_size() { return totalRecs; } public Integer getPageNumber() { return OffsetSize/LimitSize + 1; } public Integer getTotalPages() { if (math.mod(totalRecs, LimitSize) > 0) { return totalRecs/LimitSize + 1; } else { return (totalRecs/LimitSize); } } }VF Page:
<apex:page controller="Engagements_Search_Controller" action="{!searchEng}" > <script type="text/javascript"> window.onload=function() { // document.getElementById("{!$Component.thePb.thepbs.engName}").focus(); } </script> <apex:form > <apex:pageBlock id="thePb" title="Engagements Details To Search"> <apex:pageblockSection id="thepbs" columns="3" collapsible="true"> <apex:inputField value="{!eng.Name}" required="false" id="engName"/> <apex:inputfield value="{!eng.Company_Name__c}"/> <apex:inputfield value="{!eng.Ultimate_Parent_Company__c}"/> <apex:inputfield value="{!eng.Unit_Name__c}"/> <apex:inputfield value="{!eng.Country__c}"/> <apex:inputfield value="{!eng.SIC_Final__c}"/> </apex:pageblockSection> <apex:pageblockSection > <apex:inputField value="{!eng.Scope_of_BR_Area__c}"/> <apex:inputfield value="{!eng.Scope_of_BR_Theme__c}"/> <apex:inputField value="{!eng.Additional_SIC_Sector__c}"/> <apex:inputfield value="{!eng.Additional_SIC_Industry__c}"/> <apex:inputfield value="{!eng.BR_Start_Date__c}"/> <apex:inputfield value="{!eng.Project_Start_Date__c}"/> <apex:inputfield value="{!eng.What_We_Found__c}" style="width:85%;"/> <apex:inputfield value="{!eng.What_We_Did__c}" style="width:85%;"/> </apex:pageblockSection> <apex:pageblockButtons location="bottom"> <apex:commandButton value="Search" action="{!searchEng}"/> <apex:commandButton value="Reset" status="idStatus" onclick="this.form.reset();return false;" /> </apex:pageblockButtons> </apex:pageBlock> <apex:pageBlock title="Engagements Details" id="noRec" rendered="{! IF( engagementList != null && engagementList.size ==0 , true, false)}" > <apex:outputPanel > <h1>No Records Found </h1> </apex:outputPanel> </apex:pageBlock> <apex:pageBlock title="Engagements Details (Total List Size: {!total_size})" id="details" rendered="{! IF( engagementList != null && engagementList.size >0, true, false)}" > <apex:pageBlockTable value="{!engagementList}" var="a"> <apex:column headerValue="Engagements Name"> <apex:outputLink target="_blank" value="/{!a.id}">{!a.Name}</apex:outputLink> </apex:column> <!-- If you want facet style you can add like this. <apex:column > <apex:facet name="header">Link Name</apex:facet> <apex:outputLink target="_blank" value="/{!a.id}">{!a.Name}</apex:outputLink> </apex:column> --> <apex:column value="{!a.Pending_Go_No_Go_Canceled__c}" headerValue="Pending/Go/No-Go/Canceled"/> <apex:column value="{!a.Additional_SIC_Sector__c}" headerValue="Additional SIC Sector"/> <apex:column value="{!a.Additional_SIC_Industry__c}" headerValue="Additional SIC Industry"/> <apex:column value="{!a.SIC_Final__c}" headerValue="SIC Final"/> <apex:column value="{!a.Unit_Name__c}" headerValue="Unit Name"/> <apex:column value="{!a.Company_Name__c}" headerValue="Company Name"/> <apex:column value="{!a.Ultimate_Parent_Company__c}" headerValue="Ultimate Parent Company"/> <apex:column value="{!a.Country__c}" headerValue="Country"/> <apex:column value="{!a.BR_Start_Date__c}" headerValue="BR Start Date"/> <apex:column value="{!a.Project_Start_Date__c}" headerValue="Project Start Date"/> </apex:pageBlockTable> <apex:pageblockButtons > <apex:commandButton value="First Page" rerender="details" action="{!FirstPage}" disabled="{!prev}"/> <apex:commandButton value="Previous" rerender="details" action="{!previous}" disabled="{!prev}"/> <apex:commandButton value="Next" rerender="details" action="{!next}" disabled="{!nxt}"/> <apex:commandButton value="Last Page" rerender="details" action="{!LastPage}" disabled="{!nxt}"/> <apex:facet name="footer">Showing Page # {!pageNumber} of {!totalPages}</apex:facet> </apex:pageblockButtons> </apex:pageBlock> </apex:form> </apex:page>
doravmon
must be missing something in your query, you can print out the complete query to see what you missed.