Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Tabelle und Abfragen drucken (https://www.delphipraxis.net/144954-tabelle-und-abfragen-drucken.html)

falco953 20. Dez 2009 17:03

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

Perlsau 21. Dez 2009 01:31

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 ...

hoika 21. Dez 2009 07:43

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

Perlsau 21. Dez 2009 12:57

Re: Tabelle und Abfragen drucken
 
Zitat:

Zitat von hoika
mit Quickreport ist das auch so ohne weiteres nicht möglich.
Für sowas nehme ich List&Label, kostet aber einen Haufen Geld.

Mit Rave-Report hab ich bereits Tabellen drucken lassen, wie du beim Testen meiner kommerziellen Anwendung PC-Heil-Waffenbuch (www.pcheil.de) erkennen kannst. Das war ohne weiteres möglich. Wär ja ein schlechtes Report-Tool, wenn du keine Tabellen damit drucken könntest. Allerdings muß man sich in Report-Generatoren immer erst einarbeiten, um z.B. zu verstehen, was Datenbänder, Regionen, Data Views usw. sind.

wendelin 15. Jul 2011 17:47

AW: Tabelle und Abfragen drucken
 
Hallo Falco953,

durch Zufall habe ich vor einiger Zeit unter http://www.delphi3000.com/articles/article_2398.asp?SK= ein ausgezeichnetes Snippet
(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 00:07 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