Watermark - multi reports..
Hi All,
I have several reports on a form, and using following function:
function TForm1.CreateWaterMark: TppDrawCommand;
var
lWaterMark: TppDrawText;
llPageHeight: Longint;
llPageWidth: Longint;
liTextWidth: Integer;
liTextHeight: Integer;
lPrinter: TppPrinter;
begin
lWaterMark := TppDrawText.Create(nil);
lWaterMark.WrappedText.Add('ReportBuilder ' + ppEdition + #153 + ' -
Demo Copy');
lWaterMark.WrappedText.Add('Version ' + ppVersion);
lWaterMark.WrappedText.Add('Digital Metaphors Corporation');
lWaterMark.WrappedText.Add('Telephone: 303.531.8032');
lWaterMark.WrappedText.Add('E-Mail: sales@digital-metaphors.com');
lWaterMark.Transparent := True;
lWaterMark.IsMemo := False;
lWaterMark.WordWrap := True;
lWaterMark.Font.Name := 'Arial';
lWaterMark.Font.Size := 18;
lWaterMark.Font.Color := clBlack;
lWaterMark.Autosize := True;
liTextWidth := 375;
liTextHeight := 150;
lPrinter := ppReport1.Printer;
llPageHeight := lPrinter.PrinterSetup.PageDef.mmPrintableHeight;
llPageWidth := lPrinter.PrinterSetup.PageDef.mmPrintableWidth;
lWaterMark.Height := ppToMMThousandths(liTextHeight, utScreenPixels,
pprtHorizontal, nil);
lWaterMark.Width := ppToMMThousandths(liTextWidth, utScreenPixels,
pprtHorizontal, nil);
lWaterMark.Top := (llPageHeight - lWaterMark.Height) div 2;
lWaterMark.Left := (llPageWidth - lWaterMark.Width ) div 2;
Result := lWaterMark;
end;
How can I change this to support multiple reports calling the report
name inside?
Thanks in advance,
Regards,
Hüseyin A.
I have several reports on a form, and using following function:
function TForm1.CreateWaterMark: TppDrawCommand;
var
lWaterMark: TppDrawText;
llPageHeight: Longint;
llPageWidth: Longint;
liTextWidth: Integer;
liTextHeight: Integer;
lPrinter: TppPrinter;
begin
lWaterMark := TppDrawText.Create(nil);
lWaterMark.WrappedText.Add('ReportBuilder ' + ppEdition + #153 + ' -
Demo Copy');
lWaterMark.WrappedText.Add('Version ' + ppVersion);
lWaterMark.WrappedText.Add('Digital Metaphors Corporation');
lWaterMark.WrappedText.Add('Telephone: 303.531.8032');
lWaterMark.WrappedText.Add('E-Mail: sales@digital-metaphors.com');
lWaterMark.Transparent := True;
lWaterMark.IsMemo := False;
lWaterMark.WordWrap := True;
lWaterMark.Font.Name := 'Arial';
lWaterMark.Font.Size := 18;
lWaterMark.Font.Color := clBlack;
lWaterMark.Autosize := True;
liTextWidth := 375;
liTextHeight := 150;
lPrinter := ppReport1.Printer;
llPageHeight := lPrinter.PrinterSetup.PageDef.mmPrintableHeight;
llPageWidth := lPrinter.PrinterSetup.PageDef.mmPrintableWidth;
lWaterMark.Height := ppToMMThousandths(liTextHeight, utScreenPixels,
pprtHorizontal, nil);
lWaterMark.Width := ppToMMThousandths(liTextWidth, utScreenPixels,
pprtHorizontal, nil);
lWaterMark.Top := (llPageHeight - lWaterMark.Height) div 2;
lWaterMark.Left := (llPageWidth - lWaterMark.Width ) div 2;
Result := lWaterMark;
end;
How can I change this to support multiple reports calling the report
name inside?
Thanks in advance,
Regards,
Hüseyin A.
This discussion has been closed.
Comments
One option is to add a TppReport parameter to the CreateWaterMark
routine (or a TppPrinter parameter).
function TForm1.CreateWaterMark(aReport: TppReport): TppDrawCommand;
...
begin
...
lPrinter := aReport.Printer;
...
end;
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
Thanks, work great
Regards,
Hüseyin A.