function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Iqra TechIqra Tech 

i need if some Selected fields was not selected then do not through any error

User-added image

above scrren shot shows on left hand side portion i was selected some filds  then after right hand side i was not selected any selected filds on that time i run dynamic query using Query button so the thing is i need to if i was not selected any selected field on that time it will not thogh any error can it be possible ??
Best Answer chosen by Iqra Tech
Manvendra Chaturvedi 26Manvendra Chaturvedi 26
================================================
  public void btnPerformQuery(){
        results=new List<sObject>();
        string queryFields = '';
        if(!fldAPINameMap.get(selectedField).EqualsIgnoreCase('Id')){
            queryFields = ''+fldAPINameMap.get(selectedField);
        }
        if(!fldAPINameMap.get(selectedField1).EqualsIgnoreCase('Id')){
            if(queryFields!=''){
                queryFields = queryFields + ','+fldAPINameMap.get(selectedField1);
            }else{
                queryFields = ''+fldAPINameMap.get(selectedField1);
            }
        }
         if(!fldAPINameMap.get(selectedField2).EqualsIgnoreCase('Id')){
            if(queryFields!=''){
                queryFields = queryFields + ','+fldAPINameMap.get(selectedField2);
            }else{
                queryFields = ''+fldAPINameMap.get(selectedField2);
            }
        }
         if(!fldAPINameMap.get(selectedField3).EqualsIgnoreCase('Id')){
            if(queryFields!=''){
                queryFields = queryFields + ','+fldAPINameMap.get(selectedField3);
            }else{
                queryFields = ''+fldAPINameMap.get(selectedField3);
            }
        }
        if(!fldAPINameMap.get(selectedField4).EqualsIgnoreCase('Id')){
            if(queryFields!=''){
                queryFields = queryFields + ','+fldAPINameMap.get(selectedField4);
            }else{
                queryFields = ''+fldAPINameMap.get(selectedField4);
            }
        }
        if(!fldAPINameMap.get(selectedField5).EqualsIgnoreCase('Id')){
            if(queryFields!=''){
                queryFields = queryFields + ','+fldAPINameMap.get(selectedField5);
            }else{
                queryFields = ''+fldAPINameMap.get(selectedField5);
            }
        }
        
       // string queryFields = ''+fldAPINameMap.get(selectedField)+','+fldAPINameMap.get(selectedField1)+','+fldAPINameMap.get(selectedField2)+','+fldAPINameMap.get(selectedField3)+','+fldAPINameMap.get(selectedField4)+','+fldAPINameMap.get(selectedField5)+'';
        system.debug('queryFields-='+queryFields);
        string queryStr1 = 'SELECT ID, NAME, createdBy.Name, createdDate, lastModifiedBy.Name, lastModifiedDate,'+queryFields+'  FROM '+selectedObject+' WHERE '+fldAPINameMap.get(selectedField)+' IN (\'' + String.join( criteria.split( ',' ), '\',\'' ) +'\') limit 999 ';
        system.debug('queryStr1-='+queryStr1);
        selectedFieldAPI = fldAPINameMap.get(selectedField);
        selectedFieldAPI1 = fldAPINameMap.get(selectedField1);
        selectedFieldAPI2 = fldAPINameMap.get(selectedField2);
        selectedFieldAPI3 = fldAPINameMap.get(selectedField3);
        selectedFieldAPI4 = fldAPINameMap.get(selectedField4);
        selectedFieldAPI5 = fldAPINameMap.get(selectedField5);
        results = database.query(queryStr1);
        result1s = results;
        System.Debug('results-='+results);
        queried = true;
        system.debug('Query performed, Queried is: '+queried);
        
    }================================================

   <apex:pageBlockSection title="Results" id="results" rendered="{!queried}">                
                    <apex:pageBlockTable value="{!results}" var="r" id="Opp">                                    
                        
                        <apex:column rendered="{!IF(selectedField != 'Id',true,false)}"  value="{!r[selectedFieldAPI]}"/>
                        <apex:column rendered="{!IF(selectedField1 != 'Id',true,false)}"  value="{!r[selectedFieldAPI1]}"/> 
                        <apex:column rendered="{!IF(selectedField2 != 'Id',true,false)}"  value="{!r[selectedFieldAPI2]}"/> 
                        <apex:column rendered="{!IF(selectedField3 != 'Id',true,false)}"  value="{!r[selectedFieldAPI3]}"/> 
                        <apex:column rendered="{!IF(selectedField4 != 'Id',true,false)}"  value="{!r[selectedFieldAPI4]}"/> 
                        <apex:column rendered="{!IF(selectedField5 != 'Id',true,false)}"  value="{!r[selectedFieldAPI5]}"/>  
                         <apex:column value="{!r.id}"/>                        
                        <apex:column value="{!r['createdDate']}"/>                       
                        <apex:column value="{!r['lastModifiedDate']}"/>                                                           
                    </apex:pageBlockTable>                
                    
                </apex:pageBlockSection>

