Класс RunBaseReport Класс RunBaseReport является наследником класса RunBaseBatch и служит для формирования отчетов в Axapta. В версии 3.0 Axapta был введен новый класс runbaseReportStd. С таким наследством запуск выполнения отчетов возможен и при пакетной обработке. Начать ознакомление можно с примера Tutorial_RunbaseReport в стандартной поставке. Но лучше с моей точки зрения посмотреть на SalesReport_DailyEntries. В реализации этого класса заложен необходимый функционал. Рассмотрим его Метод public identifiername lastValueElementName() {
return reportStr(SalesDailyEntries);
} Выполняет запуск необходимого отчета. Отчет определен функцией reportStr(). Расширенный тип identifiername подойдет для большинства отчетов. Метод client server public static ClassDescription description() {
return "@SYS77491";
} Стандартно описывает вывод названия заголовка отчета. Метод static void main(Args args) {
SalesReport_DailyEntries salesReport_DailyEntries; ; salesReport_DailyEntries = new salesReport_DailyEntries();
if (salesReport_DailyEntries.prompt()) { salesReport_DailyEntries.run(); }
} Так же стандартно формирует запуск отчета из AOT или menu item. Если целью является ограничение вызова отчета. То его лучше реализовать в этом методе Используя условие, как я уже показывал в Run Base http://erpkb.com/Axapta/Klass/RunBase?v=n2v Также хорошим примером реализации вызова и формирования отчета через класс является SalesReport_Heading, который формирует SalesHeading отчет. В нем присутствует метод public boolean getFromDialog() {;
formLetters = fieldFormLetters.value(); totals = fieldTotals.value();
return super();
} Который присваивает переменным класса значения с диалога. Так же присутствуют методы ( причем очень стандартно оформленные) pack() и unpack() для пакетной обработки класса. Кто уже изрядно полазил в Axapta, знает, что SalesReport_Heading вызывается из РасчетыСКлиентами\Отчеты\Проводки\Заказ\Заказ У этого класса есть близнец PurchReport_Heading, отвечающий за отчет по поставщикам. Все методы подробно, описанные в Run Base с успехом можно применять и в наследниках RunBaseReport.