如何在闪电组件中使用字段集

时间:2019-09-19 12:13:03

标签: components salesforce salesforce-lightning lightning

我想创建一个自定义的闪电组件来创建新的Case记录,并且需要使用fieldset在组件中包括字段。只需要将此对象用于一个对象。我从未使用过字段集,所以对此一无所知。如果您可以共享一些示例代码或相同的任何链接,那就太好了。

1 个答案:

答案 0 :(得分:0)

您可以使用此实用程序类

这是包装类,用于保存有关字段的元信息

public with sharing class DataTableColumns {
    @AuraEnabled
    public String label {get;set;}
    @AuraEnabled       
    public String fieldName {get;set;}
    @AuraEnabled
    public String type {get;set;}

    public DataTableColumns(String label, String fieldName, String type){
        this.label = label;
        this.fieldName = fieldName;
        this.type = type;            
    }
}

FieldSetHelper类具有getColumns()方法,该方法将返回包含有关filedset列信息的DataTableColumns包装器列表。

public with sharing class FieldSetHelper {

/*
    @param String strObjectName     : required. Object name to get the required filed set
    @param String strFieldSetName   : required. FieldSet name

    @return  List<DataTableColumns> list of columns in the specified fieldSet
*/
public static List<DataTableColumns> getColumns (String strObjectName, String strFieldSetName) {
    Schema.SObjectType SObjectTypeObj = Schema.getGlobalDescribe().get(strObjectName);
    Schema.DescribeSObjectResult DescribeSObjectResultObj = SObjectTypeObj.getDescribe();            
    Schema.FieldSet fieldSetObj = DescribeSObjectResultObj.FieldSets.getMap().get(strFieldSetName);

    List<DataTableColumns> lstDataColumns = new List<DataTableColumns>();

    for( Schema.FieldSetMember eachFieldSetMember : fieldSetObj.getFields() ){
        String dataType = 
             String.valueOf(eachFieldSetMember.getType()).toLowerCase();

             DataTableColumns datacolumns = new DataTableColumns( 
             String.valueOf(eachFieldSetMember.getLabel()) ,                                                
             String.valueOf(eachFieldSetMember.getFieldPath()),                                              
             String.valueOf(eachFieldSetMember.getType()).toLowerCase() );
             lstDataColumns.add(datacolumns);
        }
        return lstDataColumns;
    } 
}

获得所有这些字段设置信息后,动态创建闪电组件