Apex PicklistEntryクラスを使って選択リストのすべての値を取得する方法
環境
Salesforce
構文
Schema.PicklistEntry オブジェクトは、getPicklistValues メソッドを
使用して Field Describe Result から返されます。
Schema.DescribeFieldResult df = Account.Industry.getDescribe();
List<Schema.PicklistEntry> P = df.getPicklistValues();
getLabel()
選択リスト内のこの項目の表示名を返します。
getValue()
選択リスト内のこの項目の値を返します。
サンプルコード
//選択リスト型の選択できる値を取得 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()); }