All Answers

Khan AnasKhan Anas (Salesforce Developers) 
Hi Iqra,

Greetings to you!

You can use apex:actionRegion tag. ActionRegion tag defines which components of visualforce page should be processed by the server.
By Components mean, all the visualforce tags like inputField, inputText, outputPanel, etc. actionRegion provides an area of a Visualforce page that decides and separates which components should be processed by the force.com server when an AJAX request is generated. Only the components which are inside actionRegion component are processed by he server, so it increases visualforce page performance.

Please refer to the below links which might help you further.

https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_actionRegion.htm

http://www.sfdcpoint.com/salesforce/actionregion-visualforce-salesforce/

http://sfdcsrini.blogspot.com/2014/06/how-to-use-apexactionregion-in.html

http://sfdcsrini.blogspot.com/2014/07/visualforce-action-region-example.html

https://salesforce.stackexchange.com/questions/71898/how-to-use-apexactionregion-with-required-fields-and-apexpageblocksection

I hope it helps you.

Kindly let me know if it helps you and close your query by marking it as solved so that it can help others in the future. It will help to keep this community clean.

Thanks and Regards,
Khan Anas
Manvendra Chaturvedi 26Manvendra Chaturvedi 26
================================================
  public void btnPerformQuery(){
        results=new List<sObject>();
        string queryFields = '';
        if(!fldAPINameMap.get(selectedField).EqualsIgnoreCase('Id')){
            queryFields = ''+fldAPINameMap.get(selectedField);
        }
        if(!fldAPINameMap.get(selectedField1).EqualsIgnoreCase('Id')){
            if(queryFields!=''){
                queryFields = queryFields + ','+fldAPINameMap.get(selectedField1);
            }else{
                queryFields = ''+fldAPINameMap.get(selectedField1);
            }
        }
         if(!fldAPINameMap.get(selectedField2).EqualsIgnoreCase('Id')){
            if(queryFields!=''){
                queryFields = queryFields + ','+fldAPINameMap.get(selectedField2);
            }else{
                queryFields = ''+fldAPINameMap.get(selectedField2);
            }
        }
         if(!fldAPINameMap.get(selectedField3).EqualsIgnoreCase('Id')){
            if(queryFields!=''){
                queryFields = queryFields + ','+fldAPINameMap.get(selectedField3);
            }else{
                queryFields = ''+fldAPINameMap.get(selectedField3);
            }
        }
        if(!fldAPINameMap.get(selectedField4).EqualsIgnoreCase('Id')){
            if(queryFields!=''){
                queryFields = queryFields + ','+fldAPINameMap.get(selectedField4);
            }else{
                queryFields = ''+fldAPINameMap.get(selectedField4);
            }
        }
        if(!fldAPINameMap.get(selectedField5).EqualsIgnoreCase('Id')){
            if(queryFields!=''){
                queryFields = queryFields + ','+fldAPINameMap.get(selectedField5);
            }else{
                queryFields = ''+fldAPINameMap.get(selectedField5);
            }
        }
        
       // string queryFields = ''+fldAPINameMap.get(selectedField)+','+fldAPINameMap.get(selectedField1)+','+fldAPINameMap.get(selectedField2)+','+fldAPINameMap.get(selectedField3)+','+fldAPINameMap.get(selectedField4)+','+fldAPINameMap.get(selectedField5)+'';
        system.debug('queryFields-='+queryFields);
        string queryStr1 = 'SELECT ID, NAME, createdBy.Name, createdDate, lastModifiedBy.Name, lastModifiedDate,'+queryFields+'  FROM '+selectedObject+' WHERE '+fldAPINameMap.get(selectedField)+' IN (\'' + String.join( criteria.split( ',' ), '\',\'' ) +'\') limit 999 ';
        system.debug('queryStr1-='+queryStr1);
        selectedFieldAPI = fldAPINameMap.get(selectedField);
        selectedFieldAPI1 = fldAPINameMap.get(selectedField1);
        selectedFieldAPI2 = fldAPINameMap.get(selectedField2);
        selectedFieldAPI3 = fldAPINameMap.get(selectedField3);
        selectedFieldAPI4 = fldAPINameMap.get(selectedField4);
        selectedFieldAPI5 = fldAPINameMap.get(selectedField5);
        results = database.query(queryStr1);
        result1s = results;
        System.Debug('results-='+results);
        queried = true;
        system.debug('Query performed, Queried is: '+queried);
        
    }================================================

   <apex:pageBlockSection title="Results" id="results" rendered="{!queried}">                
                    <apex:pageBlockTable value="{!results}" var="r" id="Opp">                                    
                        
                        <apex:column rendered="{!IF(selectedField != 'Id',true,false)}"  value="{!r[selectedFieldAPI]}"/>
                        <apex:column rendered="{!IF(selectedField1 != 'Id',true,false)}"  value="{!r[selectedFieldAPI1]}"/> 
                        <apex:column rendered="{!IF(selectedField2 != 'Id',true,false)}"  value="{!r[selectedFieldAPI2]}"/> 
                        <apex:column rendered="{!IF(selectedField3 != 'Id',true,false)}"  value="{!r[selectedFieldAPI3]}"/> 
                        <apex:column rendered="{!IF(selectedField4 != 'Id',true,false)}"  value="{!r[selectedFieldAPI4]}"/> 
                        <apex:column rendered="{!IF(selectedField5 != 'Id',true,false)}"  value="{!r[selectedFieldAPI5]}"/>  
                         <apex:column value="{!r.id}"/>                        
                        <apex:column value="{!r['createdDate']}"/>                       
                        <apex:column value="{!r['lastModifiedDate']}"/>                                                           
                    </apex:pageBlockTable>                
                    
                </apex:pageBlockSection>
