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
Kiran Kumar GottulaKiran Kumar Gottula 

Getting pages, classes,Trigers,users,recordtypes Dynamically......

How to get pages, classes,Trigers,users,recordtypes Dynamically in VF page as Tab panels and also with moseover links?????????

Best Answer chosen by Admin (Salesforce Developers) 
Navatar_DbSupNavatar_DbSup

Hi,

 

Try the below code snippet as reference:

-------------- vf page---------------

<apex:page controller="displaysobjectinpicklist" >

<script>

function callactionfunction(val)

{

   

}

</script>

   <apex:form >

 <Apex:outputLabel ><b>Object Name </b> : </Apex:outputLabel> <apex:SelectList value="{!val}" size="1">

 

      <apex:selectOptions value="{!Name}"></apex:selectOptions>

 <apex:actionSupport event="onchange" reRender="pgblok" action="{!createquery}"/>

    </apex:SelectList>

 

    <apex:pageBlock id="pgblok" >

       

    <apex:pageBlockTable value="{!objectforquery}" var="displaydata">

        <apex:repeat value="{!fieldapiname}" var="displayfieldname">

        <apex:column value="{!displaydata[displayfieldname]}"/>

        </apex:repeat>

   

    </apex:pageBlockTable>

    </apex:pageBlock>

  </apex:form>

</apex:page>

 

 

---------- apex controller-------------------------

 

 

public class displaysobjectinpicklist

    {

    public String val {get;set;}

     public Map <String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();

    public string forquery;

    public set<string>flds{get;set;}

    public list<string> fieldapiname{get;set;}

    public list<sobject> objectforquery{get;set;}

    public displaysobjectinpicklist ()

    {   

        val='Contact';

        objectforquery=new list<sobject>();

        flds=new set<string>();

         fieldapiname=new list<string>();

        createquery();

      

       

    }

    public List<SelectOption> getName()

    {

 

        List<Schema.SObjectType> gd = Schema.getGlobalDescribe().Values();    

        List<SelectOption> options = new List<SelectOption>();

       

 

        for(Schema.SObjectType f : gd)

        {

            options.add(new SelectOption(f.getDescribe().getName(),f.getDescribe().getLabel()));

            System.debug('@@@@@@@@@@@@@@@@f.getDescribe().getName()'+f.getDescribe().getName());

        }

        return options;

    }

 

    public void createquery()

    {

        system.debug('@@@@@@ val'+val);

        if(val.length()>0)

        {

            fieldapiname=new list<string>();

            forquery=null;

            Map<string,Schema.SObjectField> mpConField=schemaMap.get(val).getDescribe().fields.getMap();

            flds=mpConField.keySet();

            for(String name : flds)

            {

                Schema.DescribeFieldResult fldResult=mpConField.get(name).getDescribe();

                if(string.valueof(fldResult.getName())!='Jigsaw' || string.valueof(fldResult.getName())!='JigsawContactId' )

                fieldapiname.add(string.valueof(fldResult.getName()));

                if(forquery==null)

                {

                    forquery=string.valueof(fldResult.getName());

                   

                }

                else

                {

                    forquery=forquery+','+string.valueof(fldResult.getName());

                }

            }

        fieldapiname.sort();

        string finalquery='select '+forquery + ' from '+val+' limit 1000 ';

        system.debug('query text'+forquery+'@@Final query'+  finalquery);

        objectforquery=Database.query(finalquery);

        system.debug('!!!! after query '+objectforquery );

       

        }

    }

 

}

 

Did this answer your question? If not, let me know what didn't work, or if so, please mark it solved. 

All Answers

Navatar_DbSupNavatar_DbSup

Hi,

 

Try the below code snippet as reference:

-------------- vf page---------------

<apex:page controller="displaysobjectinpicklist" >

<script>

function callactionfunction(val)

{

   

}

</script>

   <apex:form >

 <Apex:outputLabel ><b>Object Name </b> : </Apex:outputLabel> <apex:SelectList value="{!val}" size="1">

 

      <apex:selectOptions value="{!Name}"></apex:selectOptions>

 <apex:actionSupport event="onchange" reRender="pgblok" action="{!createquery}"/>

    </apex:SelectList>

 

    <apex:pageBlock id="pgblok" >

       

    <apex:pageBlockTable value="{!objectforquery}" var="displaydata">

        <apex:repeat value="{!fieldapiname}" var="displayfieldname">

        <apex:column value="{!displaydata[displayfieldname]}"/>

        </apex:repeat>

   

    </apex:pageBlockTable>

    </apex:pageBlock>

  </apex:form>

</apex:page>

 

 

---------- apex controller-------------------------

 

 

