Zitat von
merlin17:
Christof,
Code:
procedure TRvPreview.DruckenBtn(Sender: TObject);
var
DoPrint: boolean;
I1: integer;
ForceCopies: integer;
begin
if soAllowPrintFromPreview in ReportSystem.SystemOptions then begin
RvRenderPrinter.NDRStream := RvRenderPreview.NDRStream;
RvRenderPrinter.Pages := RvRenderPreview.Pages;
if ssAllowPreviewSetup in ReportSystem.SystemSetups then begin
with TRpSetupForm.Create(self) do try
PreviewSetup := true;
ReportSystem := Self.ReportSystem;
FilePrinter := RvRenderPrinter;
DoPrint := (ShowModal = mrOK);
RvRenderPrinter.IgnoreFileSettings := true;
finally
Free;
end; { with }
end else begin
DoPrint := true;
end; { else }
if DoPrint then begin
if (RvRenderPrinter.MaxCopies <= 1) and (RvRenderPrinter.Copies > 1) then begin
ForceCopies := RvRenderPrinter.Copies;
RvRenderPrinter.Copies := 1;
end else begin
ForceCopies := 1;
end; { else }
for I1 := 1 to ForceCopies do begin
if Assigned(RvRenderPrinter.NDRStream) then begin
RvRenderPrinter.Render(RvRenderPrinter.NDRStream);
end else begin
RvRenderPrinter.Render(InputStream);
end; { else }
end; { for }
AfterPreviewPrintEvent;
RvRenderPrinter.NDRStream := nil
end; { if }
end; { if }
SetButtonState;
end;
man sollte aber das NDR.System mit den anderen Engines verstanden haben, um den internen Ablauf von Rave zu verstehen...
dann gehen dinge, die sind absolut toll, z.B. streaming der reports über Http/
soap etc.etc.;
ist am Anfang aber heavy, gebe ich zu (vor allem in der be-Version on Source...)
thomas, TeamNevrona
Vielen Dank für die ausführliche Antwort.
Wo kommt den der Code rein auf meinem Druck-Button auf meinem Preview Form?
Wenn ich das tue bekomme ich zwei Fehlermedlungen AferPreviewPrintEvent und SetButtonState kennt er nicht!
Gruß
Christof