Компонент TRvNDRWriter предназначен для сохранения отчетов в файлах. При этом используется двоичный формат NDR.
Приемник данных определяется свойством
type
TStreamMode = (smMemory, smTempFile, smFile, smUser); property StreamMode: TStreamMode;
smMemory — для вывода данных используется поток в памяти (объект типа TMemoryStream);
smTempFile — данные сохраняются во временном файле, в папке, определенной в операционной системе для хранения временных файлов;
smFile — данные сохраняются в файле;
smUser — данные передаются в поток, заданный разработчиком.
Имя файла, в котором будет сохранен отчет, определяется свойством
property FileName: String;
А для определения потока используется свойство
property Stream: TStream;
Таким образом, если вы хотите использовать для сохранения отчета файл, перед использованием компонент настраивается, например, так:
RvNDRWriterl.StreamMode := smFile; RvNDRWriterl.FileName := ReportFilePath;
Если вы планируете использовать поток, сделайте следующим образом:
var ReportStreara: TMemoryStreain;
ReportStream := TMemoryStream.Create/try
RvNDRWriterl.StreamMode := smUser;
RvNDRWriterl.Stream := ReportStream;
finally
ReportStream.Free; end;
Но сначала этот отчет необходимо создать. Для этого используется обширный набор методов, позволяющих отображать текст и графику, создавать таблицы и заполнять их данными. Перед началом работы следует вызвать метод
procedure Start;
а по окончании создания отчета использовать метод
procedure Finish;
Например, следующий фрагмент кода создает в отчете текст с заданным положением:
with RvNDRWriterl do
begin
Start;
Units := unMM;
SetFont('Times New Roman', 14);
Bold := True;
OriginX := 0.0;
OriginY := 0.0;
GotoXY(1.0, 12.0);
Print('Заголовок ttl');
GotoXY(6.0, 18.0);
Println('Заголовок 12');
GotoXY(6.0, 24.0);
Println('Заголовок 13');
GotoXY(6.0, 30.0);
PrintIn('Заголовок #4');
Finish;
end;
А вот так можно нарисовать прямоугольник и разместить в нем изображение: