Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Wie kann ich ein TIB_Grid drucken? (https://www.delphipraxis.net/101538-wie-kann-ich-ein-tib_grid-drucken.html)

0NyX 15. Okt 2007 08:18

Datenbank: FireBird • Zugriff über: IBO applications

Wie kann ich ein TIB_Grid drucken?
 
Guten Tag liebe DP User,

ich habe nun ca. 2 Stunden damit verbracht Google durchzusuchen ob irgendwo etwas steht wie man eine TIB_Grid drucken kann, aber war leider erfolglos bzw. es hatte mir nie weitergeholfen. Deswegen wende ich mich nun an euch...

Ich würde gerne mein TIB_Grid ausrucken, doch leider hab ich keinen schimmer wie es gehen soll. Ich hatte schon von den RaveReport gehört, aber ich kam damit total nicht klar... :-( Desweiteren hatte ich versucht den Code umzuschreiben "...ein TStringGrid ausdrucken?", was aber leider auch gescheitert ist.

Ich würde mich sehr freuen wenn ihr mir Helfen könntet.

Vielen Dank im voraus!

Mit freundlichen Grüßen

RavenIV 15. Okt 2007 08:35

Re: Wie kann ich ein TIB_Grid drucken?
 
Du hast zwei Möglichkeiten:

1) Das Form mit dem Grid drauf ausdrucken mit Form.Print
2) Du benutzt einen Report-Generator (z.B. FastReport) zum Drucken.
Der FastReport kann auch direkt mit den TIB_Datasource und TIB_Query umgehen.

0NyX 15. Okt 2007 09:15

Re: Wie kann ich ein TIB_Grid drucken?
 
Zitat:

Zitat von RavenIV
Du hast zwei Möglichkeiten:

1) Das Form mit dem Grid drauf ausdrucken mit Form.Print
2) Du benutzt einen Report-Generator (z.B. FastReport) zum Drucken.
Der FastReport kann auch direkt mit den TIB_Datasource und TIB_Query umgehen.

Vielen Dank für deine rasche Antwort!

Zu 1.: Das würde nicht gut sein, da er ja dann auch alle andere mit Druckt und ich brauch ja nur das Grid.

Zu 2.: FastReport ist doch eine zusätzliche Komponete die ich mir runterladen müsste oder? (so weit ich da was bei Google gefunden habe) und diese kostet ja...

RavenIV 15. Okt 2007 09:19

Re: Wie kann ich ein TIB_Grid drucken?
 
Zitat:

Zitat von 0NyX
Zu 2.: FastReport ist doch eine zusätzliche Komponete die ich mir runterladen müsste oder? (so weit ich da was bei Google gefunden habe) und diese kostet ja...

Genau.
FastReport ist eine "Fremdkomponente".
Die kostet Geld und muss installiert werden. (ca. 249 $)
FastReport ist aber meiner Meinung nach einer der besten und mächtigsten Report-Generatoren.
Und vor allem kann er direkt an die TIB-Komponenten angebunden werden.

0NyX 15. Okt 2007 09:36

Re: Wie kann ich ein TIB_Grid drucken?
 
Zitat:

Zitat von RavenIV
Zitat:

Zitat von 0NyX
Zu 2.: FastReport ist doch eine zusätzliche Komponete die ich mir runterladen müsste oder? (so weit ich da was bei Google gefunden habe) und diese kostet ja...

Genau.
FastReport ist eine "Fremdkomponente".
Die kostet Geld und muss installiert werden. (ca. 249 $)
FastReport ist aber meiner Meinung nach einer der besten und mächtigsten Report-Generatoren.
Und vor allem kann er direkt an die TIB-Komponenten angebunden werden.

Sie scheint wirklich viele Vorteile zu haben, aber da ich nur als Hobby Programmiere und erst später was Beruflich damit machen will hab ich leider das Geld nicht für diese Komponente...

Kann man es denn auch noch anders lösen?

hoika 15. Okt 2007 09:38

Re: Wie kann ich ein TIB_Grid drucken?
 
Hallo,

FastReport hat noch einen kleinen Bruder, FreeReport. Free, wie der Name schon sagt.

Das einfachste wäre doch, aus dem TIB_Grid ein StringGrid zu bauen
und dann den Code zum Drucken des StringGrids zu benutzen ?

Delphi-Quellcode:
var
  iCol: Integer;
  iRow: Integer;

StringGrid:= TStringGrid.Create(NIL);
try
  StringGrid.ColCount:= DBGrid.DataSource.DataSet.FieldCount;
  StringGrid.RowCount:= GetRowCount+1; // +1 wegen der Überschrift

  DBGrid.DataSource.DataSet.DisableControls;
  try
    DBGrid.DataSource.DataSet.First;
    iRow:= 0;
    while not DBGrid.DataSource.DataSet.EOF do
    begin
      Inc(iRow);
      for iCol:= 0 to DBGrid.DataSource.DataSet.Fields.Count-1 do
      begin
        StringGrid.Cells[iCol,iRow]:= DBGrid.DataSource.DataSet.Fields[iCol];
      end;

      DBGrid.DataSource.DataSet.Next;
    end;
  finally
    DBGrid.DataSource.DataSet.EnableControls;
  end;

  PrintStringGrid(StringGrid);
finally
  StringGrid.Free;
end;
Das GetRowCount musst du selber schreiben
über eine Extra-Query mit

Select Count(*)

deiner eigentlichen Abfrage.


Heiko
PS: Der Code ist ungetest, den habe ich bloss mal so getippert.

mikhal 15. Okt 2007 14:04

Re: Wie kann ich ein TIB_Grid drucken?
 
Du verwendest doch Delphi 7 (Enterprise). Dann kannst du Die QuickReports verwenden (in den Demo-Verzeichnissen $DELPHI\Demos\Quickrpt steht eine Anleitung, wie die In Delphi 7 installiert werden können) oder du verwendest das mitgelieferte RAVE-Reporting.

Welches von beiden du verwendest ist deine Sache...

Grüße
Mikhal

hoika 15. Okt 2007 18:35

Re: Wie kann ich ein TIB_Grid drucken?
 
Hallo,

mit Quickreport kann man aber kein Grid drucken,
oder haben die das jetzt endlich mal drin ?


Heiko

mikhal 15. Okt 2007 18:55

Re: Wie kann ich ein TIB_Grid drucken?
 
Eine direkte Unterstützung für ein DBGrid gibt es nach wie vor nicht. Einem Grid liegt aber doch ein DataSet zu Grunde. Das kann man recht schnell zu einem Listendruck verwenden.

Grüße
Mikhal

hoika 15. Okt 2007 19:12

Re: Wie kann ich ein TIB_Grid drucken?
 
Hallo,

hatte ich vor ner Weile(>5 Jahre) auch mal gemacht,
es gab mal nen Stück Code dazu in der ToolBox (?).

Problem war, der Ausdruck klappte meistens nur bei einem Drucker.
Ich hatte damals mal nen HP3, da sah es gut aus, bei nem HP4 waren
die berechneten Abstände, also die Breiten der Wörter zu klein.
Es kam zum Überschreiben.

Ein Krampf.

Seit ich das mit Crystal Reports bzw. List&Label mache,
habe ich keinen Ärger mehr.

PS:
Nein, es lag nicht an unterschiedlichen Auflösungen
bei den Druckern, war immer 300 DPI.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:34 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