AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Tabelle und Abfragen drucken
Thema durchsuchen
Ansicht
Themen-Optionen

Tabelle und Abfragen drucken

Ein Thema von falco953 · begonnen am 20. Dez 2009 · letzter Beitrag vom 15. Jul 2011
Antwort Antwort
falco953

Registriert seit: 10. Sep 2008
13 Beiträge
 
#1

Tabelle und Abfragen drucken

  Alt 20. Dez 2009, 18:03
Datenbank: Datenbankoberfläche • Zugriff über: Alias
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
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

Re: Tabelle und Abfragen drucken

  Alt 21. Dez 2009, 02:31
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 ...
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Tabelle und Abfragen drucken

  Alt 21. Dez 2009, 08:43
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
Heiko
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#4

Re: Tabelle und Abfragen drucken

  Alt 21. Dez 2009, 13:57
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.
  Mit Zitat antworten Zitat
wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
126 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Tabelle und Abfragen drucken

  Alt 15. Jul 2011, 18:47
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;
Wolfgang

Geändert von mkinzler (15. Jul 2011 um 18:49 Uhr) Grund: Delphi-Tag eingefügt
  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 13:11 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