This was selected as the best answer
Iqra TechIqra Tech
@Manvendra Chaturvedi 26 thanks a lot sir
Manvendra Chaturvedi 26Manvendra Chaturvedi 26
You can mark this as best answer if it resolve your issue 
Iqra TechIqra Tech
@Manvendra Chaturvedi 

Sir i need to add error messgae instade of when we get error then we need to refresh the page i dont want to this error occurs


Visualforce Error
Help for this Page
System.QueryException: unexpected token: 'null'
Error is in expression '{!btnPerformQuery}' in component <apex:commandButton> in page newfloorplanvf7: Class.ObjectQueryController7.btnPerformQuery: line 118, column 1
Class.ObjectQueryController7.btnPerformQuery: line 118, column 1


above error  i dont want we want to provide the our custom error on alert message or via system error messgae




 
Manvendra Chaturvedi 26Manvendra Chaturvedi 26
<apex:page controller="ObjectQueryController2" showHeader="true" > 
    
    <apex:form >   
        <apex:pageBlock title="Query Objects">
            <apex:pageMessages id="errorMsg" ></apex:pageMessages>
            <apex:pageBlockSection columns="1" title="Object Selection">
                <apex:selectList title="" size="1" value="{!selectedObject}" >
                    <apex:selectOptions value="{!objectNames}"/>
                    <apex:actionSupport event="onchange" reRender="fieldSelection"/>
                    <apex:outputLabel >Select the object you would like to query</apex:outputLabel>
                </apex:selectList>
            </apex:pageBlockSection>
            <apex:pageBlockSection title="Select fields to query" id="fieldSelection">
                <apex:outputPanel >
                    <table>
                        <thead></thead>
                        <tbody>
                            <tr> 
                                <td>
                                    <b>   {!objFieldLabelName}: </b>
                                </td>
                                <td>
                                    <apex:selectList size="1" value="{!selectedField}">
                                        <apex:actionSupport event="onchange" action="{!setFieldLabel}" reRender="fieldSelection"/>                                        
                                        <apex:selectOptions value="{!objFields}" />
                                    </apex:selectList>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <b> {!objFieldLabelName1}: </b>
                                </td>
                                <td>
                                    <apex:selectList size="1" value="{!selectedField1}">
                                        <apex:actionSupport event="onchange" action="{!setFieldLabel}" reRender="fieldSelection"/>  
                                        <apex:selectOptions value="{!objFields}"/>
                                    </apex:selectList>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <b> {!objFieldLabelName2}: </b>
                                </td>
                                <td>
                                    <apex:selectList size="1" value="{!selectedField2}">
                                        <apex:actionSupport event="onchange" action="{!setFieldLabel}" reRender="fieldSelection"/>  
                                        <apex:selectOptions value="{!objFields}"/>
                                    </apex:selectList>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <b> {!objFieldLabelName3}: </b>
                                </td>
                                <td>
                                    <apex:selectList size="1" value="{!selectedField3}">
                                        <apex:actionSupport event="onchange" action="{!setFieldLabel}" reRender="fieldSelection"/>  
                                        <apex:selectOptions value="{!objFields}"/>
                                    </apex:selectList>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <b> {!objFieldLabelName4}: </b>
                                </td>
                                <td>
                                    <apex:selectList size="1" value="{!selectedField4}">
                                        <apex:actionSupport event="onchange" action="{!setFieldLabel}" reRender="fieldSelection"/>  
                                        <apex:selectOptions value="{!objFields}"/>
                                    </apex:selectList>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <b> {!objFieldLabelName5}: </b>
                                </td>
                                <td>
                                    <apex:selectList size="1" value="{!selectedField5}">
                                        <apex:actionSupport event="onchange" action="{!setFieldLabel}" reRender="fieldSelection"/>  
                                        <apex:selectOptions value="{!objFields}"/>
                                    </apex:selectList>
                                </td>
                            </tr>
                            
                        </tbody>
                    </table>
                </apex:outputpanel>
            </apex:pageBlockSection>
            
            <!-- Button performs a query we have the results and we have results Id. --> 
            <apex:pageBlockSection title="Search Field to Query">              
                
                <apex:inputText value="{!criteria}">
                    <apex:outputLabel value="Search Edition Name"/>
                </apex:inputText>
                <apex:commandButton action="{!btnPerformQuery}" reRender="rPanel,errorMsg" value="Query!"/>
            </apex:pageBlockSection>
            <apex:outputPanel id="rPanel">
                <apex:pageBlockSection title="Results" id="results" rendered="{!queried}">                
                    <apex:pageBlockTable value="{!results}" var="r" id="Opp">                                    
                        
                        <apex:column rendered="{!IF(selectedField != 'Id',true,false)}"  value="{!r[selectedFieldAPI]}"/>
                        <apex:column rendered="{!IF(selectedField1 != 'Id',true,false)}"  value="{!r[selectedFieldAPI1]}"/> 
                        <apex:column rendered="{!IF(selectedField2 != 'Id',true,false)}"  value="{!r[selectedFieldAPI2]}"/> 
                        <apex:column rendered="{!IF(selectedField3 != 'Id',true,false)}"  value="{!r[selectedFieldAPI3]}"/> 
                        <apex:column rendered="{!IF(selectedField4 != 'Id',true,false)}"  value="{!r[selectedFieldAPI4]}"/> 
                        <apex:column rendered="{!IF(selectedField5 != 'Id',true,false)}"  value="{!r[selectedFieldAPI5]}"/>  
                        <apex:column value="{!r.id}"/>                        
                        <apex:column value="{!r['createdDate']}"/>                       
                        <apex:column value="{!r['lastModifiedDate']}"/>                                                           
                    </apex:pageBlockTable>                
                    
                </apex:pageBlockSection>
                <apex:commandButton id="bthSave" action="{!Save}" reRender="Opp,errorMsg" value="Save"/>
            </apex:outputPanel>
        </apex:pageBlock>
    </apex:form>
