12.09.2022, 19:47 | #2 |
Участник
|
Теперь добавлям входной параметр для фильтрации заказов по клиенту
Указываем имя и ЕДТ Здесь же можем управлять формулами для опций Только чтение и Значение по умолчанию (эти две опции появились только в версии 10.0.27) для вх.параметра Теперь создаем вычисляемое поле FilterCustAccount C формулой Код: IF(CustAccount="",SalesTable,FILTER(SalesTable, SalesTable.CustAccount = CustAccount)) Теперь свяжем выч.поле FilterCustAccount слева и SalesOrders справа На вопрос изменить ли привязку ответим "Да" Сохраняем изменения, завершаем модель Подготовим шаблон для выгрузки отчета У нас должно быть три диапазон - на проводки, на строки и на весь заказ в целом. И именованные ячейки для каждого поля: Создаем формат для нашей модели, назовем его TrainerITSalesOrdersFormat, загрузим в него наш файл У нас создадутся диапазоны, поддиапазоны и ячейки в соответствии с шаблоном. Переходим на вкладку Сопоставление и связываем диапазоны со списками записей, а ячейки с полями. Получим картинку: Сохраняем и завершаем формат. В итоге у нас получается вот такая выгрузка: Правда, это уже в формате pdf (автоматическое преобразование). Но в Excel выглядит идентично. И наконец создадим класс для выгрузки нашего отчета программно, а не из конфигурации эл.отчетности X++: using Microsoft.Dynamics365.LocalizationFramework; internal final class SalesOrdersHeaderLines { static void main(Args _args) { SalesOrdersHeaderLines salesOrdersHeaderLines = new SalesOrdersHeaderLines(); CustTable custTable = _args.record(); CustAccount custAccount = custTable.AccountNum; salesOrdersHeaderLines.run(custAccount); } public void run(CustAccount _custAccount) { ERFormatMappingTable formatMapping; ERFormatMappingId formatMappingId; select firstonly formatMapping where formatMapping.Name == "TrainerITSalesOrdersFormat"; formatMappingId = formatMapping.Format; const str modelStr = "model"; const str custAccountStr = "CustAccount"; try { ERModelDefinitionInputParametersAction eRModelDefinitionInputParametersAction = new ERModelDefinitionInputParametersAction(); eRModelDefinitionInputParametersAction.addParameter(ERPath::Combine(modelStr, custAccountStr), _custAccount); ERObjectsFactory::createFormatMappingRunByFormatMappingId(formatMappingId) .withParameter(eRModelDefinitionInputParametersAction) .withFileDestination(ERObjectsFactory::createFileDestinationBrowser()).run(); } catch { error("Ошибка"); } } } Последний раз редактировалось Mirta; 12.09.2022 в 19:50. |
|
|
За это сообщение автора поблагодарили: EVGL (10), skuull (5). |
Теги |
electronic reporting, er, ger |
|
|