12.09.2022, 19:42 | #1 |
Участник
|
D365FO: GER Заказы со строками и проводками
Помимо привычных отчетов, содержащих итоговые данные, а также отчетов шапка-строки по какому-либо документу, иногда возникает необходимость построить отчет по списку документов, каждый из которых содержит шапку и строки. Такой отчет можно построить с помощью GER достаточно легко и быстро.
Рассмотрим быстрый способ создания отчета с тройной вложенностью. Возьмем для примера заказы на продажу, строки и проводки. Создаем модель TrainerITSalesOrders. Добавляем корень SalesReport. Создаем поля модели: Lines является дочерним узлом для SalesOrders InventTrans является дочерним узлом для Lines Создаем сопоставление модели По этой кнопке создается сопоставление модели с БД. Можно в дереве модели создать отдельно сопоставление. Это лучше тем, что до него быстрее добираться из дерева (не заходя в модель), и к тому же если мы захотим использовать эту модель для импорта или для других экспортов, то сопоставление лучше чтобы было отдельно, ибо тогда будет галка Использовать сопоставление по умолчанию. Ну пока нам хватит и такого сопоставления. Для выборки данных из связанных таблиц мы будем пользоваться отношениями на таблицах в АХ (релейшенами). Добавляем в качестве источника данных Записи таблицы SalesTable Ставим галку Запросить запрос - это позволит увидеть расширенный фильтр в диалоге вызова отчета. И галку Точка интеграции - для возможности вызова отчета через пункт меню. Для преобразования ЕНУМа Status в заказе добавим Перечисление АХ: Есть 3 способа преобразования перечисления: 1. В модель добавляется только перечисление АХ, далее оно преобразовывается в явно прописанные строковые значения с помощью формул 2. В модель добавляется перечисление АХ и перечисление модели данных. Затем с помощью формулы значениям перечисления АХ сопоставляются значения перечисления модели данных. 3. В модель добавляется перечисление АХ, а также вычисляемые поля, позволяющие с помощью формул преобразовать значение ЕНУМа в его аксаптовую метку. Этот способ самый сложный, но и самый результативный - даже если перечисление изменится в АХ, в GER его значения менять не придется. Мы воспользуемся первым способом. Связываем источники данных с полями модели: Поле Worker связываем с полем из релейшенов: Из DirPerson_FK берем поле Name Для поля Status задаем формулу Код: CASE(@.SalesStatus, Enums.SalesStatusEnum.Canceled, "Отменено", Enums.SalesStatusEnum.Delivered, "Доставлено", Enums.SalesStatusEnum.Invoiced, "Выставлен счет", Enums.SalesStatusEnum.None, "", Enums.SalesStatusEnum.Backorder, "Открытый заказ" ) Связываем SalesLine и Lines справа Через InventTransOrigin Обращаемся к InventTrans и связываем с InventTrans справа Номер лота берем из InventTransOrigin Кол-во - из InventTrans Складские аналитики возьмем из InventDim Последний раз редактировалось Mirta; 12.09.2022 в 19:51. |
|
Теги |
electronic reporting, er, ger |
|
|