Хотя это не очень понятно в документации (https://hpccsystems.com/training/documentation/all - Справочник по языку ECL), вы можете использовать объявление DATASET для преобразования SET в DATASET, а именно в форму:
[ attr := ] DATASET( recordset [, recstruct ] );
attr Имя DATASET для последующего использования в других определениях
набор записей Наборвстроенные записи данных.Это может просто назвать ранее определенное определение набора или явно использовать квадратные скобки, чтобы указать встроенное определение набора.В квадратных скобках записи разделяются запятыми.Записи задаются одним из следующих способов: 1) Использование фигурных скобок ({}) для окружения значений полей для каждой записи.Значения полей в каждой записи разделяются запятыми.2) Разделенный запятыми список встроенных функций преобразования, которые создают строки данных.Все функции преобразования в списке должны создавать записи в одном и том же формате результатов.
recstruct Необязательно .Структура ЗАПИСИ набора записей.Выпускается только в том случае, если параметром набора записей является только одна запись или список встроенных функций преобразования
Так, например, вы можете использовать:
EXPORT Layout := RECORD
STRING tableName;
END;
EXPORT TableNames := [
'tbl1',
'tbl2',
'tbl3',
'tbl4'
];
ds_inlineLayout := DATASET(TableNames, {STRING tableName}); // Define the layout inline
ds_explicitLayout := DATASET(TableNames, Layout); // Use a an explicitly defined layout
OUTPUT(ds_inlineLayout);
OUTPUT(ds_explicitLayout);
Наконец, чтобыиспользуйте это в вашем заявлении:
APPLY(ds_inlineLayout, SomeFunctionPreviouslydefined);