public class displaysobjectinpicklist

    {

    public String val {get;set;}

     public Map <String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();

    public string forquery;

    public set<string>flds{get;set;}

    public list<string> fieldapiname{get;set;}

    public list<sobject> objectforquery{get;set;}

    public displaysobjectinpicklist ()

    {   

        val='Contact';

        objectforquery=new list<sobject>();

        flds=new set<string>();

         fieldapiname=new list<string>();

        createquery();

      

       

    }

    public List<SelectOption> getName()

    {

 

        List<Schema.SObjectType> gd = Schema.getGlobalDescribe().Values();    

        List<SelectOption> options = new List<SelectOption>();

       

 

        for(Schema.SObjectType f : gd)

        {

            options.add(new SelectOption(f.getDescribe().getName(),f.getDescribe().getLabel()));

            System.debug('@@@@@@@@@@@@@@@@f.getDescribe().getName()'+f.getDescribe().getName());

        }

        return options;

    }

 

    public void createquery()

    {

        system.debug('@@@@@@ val'+val);

        if(val.length()>0)

        {

            fieldapiname=new list<string>();

            forquery=null;

            Map<string,Schema.SObjectField> mpConField=schemaMap.get(val).getDescribe().fields.getMap();

            flds=mpConField.keySet();

            for(String name : flds)

            {

                Schema.DescribeFieldResult fldResult=mpConField.get(name).getDescribe();

                if(string.valueof(fldResult.getName())!='Jigsaw' || string.valueof(fldResult.getName())!='JigsawContactId' )

                fieldapiname.add(string.valueof(fldResult.getName()));

                if(forquery==null)

                {

                    forquery=string.valueof(fldResult.getName());

                   

                }

                else

                {

                    forquery=forquery+','+string.valueof(fldResult.getName());

                }

            }

        fieldapiname.sort();

        string finalquery='select '+forquery + ' from '+val+' limit 1000 ';

        system.debug('query text'+forquery+'@@Final query'+  finalquery);

        objectforquery=Database.query(finalquery);

        system.debug('!!!! after query '+objectforquery );

       

        }

    }

 

}

 

Did this answer your question? If not, let me know what didn't work, or if so, please mark it solved. 

This was selected as the best answer
MRDJMRDJ
Unsupported type common.api.soap.wsdl.Address encountered.
Ilya IvanovskiyIlya Ivanovskiy
Important note!
code on page:
<apex: pageBlockTable value = "{! objectforquery}" var = "objs" title = "Test block 2">
                <apex: repeat value = "{! fieldapiname}" var = "apis">
                    <apex: column value = "{! objs [apis]}" />
                </ apex: repeat>
            </ apex: pageBlockTable>
controller code:   
public Integer createquery () {

        String obj = 'Exchange_Rate__c';
        Map <String, Schema.SObjectType> gd = Schema.getGlobalDescribe ();

        Schema.SObjectType sobjType = gd.get (obj);
        Schema.DescribeSObjectResult describeResult = sobjType.getDescribe ();
        Map <String, Schema.SObjectField> mpConField = describeResult.fields.getMap ();
        this.flds = mpConField.keySet ();
        System.debug ('flds:' + flds); // flds: {base_currency__c, cad__c, createdbyid, createddate, date__c, ...

        fieldapiname = new list <string> ();
        forquery = null;

        for (String name: flds) {
            Schema.DescribeFieldResult fldResult = mpConField.get (name) .getDescribe ();
            fieldapiname.add (string.valueof (fldResult.getName ()));
            if (forquery == null) {
                forquery = string.valueof (fldResult.getName ());
            } else {
                forquery = forquery + ',' + string.valueof (fldResult.getName ());
            }
        }
        fieldapiname.sort (); // now in this list all fields of the object can be removed

        List <String> curOfPickL = selectOptionsListToStringList (getBaseCurrencyPicklist ()); // (GBP, CAD, EUR, USD)
        Map <String, String> mapCurAvail = mapCurrencyAvailability (); // {CAD = CAD__c, EUR = EUR__c, GBP = GBP__c, USD = USD__c}

        // collect a list of fields to display
        fieldapiname = new list <string> ();
        //fieldapiname.add('base_currency__c ');
        fieldapiname.add ('date__c');
        for (String s: mapCurAvail.keySet ()) {
            if (base! = s) {
                fieldapiname.add (mapCurAvail.get (s));
            }
        }

        System.debug ('fieldapiname:' + fieldapiname); // fieldapiname: (Base_Currency__c, CAD__c, CreatedById, ...
        System.debug ('forquery:' + forquery); // forquery: Id, OwnerId, IsDeleted, Name, CreatedDate, ...
        System.debug ('val:' + val); // Exchange_Rate__c

        String sortingColumn = 'Date__c'; // column to sort
        String sortingOrder = 'DESC'; // sorting direction ASC | DESC
        String finalquery;
        finalquery = 'SELECT' + forquery + ''; // absolutely all object fields here
        finalquery + = 'FROM' + val + ''; // Exchange_Rate__c
        finalquery + = 'WHERE Base_Currency__c = \' '+ base +' \ ''; // base currency GBP
        finalquery + = 'ORDER BY' + sortingColumn + '' + sortingOrder + ''; // date__c and DESC
        finalquery + = 'LIMIT 10000';

        system.debug ('finalquery:' + finalquery);
        objectforquery = Database.query (finalquery);
        system.debug ('objectforquery:' + objectforquery);

        // important article - an example!
        // https://developer.salesforce.com/forums?id=906F000000090uhIAA

        return 0;
    }

important to collect correctly: objectforquery
If you do not want errors, collect all the fields in this query and do the sorting right away. By all fields, I mean - absolutely all the fields of your object.
If you compiled - objectforquery
correctly, now collect - fieldapiname,
In this list you have API fields that you want to display, it can be assembled by hand or according to your logic and it will work.
Once again I pay attention that if something does not work check - objectforquery, most likely you collected it not in all fields of the object.