• sagar rathi
  • NEWBIE
  • 0 Points
  • Member since 2015

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 0
    Replies
<apex:page controller="mycontroller">  
<apex:pageBlock >  
    <apex:form >  
        <apex:actionFunction name="ObjectFileds" action="{!ObjectFields}"/>   
        <!--apex:commandButton value="Show Table" action="{!ShowTable}"/-->
          
        <apex:pageBlockSection >  
            <apex:pageBlockSectionItem >  
                <apex:outputLabel value="Select Object"/>  
                <apex:selectList size="1" value="{!SelectedObject}" onchange="ObjectFileds();">  
                    <apex:selectOption itemLabel="--None--" itemValue="--None--"/>  
                    <apex:selectoptions value="{!supportedObject}" />  
                </apex:selectlist>  
            </apex:pageBlockSectionItem>  
              
            <apex:pageBlockSectionItem id="thePage" > 
              
                  
                <apex:outputLabel value="Select Field" />  
               <apex:outputpanel id="out">  
                <apex:selectList multiselect="true" size="5" value="{!SelectedFields}">  
                    <apex:selectOption itemLabel="--None--" itemValue="--None--"/>  
                    <apex:selectoptions value="{!fieldLableAPI}" />  
                </apex:selectlist>
               </apex:outputpanel>   
              
               </apex:pageBlockSectionItem> 
             <apex:pageblockTable value="{!fieldInfo}" var="item" >
            <!--    <apex:column value="{!item.name}" headerValue="Name"/>
                <apex:column value="{!item.Label}" headerValue="Label"/>
                <apex:column value="{!item.Type}" headerValue="Type"/>   -->
              <apex:repeat value="{!displayProperties}" var="f">
                   <apex:column value="{!item[f]}"/>
            </apex:repeat>     -->
            </apex:pageblockTable>        
            
               
              
 </apex:pageBlockSection> 
 <br/>
 <apex:commandButton value="Customize" action="{!customize}"/>
          
    </apex:form>  
</apex:pageBlock>  
</apex:page>


----------------------------

public with Sharing class mycontroller  
{  
     
    public List<selectoption> supportedObject {get; set;}  
    public String SelectedObject {get; set;}  
    Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe();  
    //Set<String> objectKeys = gd.keySet();  
    public List<SelectOption> fieldLableAPI {get; set;}  
    public List<String> SelectedFields {get; set;}  
    public List<sObject> ObjectList {get; set;} 
    public PageReference savePage; 
   
   //public List<Schema.DescribeFieldResult> fieldInfo{get;set;}
    public List<String> selectedProperties{get;set;}
    public Set<String> selectedNames = new Set<String>{'Name'};
    
    public mycontroller()  
    {  
        supportedObject = new List<selectoption>() ;  
        SelectedObject = '--None--' ;  
        fieldLableAPI = new List<SelectOption>() ;  
        SelectedFields = new List<String>() ;  
        ObjectList = new List<sObject>() ; 
        selectedProperties = new List<String>(); 
          
         
        for(Schema.SObjectType item : ProcessInstance.TargetObjectId.getDescribe().getReferenceTo())  
        {  
              
            if(item.getDescribe().Custom)  
            {  
                 
                supportedObject.add(new SelectOption(item.getDescribe().getName(), item.getDescribe().getLabel() ));  
            }  
        }  
    }  
    public void ObjectFields()  
    {  
        fieldLableAPI.clear();
        if(SelectedObject != '--None--')  
        {  
            Schema.SObjectType systemObjectType = gd.get(SelectedObject); 
            Schema.DescribeSObjectResult r = systemObjectType.getDescribe();  
            Map<String, Schema.SObjectField> M = r.fields.getMap();  
            for(Schema.SObjectField fieldAPI : M.values())
            {
            if(fieldAPI.getdescribe().Iscustom())
            {  
                fieldLableAPI.add(new SelectOption(fieldAPI.getDescribe().getName() , fieldAPI.getDescribe().getLabel())) ;  
            } 
      }}
       else
    {
     fieldLableAPI.clear();
     //fieldLableAPI=null; 
     }    
    }
    
   public Schema.DescribeFieldResult[] getFieldInfo(){
    
     DescribeFieldResult[] sobFieldDescribes = new DescribeFieldResult[]{};
     if(SelectedObject=='--None--'){
     return null;
     }
     else{
     Schema.SObjectType sobType  = gd.get(SelectedObject);
     System.debug('P---'+sobType);
     DescribeSObjectResult sobDescribe = sobType.getDescribe();
      
       Map<String, Schema.SObjectField> fields = sobDescribe.fields.getMap();
           for(String s:selectedFields){
               Schema.SobjectField sobField = fields.get(s);
                DescribeFieldResult sobFieldDescribe = sobField.getDescribe(); 
                sobFieldDescribes.add(sobFieldDescribe);
           }
           
      return sobFieldDescribes;
    }
    }
    
    
    
    public PageReference showTable(){
    
        getFieldInfo();
        return null;
    }
    
    public PageReference customize(){
        savePage = ApexPages.currentPage();
        return Page.objPage2new;
    }
    

    public PageReference show(){
    //getFieldInfo();
    getDisplayProperties();
    return savePage;
    
    }
    
    public List<String> getDisplayProperties(){
        List<String> displayProp = new List<String>(selectedProperties);
        System.debug('!!!----'+selectedProperties);
        displayProp.sort();
       // getFieldInfo();
        return displayProp;
    
    }
    
    }



second vf page

<apex:page controller="mycontroller">
   <apex:form >
    <apex:pageBlock title="Select Properties:">
        <apex:selectList value="{!selectedProperties}" size="4" multiselect="true">
            <apex:selectOption itemLabel="Name" itemValue="Name"/>
            <apex:selectOption itemLabel="Label" itemValue="Label"/>
            <apex:selectOption itemLabel="Type" itemValue="Type"/>
            <apex:selectOption itemLabel="Length" itemValue="Length"/>
            
           
        </apex:selectList>
        <apex:pageBlockButtons >
        <apex:commandButton value="ShowProp" action="{!show}"/>
        </apex:pageBlockButtons>
    </apex:pageBlock>   
   </apex:form>
</apex:page>