Показать сообщение отдельно
Старый 12.09.2022, 19:42   #1  
Mirta is offline
Mirta
Участник
 
12 / 52 (2) ++++
Регистрация: 23.11.2011
D365FO: GER Заказы со строками и проводками
Помимо привычных отчетов, содержащих итоговые данные, а также отчетов шапка-строки по какому-либо документу, иногда возникает необходимость построить отчет по списку документов, каждый из которых содержит шапку и строки. Такой отчет можно построить с помощью GER достаточно легко и быстро.

Рассмотрим быстрый способ создания отчета с тройной вложенностью. Возьмем для примера заказы на продажу, строки и проводки.

Создаем модель TrainerITSalesOrders. Добавляем корень SalesReport.
Создаем поля модели:
Название: 1.png
Просмотров: 423

Размер: 39.5 Кб

Lines является дочерним узлом для SalesOrders
InventTrans является дочерним узлом для Lines

Создаем сопоставление модели
Нажмите на изображение для увеличения
Название: 2.png
Просмотров: 22
Размер:	28.8 Кб
ID:	13427

По этой кнопке создается сопоставление модели с БД. Можно в дереве модели создать отдельно сопоставление. Это лучше тем, что до него быстрее добираться из дерева (не заходя в модель), и к тому же если мы захотим использовать эту модель для импорта или для других экспортов, то сопоставление лучше чтобы было отдельно, ибо тогда будет галка Использовать сопоставление по умолчанию. Ну пока нам хватит и такого сопоставления.

Для выборки данных из связанных таблиц мы будем пользоваться отношениями на таблицах в АХ (релейшенами).
Добавляем в качестве источника данных Записи таблицы SalesTable
Нажмите на изображение для увеличения
Название: 3.png
Просмотров: 20
Размер:	14.8 Кб
ID:	13428

Ставим галку Запросить запрос - это позволит увидеть расширенный фильтр в диалоге вызова отчета. И галку Точка интеграции - для возможности вызова отчета через пункт меню.
Название: 4.png
Просмотров: 412

Размер: 18.7 Кб

Для преобразования ЕНУМа Status в заказе добавим Перечисление АХ:
Название: 5.png
Просмотров: 409

Размер: 12.5 Кб

Есть 3 способа преобразования перечисления:
1. В модель добавляется только перечисление АХ, далее оно преобразовывается в явно прописанные строковые значения с помощью формул
2. В модель добавляется перечисление АХ и перечисление модели данных. Затем с помощью формулы значениям перечисления АХ сопоставляются значения перечисления модели данных.
3. В модель добавляется перечисление АХ, а также вычисляемые поля, позволяющие с помощью формул преобразовать значение ЕНУМа в его аксаптовую метку. Этот способ самый сложный, но и самый результативный - даже если перечисление изменится в АХ, в GER его значения менять не придется.
Мы воспользуемся первым способом.

Связываем источники данных с полями модели:
Нажмите на изображение для увеличения
Название: 6.png
Просмотров: 34
Размер:	66.6 Кб
ID:	13431

Нажмите на изображение для увеличения
Название: 7.png
Просмотров: 28
Размер:	39.6 Кб
ID:	13432

Поле Worker связываем с полем из релейшенов:
Нажмите на изображение для увеличения
Название: 8.png
Просмотров: 21
Размер:	17.3 Кб
ID:	13433

Нажмите на изображение для увеличения
Название: 9.png
Просмотров: 20
Размер:	22.3 Кб
ID:	13434

Из DirPerson_FK берем поле Name

Для поля Status задаем формулу

Код:
CASE(@.SalesStatus, 
    Enums.SalesStatusEnum.Canceled, "Отменено",
    Enums.SalesStatusEnum.Delivered, "Доставлено",
    Enums.SalesStatusEnum.Invoiced, "Выставлен счет",
    Enums.SalesStatusEnum.None, "",
    Enums.SalesStatusEnum.Backorder, "Открытый заказ"
)
Для строк заказа возьмем SalesLine из релейшенов таблицы SalesTable
Название: 10.png
Просмотров: 406

Размер: 9.5 Кб

Связываем SalesLine и Lines справа
Нажмите на изображение для увеличения
Название: 11.png
Просмотров: 30
Размер:	54.1 Кб
ID:	13436
Название: 12.png
Просмотров: 399

Размер: 14.1 Кб
Нажмите на изображение для увеличения
Название: 13.png
Просмотров: 22
Размер:	14.6 Кб
ID:	13438

Через InventTransOrigin
Название: 14.png
Просмотров: 402

Размер: 7.8 Кб

Обращаемся к InventTrans и связываем с InventTrans справа
Нажмите на изображение для увеличения
Название: 15.png
Просмотров: 28
Размер:	65.8 Кб
ID:	13440

Номер лота берем из InventTransOrigin
Нажмите на изображение для увеличения
Название: 16.png
Просмотров: 29
Размер:	91.7 Кб
ID:	13441

Кол-во - из InventTrans
Нажмите на изображение для увеличения
Название: 17.png
Просмотров: 20
Размер:	39.4 Кб
ID:	13442

Складские аналитики возьмем из InventDim
Название: 18.png
Просмотров: 392

Размер: 11.4 Кб

Нажмите на изображение для увеличения
Название: 19.png
Просмотров: 29
Размер:	83.5 Кб
ID:	13444

Последний раз редактировалось Mirta; 12.09.2022 в 19:51.