</apex:page>
===========================================
   public void btnPerformQuery(){
        try{
            
            results=new List<sObject>();
            string queryFields = '';
            if(!fldAPINameMap.get(selectedField).EqualsIgnoreCase('Id')){
                queryFields = ''+fldAPINameMap.get(selectedField);
            }
            if(!fldAPINameMap.get(selectedField1).EqualsIgnoreCase('Id')){
                if(queryFields!=''){
                    queryFields = queryFields + ','+fldAPINameMap.get(selectedField1);
                }else{
                    queryFields = ''+fldAPINameMap.get(selectedField1);
                }
            }
            if(!fldAPINameMap.get(selectedField2).EqualsIgnoreCase('Id')){
                if(queryFields!=''){
                    queryFields = queryFields + ','+fldAPINameMap.get(selectedField2);
                }else{
                    queryFields = ''+fldAPINameMap.get(selectedField2);
                }
            }
            if(!fldAPINameMap.get(selectedField3).EqualsIgnoreCase('Id')){
                if(queryFields!=''){
                    queryFields = queryFields + ','+fldAPINameMap.get(selectedField3);
                }else{
                    queryFields = ''+fldAPINameMap.get(selectedField3);
                }
            }
            if(!fldAPINameMap.get(selectedField4).EqualsIgnoreCase('Id')){
                if(queryFields!=''){
                    queryFields = queryFields + ','+fldAPINameMap.get(selectedField4);
                }else{
                    queryFields = ''+fldAPINameMap.get(selectedField4);
                }
            }
            if(!fldAPINameMap.get(selectedField5).EqualsIgnoreCase('Id')){
                if(queryFields!=''){
                    queryFields = queryFields + ','+fldAPINameMap.get(selectedField5);
                }else{
                    queryFields = ''+fldAPINameMap.get(selectedField5);
                }
            }
            
            // string queryFields = ''+fldAPINameMap.get(selectedField)+','+fldAPINameMap.get(selectedField1)+','+fldAPINameMap.get(selectedField2)+','+fldAPINameMap.get(selectedField3)+','+fldAPINameMap.get(selectedField4)+','+fldAPINameMap.get(selectedField5)+'';
            system.debug('queryFields-='+queryFields);
            string queryStr1 = 'SELECT ID, NAME, createdBy.Name, createdDate, lastModifiedBy.Name, lastModifiedDate,'+queryFields+'  FROM '+selectedObject+' WHERE '+fldAPINameMap.get(selectedField)+' IN (\'' + String.join( criteria.split( ',' ), '\',\'' ) +'\') limit 999 ';
            system.debug('queryStr1-='+queryStr1);
            selectedFieldAPI = fldAPINameMap.get(selectedField);
            selectedFieldAPI1 = fldAPINameMap.get(selectedField1);
            selectedFieldAPI2 = fldAPINameMap.get(selectedField2);
            selectedFieldAPI3 = fldAPINameMap.get(selectedField3);
            selectedFieldAPI4 = fldAPINameMap.get(selectedField4);
            selectedFieldAPI5 = fldAPINameMap.get(selectedField5);
            results = database.query(queryStr1);
            result1s = results;
            System.Debug('results-='+results);
            queried = true;
            system.debug('Query performed, Queried is: '+queried);
            
        }catch(Exception ex){
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'Error Message added from apex'));

        }
    }