Средства разработки приложений

Crystal Reports Print Engine API


Модуль Crystal Reports Print Engine API предназначен для доступа к отчетам из приложений Windows. Доступ реализован через вызовы функций CRPE.DLL / CRPE32.DLL.

Первый шаг к использованию функций - их объявление. Функции могут быть объявлены как глобально, так и локально внутри использующей их секции кода. Каждая функция может быть объявлена отдельно, но имеется и возможность объявления всех функций сразу. Например, функция PEStartPrintJob может быть объявлена в Visual Basic как: Declare Function PEStartPrintJob Lib "CRPE.DLL" (ByVal printJob As Integer, ByVal waitUntilDone As Integer) As Integer

Для объявления всех функций сразу необходимо воспользоваться файлами заголовков, входящих в состав Crystal Reports. Например, для Visual Basic имя такого файла - GLOBAL.BAS, для С - CRPE.H.

После объявления функций для начала работы с отчетом необходимо вызвать функцию PEOpenEngine, которая возвращает значение TRUE (1), если вызов прошел успешно, либо FALSE(0), если CRPE.DLL / CRPE32.DLL загрузить не удалось. Функция PEOpenEngine не имеет параметров и служит только для обработки в программном коде факта успешного подключения Print Engine.

Для печати отчета используется функция PEPrintReport. Синтаксис функции приведен ниже: PEPrintReport("reportName", toPrinter, toWindow, "windowTitle", leftCoordinate, topCoordinate, windowWidth, windowHeight, windowStyle, parentWindow)

где:

  • reportName - полное имя (включая путь) отчета. Можно использовать строковую переменную.
  • toPrinter - TRUE (1), если отчет выводится на принтер и FALSE(0), если в окно Windows. Для выбора принтера следует использовать функцию PESelectPrinter.
  • toWindow - если значение TRUE (1), отчет выводится в окно предварительного просмотра. При этом toPrinter должен быть равен 0.
  • windowTitle - заголовок отчета в окне просмотра. Можно использовать строковую переменную.
  • leftCoordinate - левая координата окна просмотра.
  • topCoordinate -верхняя координата окна просмотра.
  • windowWidth - ширина окна просмотра в пикселах.
  • windowHeight - высота окна просмотра в пикселах.
  • windowStyle - установка стиля (как определено в "Windows.h").
  • parentWindow - указатель родительского окна.
    Например, если два последних параметра равны 0, Crystal Reports использует следующий стиль: (WS_VISIBLE | WS_THICKFRAME | WS_SYSMENU | WS_MAXIMIZEBOX | WS_MINIMIZEBOX)
Функции Report Engine позволяют не только просматривать отчет в окне приложения, но и управлять некоторыми опциями отчета. Например, можно изменить порядок сортировки данных отчета, модифицировать формулы выборки и группировки, модифицировать формулы отчета и т.д. Прежде чем использовать функции, управляющие опциями отчета, необходимо вызвать шесть основных функций:
  1. PEOpenEngine - начало работы с Print Engine (загрузка CRPE.DLL/ CRPE32.DLL).
  2. PEOpenPrintJob - подготовка процесса печати. Возвращаемое значение функции - указатель процесса печати, который будет использован другими функциями Print Engine.
  3. PEOutputToPrinter , PEOutputToWindow или PEExportTo - подготовка вывода отчета на принтер, в окно просмотра или экспорта отчета соответственно.
  4. PEStartPrintJob - запуск печати.
  5. PEClosePrintJob - закрытие сеанса печати.
  6. PECloseEngine - закрытие сеанса работы Print Engine (CRPE.DLL / CRPE32.DLL выгружается).
Совместно с обязательным набором из шести функций можно использовать другие функции управления отчетом. В качестве примера можно рассмотреть функцию, устанавливающую формулу выборки - PESetSelectionFormula. Ее синтаксис: PESetSelectionFormula (Print Job Handle, Formula String), где Print Job Handle - указатель процесса печати, Formula String - текст формулы Crystal Reports. Всего Crystal Reports 6.0 содержит 125 функций Print Engine - функции для управления данными, процессами печати, выводом в окно просмотра, принтером, экспортом, функции управления сортировкой , выборкой и группировкой, управлением форматом печати и т.д. При помощи функций Print Engine можно просматривать отчет, менять его параметры, но нельзя менять дизайн отчета. Это утверждение относится к любым приложениям, написанным на любом языке программирования.

Содержание раздела