Инструменты пользователя

Инструменты сайта


miker

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

miker [2018/04/13 22:43]
miker [2018/04/13 22:43] (текущий)
Строка 1: Строка 1:
 +__Класс 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.
  
miker.txt · Последнее изменение: 2018/04/13 22:43 (внешнее изменение)