Programming: Delphi


Иллюстрированный самоучитель по Delphi 7 для профессионалов



Компонент TRvNDRWriter



Компонент 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;

А вот так можно нарисовать прямоугольник и разместить в нем изображение:

    with RvNDRWriterl do

    begin

    Start;

    Units := unMM;

    SetBrush(clBlue, bsSolid, nil);

    Rectangle (5.0, 35.0, 65.0, 95.0);

    Bitmap := TBitmap.Create;

    Bitmap.LoadFromFile('factory.BMP');

    PrintBitmapRect(10.0, 40.0, 60.0, 90.0, Bitmap);

    Bitmap.Free;

    Finish;

    end;

В данном фрагменте кода метод

    procedure PrintBitmapRect(XI,Y1,X2,Y2: double;

     Bitmap: TBitmap);

отображает растровое изображение Bitmap в прямоугольнике, обеспечивая его масштабирование в соответствии с размерами прямоугольника.

Внимание

    Компонент TRvNDRWriter имеет свойство canvas (см. гл. 10), но использовать его нельзя — любые операции с канвой не возымеют действия и ваши труды не будут сохранены.

При использовании пары методов start и Finish не нужно предпринимать никаких дополнительных усилий для сохранения отчета — это будет сделано Методом Finish.

Множество других свойств и методов компонента (мы не будем останавливаться на них специально, т. к. их использование достаточно прозрачно) обеспечивают оформление отчета, управление страницами, настройку принтера и т. д.




Назад | Оглавление | Вперёд




При перепечатке любого материала с сайта, видимая ссылка на источник www.warayg.narod.ru и все имена, ссылки авторов обязательны.

© 2005
 

Hosted by uCoz