tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:DescribeFieldResult ClassのgetPicklistValuesで選択リスト値の取得

けっこう利用することのあるgetPicklistValuesで選択リスト値の取得ですが、まだ自分のブログにまとめていなかったのでちょっとまとめておきました。


選択リスト項目のリスト値を取得したい場合、DescribeFieldResultクラスのgetPicklistValuesを使用することでList型として取得することができます。

『Schema.PicklistEntry』はラベルと値の情報を保持しています。


サンプルコードです。
f:id:tyoshikawa1106:20150611203709p:plain


最初のこの処理で取引先の評価項目の情報を取得しています。

Schema.DescribeFieldResult ratingFidldResult = Account.Rating.getDescribe();


続いてこの処理で選択リストのラベルと値を取得することができます。

List<Schema.PicklistEntry> ratingPicklistEntry = ratingFidldResult.getPicklistValues();
for (Schema.PicklistEntry pick : ratingPicklistEntry) {
    this.selectList.add('Label = ' + String.valueOf(pick.getLabel()) + ' : ' + 'Value = ' + String.valueOf(pick.getValue()));
}


こんな感じで選択リスト項目のリスト値を取得することが可能です。また、複数選択リストのリスト値も取得することができます。
f:id:tyoshikawa1106:20150611203608p:plain

選択リスト項目

f:id:tyoshikawa1106:20150611204109p:plain

複数選択リスト項目

f:id:tyoshikawa1106:20150611204141p:plain

画面表示

f:id:tyoshikawa1106:20150611204208p:plain


選択リスト値の方でラベルと値が異なるのはトランスレーションワークベンチで翻訳しているためです。翻訳しても値の方は固定となることが確認できます。