Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Stringgrid im Quickrep darstellen (https://www.delphipraxis.net/81450-stringgrid-im-quickrep-darstellen.html)

Hansa 28. Nov 2006 00:21

Re: Stringgrid im Quickrep darstellen
 
Zitat:

Zitat von capo
...irgendwie hoffe ich das es auch ohne TDataset geht.

Wenn das Dein Ernst ist, dann erübrigen sich alle anderen Aussagen. 8)

Steven2 28. Nov 2006 00:50

Re: Stringgrid im Quickrep darstellen
 
Das muss doch auch anders gehen, ich kann dir da aber auch nicht weiter helfen.

mkinzler 28. Nov 2006 06:02

Re: Stringgrid im Quickrep darstellen
 
Wen du die Einarbeitung in Datenbanken scheust, mußt du halt den komplizierteren für dich einfacheren Weg gehen und das Grid zur Laufzeit in QR erzeugen.

alzaimar 28. Nov 2006 06:56

Re: Stringgrid im Quickrep darstellen
 
Also ich habe lange nicht mit QReport gearbeitet, aber ein DBGrid kann das auch nicht so ohne Weiteres anzeigen, oder?
Soweit ich weiss, muss man doch ein Master-Band erstellen und für jedes Feld ein TQRDBText in das Band reinbepseln.

Meine Idee (mit Funktionsgarantie :zwinker:): Dazu benötigst Du die Explode-Funktion (hier aus dem Forum), das eine CSV-Zeile in ein Array Of String überführt.
1. Verwende ein TStringsBand: In die Items-Eigenschaft kommt einfach die CSV-Datei.
1.a Im OnBeforePrint-Ereignis des TStringsBands rufst Du Explode auf und erzeugst so ein Array Of String mit den einzelnen Zellenwerten.
Delphi-Quellcode:
Procedure TForm1.QRStringsBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean);
Begin
// In QRStringsBand1 steht der aktuelle Datensatz im CSV-Format.
  Explode (QRStringsBand1.Item, MyFieldArray);
// Jetzt stehen im MyFieldArray die Zellenwerte der aktuellen Zeile.
End;
2. Für jede Spalte erzeugst Du zur Laufzeit eine TQRLabel-Komponente, die Position kannst Du anhand der String-Grid-Spaltenbreiten ausrechnen. In die Tag-Eigenschaft kommt die Spaltennummer.
2.a Im OnBeforePrint-Ereignis der TQRLabel-Komponenten schreibst Du:
Delphi-Quellcode:
 procedure TForm1.QRLabel2Print(sender: TObject; var Value: String);
Begin
 Value := MyExplodedFields[ TQRLabel(Sender).Tag] // .Tag ist ja die Spaltennummer
End;
Et voilá. Fertig ist der dynamische Stringgrid-Ausdruck-O-Mat.

capo 28. Nov 2006 16:55

Re: Stringgrid im Quickrep darstellen
 
Hallo alzaimar,
vielen Dank, ich guck mir das an und geb dann Rückmeldung :)

gruss capo


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 Uhr.
Seite 2 von 2     12   

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-2025 by Thomas Breitkreuz