![]() |
DBGrid Drucken ?!
Hallo
Ein DBGrid kann ich nicht so ohne weiteres druckten, so weit ich weis! Also würde ich gerne wissen wie man den Inhalt der Tabelle, die hinter dem dbGrid steckt druckt ? Gruß David |
AW: DBGrid Drucken ?!
Streng genommen kann man ein DBGrid schon eher drucken als die zugrunde liegende Tabelle,
denn beim DBGrid ist die Interpretation der Daten aus der Tabelle für die Anzeige schon erfolgt. Somit kann man jetzt das DBGrid Reihe für Reihe, Spalte für Spalte nehmen und auf einen PrinterCanvas übertragen. |
AW: DBGrid Drucken ?!
Noch besser geht es über ein Reporting-Tool ( FastReport, RAVE, usw. bei Delphi)
|
AW: DBGrid Drucken ?!
Zitat:
Ein Report ist eine eigene und unabhängige Interpretation der Daten (die völlig anders sein kann). Es hängt einfach davon ab, ob dem Anwender nun genau der Inhalt vom Grid (quasi wie ein Screenshot) ausgegeben werden soll oder eben ein entsprechender Report auf Basis der angezeigten Datensätze im DBGrid. |
AW: DBGrid Drucken ?!
z.B. DevExpress hat eine Printing-Engine, der man auch VCL-Controls (vorwiegend Grids) direkt zum Drucken geben kann.
Man kann das Ganze theoretisch auch wie ein normales Reporting-Tool nutzen. Das Control wird dabei auch soweit vergrößert, daß alle Daten sichtbar sind und das Ding paßt bei Seitenwechseln auf, daß keine Spalten zerteilt werden usw. Hat eigentlich den Vorteil, daß dann die ausgedruckte Tabelle genauso aufgebaut ist, wie das Grid, also Spaltenbreiten, Gruppierungen, Sortierungen, Header, Footer ... alles eigentlich |
AW: DBGrid Drucken ?!
Ein Report auf Basis der angezeigten Datensätze im DBGrid würde es auch schon tun ! :wink:
|
AW: DBGrid Drucken ?!
Zitat:
Über die SuFu findest du eine Menge zum Thema ![]() |
AW: DBGrid Drucken ?!
Schon gesehen aber da wir überall nur TStringGrid beschreiben und ich haben ein DBGrid
|
AW: DBGrid Drucken ?!
Zitat:
|
AW: DBGrid Drucken ?!
Ich habe das ding mal auf DBGrid geändert
Code:
und folgende Sachen macht er dann nicht mehr :
procedure PrintGrid(sGrid: TDBGrid; 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; procedure TForm1.BtnDruckenClick(Sender: TObject); begin PrintGrid(DBGrid1, 'Print Stringgrid'); end; ColCount ColWidths Cells RowCount |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:33 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 by Thomas Breitkreuz