• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Salesforce之如何在Apex中获取选项列表中的值

互联网 diligentman 2周前 (11-19) 12次浏览

        在Apex中有时会遇到需要获取选项列表字段中的值,例如 : 一个省字段下面可能存在多个省份,如 黑龙江、北京、河南等. 如何将所有的值都展现出来呢?

    小喵刚接触到这种情况的时候是这样来的 ↓

ManProvinceOption = new List<SelectOption>();
       ManProvinceOption.add(new SelectOption('全部','全部'));
       ManProvinceOption.add(new SelectOption('山东','山东'));
       ManProvinceOption.add(new SelectOption('黑龙江','黑龙江'));
       ManProvinceOption.add(new SelectOption('吉林','吉林'));
       ManProvinceOption.add(new SelectOption('江苏','江苏'));
       ManProvinceOption.add(new SelectOption('深圳','深圳'));
       ManProvinceOption.add(new SelectOption('上海','上海'));
       ManProvinceOption.add(new SelectOption('浙江','浙江'));
       ManProvinceOption.add(new SelectOption('福建','福建'));
       ManProvinceOption.add(new SelectOption('广东','广东'));
       ManProvinceOption.add(new SelectOption('广西','广西'));
       ManProvinceOption.add(new SelectOption('大连','大连'));
       ManProvinceOption.add(new SelectOption('安徽','安徽'));
       ManProvinceOption.add(new SelectOption('甘肃','甘肃'));
       ManProvinceOption.add(new SelectOption('沈阳','沈阳'));
       ManProvinceOption.add(new SelectOption('江西','江西'));
       ManProvinceOption.add(new SelectOption('山西','山西'));
       ManProvinceOption.add(new SelectOption('新疆','新疆'));
       ManProvinceOption.add(new SelectOption('湖南','湖南'));
       ManProvinceOption.add(new SelectOption('天津','天津'));
       ManProvinceOption.add(new SelectOption('河南','河南'));
       ManProvinceOption.add(new SelectOption('SP本部','SP本部'));
       ManProvinceOption.add(new SelectOption('云南','云南'));
       ManProvinceOption.add(new SelectOption('湖北','湖北'));
       ManProvinceOption.add(new SelectOption('北京','北京'));
       ManProvinceOption.add(new SelectOption('四川','四川'));
       ManProvinceOption.add(new SelectOption('内蒙古','内蒙古'));
       ManProvinceOption.add(new SelectOption('陕西','陕西'));
       ManProvinceOption.add(new SelectOption('河北','河北'));
       ManProvinceOption.add(new SelectOption('GIR本部','GIR本部'));
       ManProvinceOption.add(new SelectOption('贵州','贵州'));
       ManProvinceOption.add(new SelectOption('重庆','重庆'));
       ManProvinceOption.add(new SelectOption('青海','青海'));

  这样写数据就是死数据,倘若以后有些大的改变,那将何其的麻烦?

   小喵之前是学Java的,当时我们如果需要下拉列表的时候都是从数据库的表中查询出来的,然后在进行展示.

小喵从网上查询了一下,在salesforce中也确实有着这种操作,下面就给小伙伴们上代码 …

它使用Schema.DescribeFieldResult 来获得选项列表字段的描述getDescribe().
 

例子 :

SalesdepartmentOption = new List<SelectOption>();
       Schema.DescribeFieldResult fieldResult2 = OPDPlan__c.ProvinceOption__c.getDescribe();    
            List<Schema.PicklistEntry> ple2 = fieldResult2.getPicklistValues();
            for( Schema.PicklistEntry f : ple2)  {
                 SalesdepartmentOption.add(new SelectOption(f.getLabel(),f.getLabel()));
            } 

格式 :

//保存数据的变量
SalesdepartmentOption = new List<SelectOption>();
 //获取对象的选项列表字段的值
       Schema.DescribeFieldResult 变量名1= 对象.选项列表字段.getDescribe();    
            List<Schema.PicklistEntry> 变量名2 = 变量名1.getPicklistValues();
            for( Schema.PicklistEntry f : 变量名2)  {
                 SalesdepartmentOption.add(new SelectOption(f.getLabel(),f.getLabel()));
            } 

 

今天的这个小知识点,

你Get到了吗?

(^_^)~喵~!!

 


喜欢 (0)