![]() |
Datenbank: Datenbankoberfläche • Zugriff über: Alias
Tabelle und Abfragen drucken
Hallo,
sorry, aber ich scuhe jetzt schon seit 2 Stunden nach einer Lösung und finde einfach keine die ich verstehe :) Meine Delphi Kenntnisse sind nicht schlecht, aber ich bin kein Profi. Ich habe einen Datenbank, mit dieser Datenbankoberfläche erstellt, auf die ich per Alias zugreife. Nun möchte ich Tabellen davon per Delphi Programm ausdrucken. Ich möchte einfach dass wenn ich auf den Button auf dem Formular klicke dass er mir dann eine Tabelle ausdruckt und unten drunter eine Abfrage (also 2 DBGrids). Quickreport und Rave hab ich schon mal ausprobiert, aber nicth verstanden und auch nichts damit geschaft. Ihr seit meine letzte Hoffnung !! Wer kann mir sagen wie das geht???? Vielen Dank und noch einen schönen Sonntag Abend Falco953 |
Re: Tabelle und Abfragen drucken
Du kannst dein DBGrid nicht einfach so ausdrucken. Hol dir die Daten aus deiner Datenbank und plaziere sie meinetwegen auf einem RTF.
Für Rave liest du am besten erst mal die Anleitung. Ohne Fleiß kein Preis, und ohne Übung kein Können. Wonach du zwei Stunden ohne Resultat recherchiert hast, sind Grundkenntnisse in der Datenbankprogrammierung. Für komplexere Zusammenhänge (z.B. SQL-Fehler) recherchiere ich auch schon mal 5 Stunden oder einen ganzen Tag. Googeln will auch gelernt sein ... |
Re: Tabelle und Abfragen drucken
Hallo,
mit Quickreport ist das auch so ohne weiteres nicht möglich. Für sowas nehme ich List&Label, kostet aber einen Haufen Geld. Heiko |
Re: Tabelle und Abfragen drucken
Zitat:
![]() |
AW: Tabelle und Abfragen drucken
Hallo Falco953,
durch Zufall habe ich vor einiger Zeit unter ![]() (D3 oder höher & QRep.3.0 oder > ?) gefunden. Autor ist R.R.Aguilo. Es waren einige Fehler drin, die ich verbessert habe. Sind gekennzeichnet. Ich habe dafür ein Programm geschrieben. (D7-QR3-BDE-Paradox) Wenn Du interesse hast schicke ich es Dir oder stelle es in D.-Praxis ! Das Schöne daran ist, dass Du mit EINEM ! Report-Formular beliebige Ergebnisse aus beliebigen Tables (mit SQL und dargestellt im DBGrid) mit QRPrewiew anzeigen und ausdrucken kannst. Vielleicht hilft es Dir weiter ? Wendelin ************************************************** ******************* Orginal von R.R.Aquilo --> First make a new form, name it as TGridReport and drop a TQuickRep on it. Rename you QuickRep to GridRep. Then make a Preview that receives a DBGrid as parameter, just like this:
Delphi-Quellcode:
procedure TGridReport.Preview(Grid: TDBGrid);
var i, CurrentLeft, CurrentTop : integer; BMark: TBookmark; begin GridRep.Dataset:=Grid.DataSource.DataSet; if not GridRep.Bands.HasColumnHeader then GridRep.Bands.HasColumnHeader:=true; if not GridRep.Bands.HasDetail then GridRep.Bands.HasDetail:=true; GridRep.Bands.ColumnHeaderBand.Height:=Abs(Grid.TitleFont.Height) + 10; GridRep.Bands.DetailBand.Height:=Abs(Grid.Font.Height) + 10; CurrentLeft := 12; CurrentTop := 6; {Record where the user stopped in the DBGrid} BMark:=Grid.DataSource.DataSet.GetBookmark; {Don't let the grid flicker while the report is running} Grid.DataSource.DataSet.DisableControls; try for i:=0 to Grid.FieldCount - 1 do begin if (CurrentLeft + Canvas.TextWidth(Grid.Columns[i].Title.Caption)) > (GridRep.Bands.ColumnHeaderBand.Width) then begin CurrentLeft := 12; CurrentTop := CurrentTop + Canvas.TextHeight('A') + 6; GridRep.Bands.ColumnHeaderBand.Height := GridRep.Bands.ColumnHeaderBand.Height + (Canvas.TextHeight('A') + 10); GridRep.Bands.DetailBand.Height := GridRep.Bands.DetailBand.Height + (Canvas.TextHeight('A') + 10); end; {Create Header with QRLabels} with TQRLabel.Create(GridRep.Bands.ColumnHeaderBand) do begin Parent := GridRep.Bands.ColumnHeaderBand; Color := GridRep.Bands.ColumnHeaderBand.Color; Left := CurrentLeft; Top := CurrentTop; Caption:=Grid.Columns[i].Title.Caption; end; {Create Detail with QRDBText} with TQRDbText.Create(GridRep.Bands.DetailBand) do begin Parent := GridRep.Bands.DetailBand; Color := GridRep.Bands.DetailBand.Color; Left := CurrentLeft; Top := CurrentTop; Alignment:=Grid.Columns[i].Alignment; AutoSize:=false; AutoStretch:=true; Width:=Grid.Columns[i].Width; Dataset:=GridRep.Dataset; DataField:=Grid.Fields[i].FieldName; CurrentLeft:=CurrentLeft + (Grid.Columns[i].Width) + 15; end; end; lblPage.Left := bdTitle.Width - lblPage.Width - 10; lblDate.Left := bdTitle.Width - lblDate.Width - 10; {After all, call the QuickRep preview method} GridRep.PreviewModal; {or Preview if you prefer} finally with Grid.DataSource.DataSet do begin GotoBookmark(BMark); FreeBookmark(BMark); EnableControls; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 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