我想创建一个自定义的闪电组件来创建新的Case记录,并且需要使用fieldset在组件中包括字段。只需要将此对象用于一个对象。我从未使用过字段集,所以对此一无所知。如果您可以共享一些示例代码或相同的任何链接,那就太好了。
答案 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;
}
}
获得所有这些字段设置信息后,动态创建闪电组件