Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi dbgrid drucken (https://www.delphipraxis.net/30960-dbgrid-drucken.html)

aerotech 1. Okt 2004 18:48


dbgrid drucken
 
hi, wie kann ich den inhalt einer dbgrid ausdrucken?

HW764 1. Okt 2004 19:02

Re: dbgrid drucken
 
Delphi-Quellcode:
uses
  Printers;

procedure PrintGrid(sGrid: TStringGrid; sTitle: string);
var
  X1, X2: Integer;
  Y1, Y2: Integer;
  TmpI: Integer;
  F: Integer;
  TR: TRect;
begin
  Printer.Title := sTitle;
  Printer.BeginDoc;
  Printer.Canvas.Pen.Color := 0;
  Printer.Canvas.Font.Name := 'Times New Roman';
  Printer.Canvas.Font.Size := 12;
  Printer.Canvas.Font.Style := [fsBold, fsUnderline];
  Printer.Canvas.TextOut(0, 100, Printer.Title);
  for F := 1 to sGrid.ColCount - 1 do
  begin
    X1 := 0;
    for TmpI := 1 to (F - 1) do
      X1 := X1 + 5 * (sGrid.ColWidths[TmpI]);
    Y1 := 300;
    X2 := 0;
    for TmpI := 1 to F do
      X2 := X2 + 5 * (sGrid.ColWidths[TmpI]);
    Y2 := 450;
    TR := Rect(X1, Y1, X2 - 30, Y2);
    Printer.Canvas.Font.Style := [fsBold];
    Printer.Canvas.Font.Size := 7;
    Printer.Canvas.TextRect(TR, X1 + 50, 350, sGrid.Cells[F, 0]);
    Printer.Canvas.Font.Style := [];
    for TmpI := 1 to sGrid.RowCount - 1 do
    begin
      Y1 := 150 * TmpI + 300;
      Y2 := 150 * (TmpI + 1) + 300;
      TR := Rect(X1, Y1, X2 - 30, Y2);
      Printer.Canvas.TextRect(TR, X1 + 50, Y1 + 50, sGrid.Cells[F, TmpI]);
    end;
  end;
  Printer.EndDoc;
end;


//Examplem, Beispiel:

procedure TForm1.Button1Click(Sender: TObject);
begin
  PrintGrid(StringGrid1, 'Print Stringgrid');
end;
Gruss HW764

aerotech 1. Okt 2004 19:14

Re: dbgrid drucken
 
ist die nicht für stringgrids?

HW764 1. Okt 2004 19:25

Re: dbgrid drucken
 
Ok, aber du kannst durch anpassungen den Code ändern...

Gruss HW764

alcaeus 1. Okt 2004 19:56

Re: dbgrid drucken
 
Hi aerotech,

mit einigen kleineren Anpassungen solltest du den Code drucken können. Die beiden Grids haben TCustomGrid als übergeordnete Klasse, deshalb könnten einige Dinge gleich sein. Versuch mal, anstatt TStringGrid TDbGrid zu schreiben. Vielleicht hast du ja Glück. Garantieren kann ich allerdings nichts.

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz