3.3.2. Построение отчета с помощью средств паскаль-операций

3.3.2.1. Стандартные средства паскаль-операций

Для построения отчёта из паскаль-операции необходимо вызвать один из следующих методов:

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

Название параметра Описание
ShowPrintDialog Управляет диалогом выбора принтера перед выводом на печать. Если параметр имеет значение «0», диалог выбора принтера отображаться не будет. Печать будет произведена на принтере по умолчанию
PrinterName Определяет принтер, на котором следует печатать
CopiesCount Параметр управляет количеством копий отчёта, которые будут напечатаны. Этот параметр имеет смысл только при печати без просмотра (режим rvmPrint)
Collate Разобрать по копиям. (по умолчанию = 1). При печати нескольких копий многостраничного документа сначала будут напечатаны все страницы первого экземпляра потом второго и т.д.

3.3.2.2. Расширенные средства паскаль-операций

При желании заняться шаманством, или, если вам очень нужно указать источник шаблона самостоятельно (это может быть как выборка с полем Blob, в котором находится шаблон, так и файл на жестком диске), можно использовать метод:

CreateReportForm

<Sql>
<GetVer>
[OUT idPVer, sMasterSelection, sMastSelRepresent]
BEGIN
  idPVer:=RPT_REPORTVERSIONAPI.GetReportVersion('TestReport2',:sMasterSelection, :sMastSelRepresent);
END;
</GetVer>
</Sql>

SQL блок возвращает ID версии отчёта, системное имя и отображение главной выборки мастера отчётов, по системному имени отчёта и дате (если дата не задана, берётся системная дата). Если вы не используете мастер, просто не используйте вернувшиеся значения: sMasterSelection и sMastSelRepresent

<PASCAL>
{Если шаблон отчёта хранится в базе данных, то необходимо открыть выборку, которая вернёт этот шаблон. Для этого необходимо найти ID актуальной версии отчёта}
V:=ExecSQLEX('GetVer','idpVer;sMasterSelection;sMastSelRepresent',[ftFloat,ftString,ftString],[0,,]);
C:=CreateSelection; C.EntityName:='RPT_CurrentReportVersion';
C.Representation:='List'; C.AddVar('idpReportVer#',V[0],ftFloat);
C.Master:=Selection; C.Active:=true; {Вызываем генерацию отчёта}
CreateReportForm(C, 'blobDocument', C.GetVar('sDocType'), , rvmShow, ,fcfModal);
</PASCAL>

Если шаблон отчёта хранится в базе данных, то необходимо открыть выборку, которая вернёт этот шаблон. Для этого необходимо найти ID актуальной версии отчёта