Как использовать fieldset в компоненте молнии - PullRequest
0 голосов
/ 19 сентября 2019

Я хочу создать пользовательский компонент молнии для создания новых записей Case, и мне нужно использовать fieldset для включения полей в компонент.Нужно использовать это только для одного объекта.Я никогда не использовал наборы полей, поэтому понятия не имею.Было бы здорово, если бы вы могли поделиться примером кода или любой ссылкой на него.

1 Ответ

0 голосов
/ 24 сентября 2019

Вы можете использовать этот служебный класс

Это класс-обертка для хранения мета-информации о полях

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 (), который возвращает списокобёртки 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;
    } 
}

После того, как вы получите все эти поля, установите информацию, чтобы динамически создать компонент молнии

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...