Delphi-PRAXiS

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 Quickreport ohne Datenbank (https://www.delphipraxis.net/90322-quickreport-ohne-datenbank.html)

alefor19 15. Apr 2007 13:54


Quickreport ohne Datenbank
 
Hallöche also ich schreibe an einem Programm, meine berühmte billig Datenbank und ich wollte mal Fragen ob einer mir sagen kann wie ich die daten aus der listview in den Report (Also in TQRLabel) bringen kann Habe schonein Onneeddata Ereignis erzeugt aber wie komm ich dann weiter was muss ich dann machen ?? Kann mir da vieleicht mal einer helfen ?

mkinzler 15. Apr 2007 13:56

Re: Quickreport ohne Datenbank
 
Vielleicht wäre die Verwendung eine Memory-dDtaSets eien Option

alefor19 15. Apr 2007 13:59

Re: Quickreport ohne Datenbank
 
Kannste du das mal bitte näher erklären bin eigentlich ein n00b in sowas...

mkinzler 15. Apr 2007 14:02

Re: Quickreport ohne Datenbank
 
Es gibt verschiedene Komponenten (z.B. JvMemDataSet oder kbMemTable), welche eine Dataset nachbilden, die Daten aber nicht aus einer datenbank stammen, sondern im Speicher stehen

alefor19 15. Apr 2007 14:10

Re: Quickreport ohne Datenbank
 
Das klingt Interesant und in diese Komponente kann ich dann die listview einlesen lassen und über Datasource im Quickreport anzeigen lassen?

mkinzler 15. Apr 2007 14:11

Re: Quickreport ohne Datenbank
 
Über eine DataSource

Jelly 15. Apr 2007 14:12

Re: Quickreport ohne Datenbank
 
Eine eigentlich sehr interessante Frage von alefor19. Er bezieht sich ohne Zweifel auf diesen Beitrag.
Im Prinzip geht es doch darum, Daten die in irgendwelchen Listen existieren (TListView, TObjectList, TList, array of irgendwas) an Reportgeneratoren zu übergeben. Diese haben aber allesamt gemeinsam, dass sie nur mit TDataset ihre Daten herholen.

Deshalb würd mich auch brennend eine Lösung interessieren. Ich arbeite gerne intern mit irgendwelchen Listen. Und diese müsste man nun elegant in ein Dataset transferieren können um die Berichterstellung zu ermöglichen.

alefor19 15. Apr 2007 14:16

Re: Quickreport ohne Datenbank
 
Ja genau bezieht sich auf dieses Projekt und ich habe noch nirgends einen vergleichbaren ansatz gefunden wie hier grade mal sehen ob das so klappt aber wer noch mehr weiß immer nur her damit man kann nie genug wissen

alefor19 15. Apr 2007 17:10

Re: Quickreport ohne Datenbank
 
Weiß keiner mehr etwas zu den Quickreports wie ich das OnNeedData ergeignis erstellen muss was da rein kommt bin wirklich ratlos .....Hilfe.....

alefor19 15. Apr 2007 17:45

Re: Quickreport ohne Datenbank
 
Bis jetzt habe ich das Hinbekommen kann mir einer sagen was ich falsch mache

Delphi-Quellcode:
procedure TQuickReport2.QuickRepNeedData(Sender: TObject;
  var MoreData: Boolean);
begin
Moredata:=True;
end;

procedure TQuickReport2.QRLabel12Print(sender: TObject; var Value: String);
begin
QRLabel12.Caption:=Form1.ListView1.Column[0];
end;
Bitte !!!!!!!!!!!!!!!!!

ConstantGardener 15. Apr 2007 18:45

Re: Quickreport ohne Datenbank
 
Hallo alefor19,

in NeedData würde ich einen Zähler mitlaufen lassen und vergleichen ob er die Anzahl der Items im ListView erreicht hat. Wenn nicht dann Moredata:=true. Also etwa so.

Delphi-Quellcode:

procedure TQuickReport2.QuickRepBeforePrint (Sender: TObject);
begin
 z:=0;
end;

procedure TQuickReport2.QuickRepNeedData(Sender: TObject; var MoreData: Boolean);
begin
 Moredata:=z<Form1.ListView1.items.count;
 inc (z);
end;

procedure TQuickReport2.QRLabel12Print(sender: TObject; var Value: String);
begin
 Value:=Form1.ListView1.Column[z];
end;
...hab ich jetzt eben im Board zusammengeschrieben, sollte aber in etwa funktionieren. Das ganze geht natürlich auch sehr gut um damit Stringgrids, Stringlisten usw. auszudrucken. Der Anwender bekommt einen einheitliche GUI (Vorschau usw.) für alle Reports. Egal ob direkt aus der Datenbank oder aus Berechnungen usw.

omata 15. Apr 2007 19:02

Re: Quickreport ohne Datenbank
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo alefor19,

schau dir mal das QRStringBand an.

Und im Anhang auch mal ein Beispiel...

Gruss
Thorsten

ConstantGardener 15. Apr 2007 19:15

Re: Quickreport ohne Datenbank
 
Hallo allefor19,

ich hatte dich da scheinbar etwas falsch verstanden. Du musst für jede Column ein QRLabel benutzen und dort dann die Items-Werte einfügen.

Delphi-Quellcode:
procedure TQuickReport2.QuickRepBeforePrint (Sender: TObject);
begin
 z:=0;
end;

procedure TQuickReport2.QuickRepNeedData(Sender: TObject; var MoreData: Boolean);
begin
 Moredata:=z<Form1.ListView1.items.count;
 inc (z);
end;

procedure TQuickReport2.QRLabel12Print(sender: TObject; var Value: String);
begin
 Value:=Form1.ListView1.Items.Item[z].caption;
end;
... :wall: sorry mit ListView hab ichs nicht so. VALUE ist vom Typ String, deshalb muß noch CAPTION hinter das ITEMS.ITEM[z].

alefor19 15. Apr 2007 19:19

Re: Quickreport ohne Datenbank
 
Hab ich jetzt mal so gemacht erst mal für eine Column aber er zeigt mir bei
Delphi-Quellcode:
Value:=Form1.Listview1.Column[z];
einen Fehler an
Zitat:

[Fehler] Unit2.pas(72): Inkompatible Typen: 'String' und 'TListColumn'
und das versteh ich jetzt nicht...


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