Создание отчетов в Navision на базе временной таблицы
Обычно, когда вы создаете отчет, он работает на базе одной или нескольких таблиц.
А иногда у вас есть временная табличка (например, какая-нибудь сортировка или группировка) – и надо вывести эти данные в отчет. Проблема состоит в том, что временную табличку нельзя прямо указать как источник данных в DataItem’е отчета. Ему нужны только т.н. «реальные» таблицы из БД.
Решение – в использовании таблицы Integer (в русской версии – Целое) + написать код, который будет отрабатывать триггер OnAfterGetRecord.
FOR i := 1 TO 80 DO BEGIN
tmpItem.INIT;
tmpItem."No." := FORMAT(i);
tmpItem.Description := 'Item description ' + FORMAT(i);
tmpItem."Unit Price" := i * 1000;
tmpItem.INSERT;
END;
tmpItem.RESET;
SETRANGE(Number,1,tmpItem.COUNT);
IF Number = 1 THEN
tmpItem.FIND('-')
ELSE
tmpItem.NEXT;
При создании макета отчета (расположения заголовка, тела отчета) используйте свой DataItem-Целое.
Однако, формочку со списком полей вы использовать не сможете – придется каждый раз прописывать название переменной, хранящей временную таблицы вместе с именем поля (например, tmpItem.Description).
В результате мы получаем приятный глазу отчет:

Автор: Андрей Стрельников
В области Navision - с 2003 года. Профессиональные интересы: NAV, MS SQL, .NET, BPMN, IT-менеджмент. Предметная область: логистика, финансы, склады, 3PL.
Количество статей, опубликованных автором: 86.