Класс _ReportListener служит в клачестве  родительского класса для других классов из библиотеки  _REPORTLISTENER.VCX, аналогично родительским классам для других Visual FoxPro базовых классов доступных в  _BASE.VCX.

Категория   Описание

Папка по умолчанию

Visual FoxPro Catalog\Foundation Classes\Output\Report Listeners

Класс

_ReportListener

Базовый Класс

ReportListener

Библиотека Классов

_REPORTLISTENER.vcx

Родительский Класс

ReportListener (см. Объект ReportListener)

Примечание

_ReportListener добавляет обработку ошибок аналогично классам  _BASE и включает в себя другие программные функциональности, соответствующие назначению ReportListener, такие как как содействие механизму отчетов во время выполнения команд REPORT FORM или LABEL FORM.

Данные функциональности включают в себя:

  • Управление сессией данных (DataSession). Составление отчетов под управлением объекта требует возможного манипулирования несколькими различными дата сессиями.

  • Определение состояния отчета. _ReportListener дает возможность подчиненному классу определить, надежно ли выполнение определенных действий в данный момент. Например, во печати отчета, небезопасно переключаться на другой принтер.

  • Последовательность обязательств. _ReportListener обеспечивает выполнение принципа Последовательности Обязательств, известный как правопреемничество, что допускает множественные форматы вывода во время работы отчета.

  • Управление отчетами со сложной структурой. Вы можете истпользовать _ReportListener как объектно-ориентированную оболочку для последовательности команд REPORT FORM идущих одна за другой.

В следующей таблице перечислены общедоступные свойства и методы, добавленные данным классом к его родительскому классу - ReportListener.

Свойства и Методы Описание

addReport Метод

Добавляет имя файла отчета в последовательность выполняемых отчетов, по желанию можете задать операторы команды REPORT FORM и приемник ReportListener для определенного отчета.

Синтаксис: addReport(cFRXName [, cClauses[, toListener]])

Возвращаемое значетое: Нет

Параметры: 

cFRXName - имя обрабатымаемого отчета или этикетки.

cClauses  - необязательные операторы для запуска отчета, включая scope, range и инструкции управления окном.

oListener - необязательная ссылка, добавляется приемником отчета _ReportListener, когда выполняется данный отчет.

appName Свойство

Хранит название приложения для обратной связи с пользователем.

По умолчанию "VFP Report Listener"

Примачание: Смотри REPORTLISTENERS_LOCS.H, который предоставляет настраиваемые значения присваиваемые данному свойству в методе класса Init. Подчиненные классы из библиотеки _REPORTLISTENERS.vcx подменяют эти настройки дополнительными #DEFINED значениями из REPORTLISTENERS_LOCS.H.

clearErrors Метод

Сбрасывает состяние ошибки класса.

Синтаксис: clearErrors()

Возвращаемое значение: Нет

Параметры:  Нет

Примечание: Некоторые подклассы могут не работать нормально, после того как запуск отчета аварийно завершился. Данный метод полезен для восстановления состояния  _ReportListener перед последующим запуском отчета.

getLastErrorMessage Метод

Предоставляет информацию о последней ошибке.

Синтаксис: getLastErrorMessage()

Возвращаемое значение: символьное сообшение об ошибке.

Параметры:  Нет.

isSuccessor Свойство

Показывает, является ли данный приемник отчета (ReportListener) связанным с другими приемниками, чтобы обеспечить вывод во время запуска отчета. Если - .T., то в операторе OBJECT команды REPORT FORM не было ссылки на данный ReportListener.

По умолчанию .F.

lIgnoreErrors Свойство

Флаг, определяющий как данный класс будет реагировать на последующие ошибки.

По умолчанию .F.

Примечание:   Данное свойство гарантирует, чтобы  _ReportListener и его подклассы следовали  _BASE модели обработки ошибок.

prepareErrorMessage Метод

Формирует сообщение об ошибке (nError, cMethod, nLine, cName, cMessage, cCodeLine) в одну строку для передачи пользователю.

Систаксис: prepareErrorMessage(nError, cMethod, nLine, cName, cMessage, cCodeLine)

Возвращаемое значение: символьное сообшение об ошибке.

Параметры: 

Вы можете извлечь все параметры для этого метода, кроме cName, с помощью стандартных функций Visual FoxPro обработки ошибок или равнозначных свойств объекта Класс Exception (Visual FoxPro). Параметр cName представляет имя, которое вы хотели бы разместить в сообщении об ошибке как идентификатор вашего приложения.

Например:

  Скопировать Код
LOCAL oListener, oError
oListener = ;
NEWOBJECT("_ReportListener", ;
   "_REPORTLISTENER")
TRY
 * … здесь выполнение некоторых камманд
CATCH TO oError
   IF NOT (ISNULL(oError))
      oListener.DoMessage(;
        oListener.PrepareErrorMessage(;
            oListener.ErrorNo, ;
            oListener.Procedure, ;
            oListener.LineNo, ;
            "My application", ;
            oError.Message, ;
            oError.LineContents))
   ENDIF
