2015-04-26 6 views
1
public class Testing4 { 

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

    public String selectedObject {get; set;} 

    public String selectedField {get; set;} 

    Public Testing4() 
    { 
     selectedObject = 'account'; 
    } 

    public List<SelectOption> getObjectNames() 
    { 
     List<SelectOption> objNames = new List<SelectOption>(); 
     List<String> entities = new List<String>(schemaMap.keySet()); 
     entities.sort(); 
     for(String name : entities) 
     { 
      objNames.add(new SelectOption(name,name)); 
     } 
     return objNames; 
    } 

    public List<SelectOption> getObjectFields() 
    { 
      Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe(); 

      Schema.SObjectType ObjectSchema = schemaMap.get(selectedObject); 

      Map<String, Schema.SObjectField> fieldMap = ObjectSchema.getDescribe().fields.getMap(); 


      List<SelectOption> fieldNames = new List<SelectOption>(); 
      for (String fieldName: fieldMap.keySet()) 
      { 
       fieldNames.add(new SelectOption(fieldName,fieldName)); 

      } 
      return fieldNames; 
     }  
} 

Как получить имена полей полей для объектов Selected Object вместо имен API полей на странице Visualfroce?Как получить имена полей полей для объектов Selected Object вместо имен API полей на странице Visualfroce?

Здесь я получаю все имена API полей для выбранного объекта, но мне нужны только полевые таблицы (а не имена API).

ответ

1

Попробуйте это, чтобы получить Название этикетки от полей объекта Salesforce:

Schema.getGlobalDescribe().get('ObjectName').getDescribe().fields.getMap().get('FieldName').getDescribe().getLabel(); 

Ваш код:

public List<SelectOption> getObjectFields() 
{ 
     Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe(); 

     Schema.SObjectType ObjectSchema = schemaMap.get(selectedObject); 

     Map<String, Schema.SObjectField> fieldMap = ObjectSchema.getDescribe().fields.getMap(); 


     List<SelectOption> fieldNames = new List<SelectOption>(); 
     for (String fieldName: fieldMap.keySet()) 
     { 
      String fName = fieldMap.get(fieldName).getDescribe().getLabel(); 
      fieldNames.add(new SelectOption(fName, fName)); 

     } 
     return fieldNames; 
    }