Apex PicklistEntryクラスを使って選択リストのすべての値を取得する方法

環境
Salesforce

構文
Schema.PicklistEntry オブジェクトは、getPicklistValues メソッドを
使用して Field Describe Result から返されます。
Schema.DescribeFieldResult df = Account.Industry.getDescribe();
List<Schema.PicklistEntry> P = df.getPicklistValues();
getLabel()
選択リスト内のこの項目の表示名を返します。

getValue()
選択リスト内のこの項目の値を返します。

サンプルコード

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
//選択リスト型の選択できる値を取得
public List<Schema.PicklistEntry> getPicklist(String sObjName, String fieldName){
List<Schema.PicklistEntry> pickList;
Schema.SObjectType sObjType = (Schema.SObjectType) Schema.getGlobalDescribe().get(sObjName);
if(sObjType != null){
Map<String, Schema.SObjectField> fieldmap = sObjType.getDescribe().fields.getMap();
Schema.SObjectField f = (Schema.SObjectField) fieldmap.get(fieldName);
if(f != null){
Schema.DescribeFieldResult r = f.getDescribe();
if (r.getType() == Schema.DisplayType.Picklist) {
pickList = r.getPicklistValues();
System.debug('値' + pickList);
}
}
}
return pickList;
}
List<Schema.PicklistEntry> picklist = getPicklist('OpportunityContactRole', 'Role');
for(Schema.PicklistEntry pick : picklist){
System.debug('-----------------');
System.debug('項目の表示名 :' + pick.getLabel());
System.debug('項目の値 :' + pick.getValue());
System.debug('ドロップダウンリストに項目を表示する必要:' + pick.isActive());
}
//選択リスト型の選択できる値を取得 public List<Schema.PicklistEntry> getPicklist(String sObjName, String fieldName){ List<Schema.PicklistEntry> pickList; Schema.SObjectType sObjType = (Schema.SObjectType) Schema.getGlobalDescribe().get(sObjName); if(sObjType != null){ Map<String, Schema.SObjectField> fieldmap = sObjType.getDescribe().fields.getMap(); Schema.SObjectField f = (Schema.SObjectField) fieldmap.get(fieldName); if(f != null){ Schema.DescribeFieldResult r = f.getDescribe(); if (r.getType() == Schema.DisplayType.Picklist) { pickList = r.getPicklistValues(); System.debug('値' + pickList); } } } return pickList; } List<Schema.PicklistEntry> picklist = getPicklist('OpportunityContactRole', 'Role'); for(Schema.PicklistEntry pick : picklist){ System.debug('-----------------'); System.debug('項目の表示名 :' + pick.getLabel()); System.debug('項目の値 :' + pick.getValue()); System.debug('ドロップダウンリストに項目を表示する必要:' + pick.isActive()); }
//選択リスト型の選択できる値を取得
public List<Schema.PicklistEntry> getPicklist(String sObjName, String fieldName){
    List<Schema.PicklistEntry> pickList;
    Schema.SObjectType sObjType = (Schema.SObjectType) Schema.getGlobalDescribe().get(sObjName);
    if(sObjType != null){
        Map<String, Schema.SObjectField> fieldmap = sObjType.getDescribe().fields.getMap();
        Schema.SObjectField f = (Schema.SObjectField) fieldmap.get(fieldName);
        if(f != null){
            Schema.DescribeFieldResult r = f.getDescribe();
            if (r.getType() == Schema.DisplayType.Picklist) {
                pickList = r.getPicklistValues();
                System.debug('値' + pickList);
            }
        }
    }
    return pickList;
}

List<Schema.PicklistEntry> picklist = getPicklist('OpportunityContactRole', 'Role');

for(Schema.PicklistEntry pick : picklist){
    System.debug('-----------------');
    System.debug('項目の表示名 :' + pick.getLabel());
    System.debug('項目の値 :' + pick.getValue());
    System.debug('ドロップダウンリストに項目を表示する必要:' + pick.isActive());
}

 

Apex

Posted by arkgame