FINALLY
   * ... продолжение программы
ENDTRY

removeReports Метод

Удалить из последовательности имя файла отчета, а также соответствующие операторы и ссылку на приемник отчетов (ReportListener).

Синтаксис: removeReports()

Возвращаемое значение: Нет

Параметры:  Нет.

reportUsesPrivateDataSession Свойство

Флаг, показывающий использует ли отчет ту же дата сессию, из которой был вызван, или устанавливает частную дата сессию (private data session).

По умолчанию .F.

runReports Метод

Выполняет последовательность команд REPORT FORM в соответствии с указанными именами файлов отчетов, их операторами и их приемниками из внутренней последовательности отчетов. По выбору, очищает последовательности после выполнения и/или выполняет команду REPORT FORM без ссылки OBJECT.

Синтаксис:.runReports([lRemoveReportsAfterRun[, lOmitListenerReferences]])

Возвращаемое значение: Нет

Параметры: 

lRemoveReportsAfterRun определяет, очищать ли очередь отчетов после того, как метод runReports отработал последовательность команд REPORT FORM.

lOmitReferences определяет, использовать ли данному методу ссылку OBJECT при выполнении каждой команды REPORT FORM.

Примечение: Если вы задали второй параметр равным .T., то ссылки на  приемник отчетов (ReportListener) в каждой команде REPORT FORM будут игнорироваться. Однако, это не означает, что ваши отчеты будут запускаться без содействия приемника отчетов. Если вы задали команду SET REPORTBEHAVIOR 90 до использования метода, то механизм отчетов все-таки получит ссылку на ReportListener соответствующей формы вывода отчета и добавит ее в вашу команду REPORT FORM. Вы можете указать OBJECT оператор для одной или более команд REPORT FORM, когда вы добавляете эти команды в последовательность отчетов приемника.

Если вы определили tlOmitReferences как .F., то _ReportListener проверяет каждую REPORT FORM команду перед тем как выполнить ее, чтобы узнать, включили ли вы оператор OBJECT в команду. Если да, то ваш оператор OBJECT вступает в силу; ReportListener определенный вами будет используемой объектной ссылкой для данной команды.

Если вы не включили оператор OBJECT, то _ReportListener добавит данную ссылку к вашей REPORT FORM команде, если это необходимо.

Если вы не определили ReportListener, когда добавляли отчет, и задали параметр lOmitReferences ранным .F., то _ReportListener добавит ссылку на себя самого в операторе OBJECT <ссылка> команды REPORT FORM.

setSuccessorDynamicProperties Метод

Предоставляет код, устанавливающий некоторые свойства, которые совместно используются последовательностью отчетов. Тем самым обеспечивается приемственность измененных свойств для передачи от предшествующего отчета в последующий.

Синтаксис: setSuccessorDynamicProperties()

Возвращаемое значение: Нет

Параметры:  Нет.

Примечания: Этот метод не является частью базового класса ReportListener.

sharedGdiplusGraphics Свойство

Изменяемое свойство, где хранится копия дескриптора графического объекта GDIPlusGraphics, которое приемник отчетов может совместно использовать с последовательностью отчетов.

По умолчанию 0

sharedOutputPageCount Свойство

Изменяемое свойство, где хранится копия свойства OutputPageCount - количество страниц вывода, которое приемник отчетов может совместно использовать с последовательностью отчетов.

По умолчанию 0

sharedPageHeight Свойство

Информация для совместного пользования последовательностью приемников отчетов, полученная методом GetPageHeight.

По умолчанию 0

sharedPageNo Свойство

Изменяемое свойство, где храниться копия свойства PageNo - номер страницы, которое приемник отчетов может совместно использовать с последовательностью отчетов.

По умолчанию 0

sharedPageTotal Свойство

Изменяемое свойство, где хранится копия свойства PageTotal - количество страниц, которое приемник отчетов может совместно использовать с последовательностью отчетов.

По умолчанию 0

sharedPageWidth Свойство

Информация для совместного пользования последовательностью приемников отчетов, полученная методом GetPageWidth

По умолчанию 0

successor Свойство

Хранит объектную ссылку на следующий приемник отчетов (ReportListener) в последовательности.

По умолчанию .NULL.

Примечание: Смотрите статью о классе UpdateListener (Фундаментальный класс ReportListener User Feedback) для примера использования приемника отчета в последовательности.

Пример

Ниже приведенный код демонстрирует, как вы можете использовать класс  _ReportListener для управления набором команд REPORT FORM. Класс XmlListener является подклассом _ReportListener, т.е. он тоже может использовать все его возможности. В данном примере вы объединяете два отчета вместе и генерируете один XML документ.

  Скопировать Код
LOCAL ox
ox = NEWOBJECT("XmlListener","_ReportListener")
ox.AddReport(GETFILE("frx"),"NOPAGEEJECT")
ox.AddReport(GETFILE("frx")
ox.RunReports(.T.)

Смотрите Также