AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DBGrid Drucken ?!

Ein Thema von Davidlocke13 · begonnen am 5. Nov 2012 · letzter Beitrag vom 15. Nov 2012
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: DBGrid Drucken ?!

  Alt 5. Nov 2012, 10:21
Noch besser geht es über ein Reporting-Tool ( FastReport, RAVE, usw. bei Delphi)
Das würde ich nicht unbedingt so sehen, denn hier wird ja danach gefragt ein DBGrid zu drucken (eine Interpretation der Daten).
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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.202 Beiträge
 
Delphi 12 Athens
 
#2

AW: DBGrid Drucken ?!

  Alt 5. Nov 2012, 10:33
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 5. Nov 2012 um 10:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Davidlocke13
Davidlocke13

Registriert seit: 19. Sep 2012
Ort: MD (Sachsen-Anhalt)
166 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: DBGrid Drucken ?!

  Alt 5. Nov 2012, 10:48
Ein Report auf Basis der angezeigten Datensätze im DBGrid würde es auch schon tun !
David
ApfelsineMandarineAllesGleich
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: DBGrid Drucken ?!

  Alt 5. Nov 2012, 11:08
Ein Report auf Basis der angezeigten Datensätze im DBGrid würde es auch schon tun !
Ist ja auch mehr Aufwand, daher tut das auch "schon"

Über die SuFu findest du eine Menge zum Thema Bei Google suchendelphi grid drucken
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 5. Nov 2012 um 11:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Davidlocke13
Davidlocke13

Registriert seit: 19. Sep 2012
Ort: MD (Sachsen-Anhalt)
166 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: DBGrid Drucken ?!

  Alt 5. Nov 2012, 11:13
Schon gesehen aber da wir überall nur TStringGrid beschreiben und ich haben ein DBGrid
David
ApfelsineMandarineAllesGleich
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: DBGrid Drucken ?!

  Alt 5. Nov 2012, 11:23
Schon gesehen aber da wir überall nur TStringGrid beschreiben und ich haben ein DBGrid
Ja die sind ja auch sooo unterschiedlich
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Davidlocke13
Davidlocke13

Registriert seit: 19. Sep 2012
Ort: MD (Sachsen-Anhalt)
166 Beiträge
 
Delphi 2010 Enterprise
 
#7

AW: DBGrid Drucken ?!

  Alt 5. Nov 2012, 11:35
Ich habe das ding mal auf DBGrid geändert
Code:
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;
und folgende Sachen macht er dann nicht mehr :

ColCount
ColWidths
Cells
RowCount
David
ApfelsineMandarineAllesGleich
  Mit Zitat antworten Zitat
Benutzerbild von Davidlocke13
Davidlocke13

Registriert seit: 19. Sep 2012
Ort: MD (Sachsen-Anhalt)
166 Beiträge
 
Delphi 2010 Enterprise
 
#8

AW: DBGrid Drucken ?!

  Alt 5. Nov 2012, 11:40
in ein StringGrid kann ich keine DataSource laden
David
ApfelsineMandarineAllesGleich
  Mit Zitat antworten Zitat
Benutzerbild von Davidlocke13
Davidlocke13

Registriert seit: 19. Sep 2012
Ort: MD (Sachsen-Anhalt)
166 Beiträge
 
Delphi 2010 Enterprise
 
#9

AW: DBGrid Drucken ?!

  Alt 15. Nov 2012, 10:30
So habe das jetzt über Rave gemacht !

Man braucht: RvProject1; RvDataSetConnection1 und einen Button

im RvDataSetConnection1 gibt man das DataSet an !
öffnet dann das RvProject1 geht auf File -> New Data Object und setzt dort das RvDataSetConnection1 !
Dann geht man auf Tool -> Repot Wizards -> Simple Tabel dort wählt man das DataViwe und sagt was man davon haben will !
Dann speichert man das Rave Project ab und sagt dem Button noch das er drucken soll !
Code:
procedure TTest.BtnDruckenClick(Sender: TObject);
begin
RvProject1.Execute;
end;
David
ApfelsineMandarineAllesGleich
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz