Module: uDeviceInterface
Base class: TOperationDeviceEngine
Базовый класс функциональности Печать.
Report - печать.
Обычно построением DotMatrix-отчета занимается оболочка (в неё встроен FastReport). А в драйвере устройства нужно только перекрыть нужные команды визуализации отчета.
Отчет: ReportStart, ReportFinish
Страница отчета: ReportStartPage, ReportFinishPage
Стиль текста: ReportBold, ReportItalic, ReportUnderline, ReportWide
Текст: ReportText, ReportTextLn
Другие: ReportFrame, ReportDeviceCommand
constructor Create(Device: TDeviceInterface; IniParams: TIniParams);
procedure SaveTransaction(TransactionID: TGUID; OutputParams: TReportOutputParams; ErrorCode: Integer = DEVICESHELLCODE_OK; ErrorMessage: String = '');
property AsyncPrepareMode: Boolean read GetAsyncPrepareMode write SetAsyncPrepareMode;
property DirectMode: Boolean read GetDirectMode write SetDirectMode;
property DotMatrixPrinterName: String read GetDotMatrixPrinterName write SetDotMatrixPrinterName;
property PrinterName: String read GetPrinterName write SetPrinterName;
property SimpleMessageMode: TReportSimpleMessageMode read FSimpleMessageMode write FSimpleMessageMode.
procedure ExecuteReport(InputParams: TReportInputParams; OutputParams: TReportOutputParams; CancelHandle: THandle); virtual;
procedure Report(InputParams: TReportInputParams; OutputParams: TReportOutputParams; CancelHandle: THandle); virtual;
procedure ReportBold(Enabled: Boolean; CancelHandle: THandle); virtual;
procedure ReportDeviceCommand(Command: RawByteString; CancelHandle: THandle); virtual;
procedure ReportFrame(Index,Count: Integer; CancelHandle: THandle); virtual;
procedure ReportFinish(CancelHandle: THandle); virtual;
procedure ReportFinishPage(CancelHandle: THandle); virtual;
procedure ReportItalic(Enabled: Boolean; CancelHandle: THandle); virtual;
procedure ReportSimpleMessage(InputParams: TReportInputParams; OutputParams: TReportOutputParams; MessageText: String; CancelHandle: THandle); virtual;
procedure ReportStart(CancelHandle: THandle); virtual;
procedure ReportStartPage(CancelHandle: THandle); virtual;
procedure ReportText(Text: String; CancelHandle: THandle); virtual;
procedure ReportTextLn(Text: String; CancelHandle: THandle); virtual;
procedure ReportUnderline(Enabled: Boolean; CancelHandle: THandle); virtual;
procedure ReportWide(Enabled: Boolean; CancelHandle: THandle); virtual.
constructor Create(Device: TDeviceInterface; IniParams: TIniParams);
Устройство, для которого создается эта функциональность
Параметры устройства
Добавляет функциональность в список функциональностей устройства.
procedure SaveTransaction(TransactionID: TGUID; OutputParams: TReportOutputParams; ErrorCode: Integer = DEVICESHELLCODE_OK; ErrorMessage: String = '');
Идентификатор транзакции
Выходные параметры операции (результат)
Текст ошибки
property AsyncPrepareMode: Boolean read GetAsyncPrepareMode write SetAsyncPrepareMode;
Пока строится отчет, другие операции (например, "Регистрация продажи" в случае с фискальным регистратором) блокируются, т.к. оболочка выполняет все операции последовательно.
Пока строится отчет, могут выполнять другие операции. Когда отчет построится, перед продолжением выполнения операции оболочка снова заблокирует выполнение других операции.
Свойство имеет смысл использовать, только если свойство DirectMode равно False.
property DirectMode: Boolean read GetDirectMode write SetDirectMode;
Построением отчета занимается оболочка (в неё встроен FastReport), а в драйвер устройства приходят только команды на визуализацию отчета (например, ReportText).
Построением отчета занимается сам драйвер устройства.
property DotMatrixPrinterName: String read GetDotMatrixPrinterName write SetDotMatrixPrinterName;
Название принтера.
Если указано, печатью отчета будет заниматься FastReport (значение этого свойства будет установлено в свойство TfrxReport.PrintOptions.Printer), встроенный в оболочку.
Свойство имеет смысл использовать, только если свойство DirectMode равно False, и только для DotMatrix-отчетов.
property PrinterName: String read GetPrinterName write SetPrinterName;
Название принтера.
Если указано, печатью отчета будет заниматься FastReport (значение этого свойства будет установление в свойство TfrxReport.PrintOptions.Printer), встроенный в оболочку.
Свойство имеет смысл использовать, только если свойство DirectMode равно False, и только для не DotMatrix-отчетов.
property SimpleMessageMode: TReportSimpleMessageMode read FSimpleMessageMode write FSimpleMessageMode;
Если значение свойства отличается от rsmmNone, драйвер при выполнении команд визуализации отчета (например, ReportText) будет формировать представление отчета в виде строки, а в конце визуализации отчета сформированная строка будет передана в метод ReportSimpleMessage.
procedure ExecuteReport(InputParams: TReportInputParams; OutputParams: TReportOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Печать отчета.
Метод может работать только с DotMatrix-отчетами.
Для каждой команды визуализации отчета вызывается соответствующий метод.
Перекрывать стоит, если не нужна визуализация отчета по-умолчанию (например, так делает драйвер устройства Экранный отчет), или формат печатного представления не FastReport.
procedure Report(InputParams: TReportInputParams; OutputParams: TReportOutputParams; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Дескриптор события для отмены операции
Печать отчета.
При повторном выполнении аварийно-завершенной операции отображает диалог выбора действий, иначе вызывает метод ExecuteReport.
Вызывается из оболочки.
procedure ReportBold(Enabled: Boolean; CancelHandle: THandle); virtual;
Включено / выключено
Дескриптор события для отмены операции
Включить / выключить отображение текста жирным шрифтом.
procedure ReportDeviceCommand(Command: RawByteString; CancelHandle: THandle); virtual;
Команда. Содержимое свойства TfrxDMPCommand.Command, преобразованное из*hex*-строки в BLOB
Дескриптор события для отмены операции
Метод вызывается, если на странице отчета FastReport лежит компонент TfrxDMPCommand.
Можно использовать, например, для отправки команды открытия денежного ящика.
procedure ReportFrame(Index,Count: Integer; CancelHandle: THandle); virtual;
Тип элемента рамки.
Количество элементов рамки
Дескриптор события для отмены операции
Отобразить элемент рамки заданное число раз.
Горизонтальная линия (─)
Вертикальная линия (│)
Левый верхний угол (┌)
Горизонтальная линия с ответвлением вниз посередине (┬)
Правый верхний угол (┐)
Вертикальная линия с ответвлением вправо посередине (├)
Пересечение вертикальной и горизонтальной линий (┼)
Вертикальная линия с ответвлением влево посередине (┤)
Левый нижний угол (└)
Горизонтальная линия с ответвлением вверх посередине (┴)
Правый нижний угол (┘)
procedure ReportFinish(CancelHandle: THandle); virtual;
Дескриптор события для отмены операции
Уведомление об окончании отображения текущего отчета.
Это последняя команды визуализации при отображении текущего отчета.
procedure ReportFinishPage(CancelHandle: THandle); virtual;
Дескриптор события для отмены операции
Уведомление об окончании отображения текущей страницы отчета.
Это последняя команды визуализации для текущей страницы отчета.
procedure ReportItalic(Enabled: Boolean; CancelHandle: THandle); virtual;
Включено / выключено
Дескриптор события для отмены операции
Включить / выключить отображение текста курсивом.
procedure ReportSimpleMessage(InputParams: TReportInputParams; OutputParams: TReportOutputParams; MessageText: String; CancelHandle: THandle); virtual;
Входные параметры
Выходные параметры
Текст отчета в виде строки
Дескриптор события для отмены операции
Метод вызывается в конце отображения отчета, после всех команд визуализации, если значение свойства SimpleMessageMode отличается от rsmmNone.
procedure ReportStart(CancelHandle: THandle); virtual;
Дескриптор события для отмены операции
Уведомление о начале отображения нового отчета.
Это первая команда визуализации при отображении нового отчета.
procedure ReportStartPage(CancelHandle: THandle); virtual;
Дескриптор события для отмены операции
Уведомление о начале отображения новой страницы отчета.
Это первая команда визуализации при отображении новой страницы отчета.
procedure ReportText(Text: String; CancelHandle: THandle); virtual;
Текст
Дескриптор события для отмены операции
Отобразить текст.
procedure ReportTextLn(Text: String; CancelHandle: THandle); virtual;
Текст
Дескриптор события для отмены операции
Отобразить текст с переводом строки.