![]() |
oben in der Komponentenleiste direkt zwischen "Datensteuerung" und "Dialog" (bei mir zumindest ist das "QReport")
|
Liste der Anhänge anzeigen (Anzahl: 1)
Also ich hab keine QReports in meinen Kompos. Wie komm ich denn da sonst noch ran??
|
Hallo buyden,
um Rave zu fördern, hat Borland den Quickreport "versteckt". Um ihn sichtbar zu machen, muss das Paket dclqrt70.bpl, das in Verzeichnis .../Delphi7/bin/ steht, installiert werden. (Komponente installieren und die o.g. auswählen.) |
Da lassen sich doch aber nur .pas dateien installieren wenn ich über New Package gehe.
|
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo buyden,
du musst diese Borland Package Library als neues Package hinzufügen: Guckst du Bild und klickst du Hinzufügen :mrgreen: |
Got it!! :dancer2: Man muss nem Dummen eben auf die Sprünge helfen. :roll:
Ich hab jetzt nen QReport angelegt und das Label draufgezogen. Die Scrollbars hab ich auch. Bereit für den nächsten Schritt. |
Hallo buyden,
also weiter gehts: Jetzt, wo der erste Bericht schon fertig ist, passiert folgendes. Wenn der Bericht ausgeführt wird, teilt er dem Programm mit, dass er Datenbenötigt. Dazu löst er das Event NeedData aus. Du musst jetzt eine Methode für OnNeedData schreiben. Ich gehe zur Verallgemeinerung davon aus, dass das Array außerhalb von Form1 nicht sichtbar ist, weil es irgendwo lokal oder im privat Bereich deklariert worden sein kann. Deshalb stellt Form1 eine öffentliche Methode zur Verfügung, die Daten auf Anfrage zur Verfügung stellt.
Delphi-Quellcode:
GetNextLine liefert über den Parameter Zeile die nächste auszugebene Zeile aus und meldet als Ertgebnis zurück, ob noch Daten zur Verfügung stehen.
type
TForm1 = class(TForm) ... private { Private-Deklarationen } myArray : array [1..5] of String; public { Public-Deklarationen } AktZeile: Integer; function GetNextLine(var zeile: String): Boolean; end; So sieht die Funktion aus:
Delphi-Quellcode:
Auf Knopfdruck wird der Report ausgeführt:
function TForm1.GetNextLine(var zeile: String): Boolean;
begin Result := (AktZeile <= 5); if Aktzeile <= 5 then begin zeile := myArray[AktZeile]; Inc(AktZeile) end; end;
Delphi-Quellcode:
In Form2 nimmst du Form1 in der implementation uses Anweisung auf (und umgekehrt Form2 in Form1)
procedure TForm1.BitBtn1Click(Sender: TObject);
var i : Integer; begin { Testeinträge erzeugen } for i := 1 to 5 do myArray[i] := 'Das ist der '+IntToStr(i) +'-te Testeintrag für den Quickreport Test.'; AktZeile := 1; Form2.Quickrep1.Preview; end; Jetzt noch die OnNeddData Methode in Form2:
Delphi-Quellcode:
Und feddich :mrgreen:
procedure TForm2.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
var zeile : String; begin MoreData := Form1.GetNextLine(zeile); if MoreData then qrZeile.Caption := zeile; end; |
Hallo buyden,
wenn dir diese Lösung nicht gefällt, oder dich einfach mal der Einsatz des Rave Reoprts interessiert, könnte ich dir auch das mal zeigen. Interesse? [ ] Ja sicher [ ] Nerv mich nicht [ ] Ey man, es ist Ostern, raffst du das nicht [ ] Rave, watt is dat denn [ ] all of the above [ ] mir doch egal |
Bin zwar nicht buyden.... aber
[x] Rave, watt is dat denn |
Hallo Sharky, der Osterhai,
Rave Report ist ein Report Builder, ähnlich wie Quickreport. Mit Delphi 7 Professional (und darüber) liefert Borland zusätzlich zum Quickreport diesen neuen Reportgenerator aus. Die alten Quickreports können nicht automatisch übernommen werden, obwohl es bald so etwas wie eine automatische Konvertierung geben soll. Ich hab bisher nur einen einzigen Report mit Rave erstellt, macht aber (nach download des ersten Updates) einen ganz guten Eindruck. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:06 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-2025 by Thomas Breitkreuz