Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Mehrmaliger Aufruf eines QRPreview (https://www.delphipraxis.net/166540-mehrmaliger-aufruf-eines-qrpreview.html)

delphinewbie 17. Feb 2012 13:24

Mehrmaliger Aufruf eines QRPreview
 
Hallo Delphi-Gemeinde,
ich möchte mir in einem Formular 'vorschau' ein eigenes Quickreportpreview basteln. Dazu habe ich neben mehreren Checkboxen und UpDown-Komponenten auch
ein QRPreview eingefügt. Der eigentliche Quickreport wird in einem anderen Formular (Form16) erzeugt. In dessen OnPreview-Ereignis habe ich dann folgenden Code:
Code:
procedure TForm16.QuickRep1Preview(Sender: TObject);
begin
vorschau.QRPreview1.QRPrinter:=TQRPrinter(Sender);
vorschau.Show;
end;
Nun soll über die verschiedenen Schalter auf dem Form 'vorschau' der Quickreport bezüglich Ränder, Position der Diagramme gestaltet werden können.
Dazu soll nach jeder Veränderung eines Eingabefeldes, Checkbox etc. die Vorschau aktualisiert werden, d.h. es kann schon mal sein, dass die Vorschau recht häufig wiederholt werden muss.
Z.Bsp. soll über UpDown1 der linke Seitenrand verändert werden:
Code:
procedure TVorschau.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
edit1.Text:=inttostr(updown1.Position);
form16.QuickRep1.Page.LeftMargin:=Strtoint(Edit1.Text);
form16.QuickRep1.Preview;
end;
Das ganze funktioniert anfangs auch, nur nach ca. 16-17-fachem Aufruf des Preview hängt sich das Programm auf.
Ich denke, dass ich irgendwo wieder etwas freigeben müßte, aber dazu steck ich wohl nicht tief genug in der Materie.
Ich hoffe, ich konnte mein Problem einigermaßen erklären, sodass ihr mir weiterhelfen könnt.
Ach ja, ich arbeite noch mit Delphi7 und Quickreport3.

Gruß,
delphinewbie

Hansa 18. Feb 2012 22:13

AW: Mehrmaliger Aufruf eines QRPreview
 
Delphi-Quellcode:
procedure TForm1.Lade (Nr : integer);
var bstr : string;
begin
  Try
** *BStr := ?? Hier aus Datei
** *qrPreview.Show;
** *qr1.Prepare;   Qr1= tquickrep
** *qr1.QRPrinter.Load(bstr);
** *qr1.QRPrinter.Preview;
**finally
** *QRPrinter.Free; // form-variable
**end;
end;

omata 19. Feb 2012 18:43

AW: Mehrmaliger Aufruf eines QRPreview
 
Siehe auch hier.

Hansa 20. Feb 2012 00:39

AW: Mehrmaliger Aufruf eines QRPreview
 
Das von mir vorher geschriebene war etwas entstellt. Zumindest geht damit nichts mit C+P und nur Bezeichner ändern. :stupid:

Das hier :
Delphi-Quellcode:
procedure TForm1.Lade (Nr : integer);
var bstr : string;
begin
  try
    bstr := (Liste.Items [Nr] as Tbstr).bstr;
    qrPreview.Show;
    qr1.Prepare;
    qr1.QRPrinter.Load(bstr);
    qr1.QRPrinter.Preview;
  finally
    QRPrinter.Free;
  end;
lief 5000 mal bis zum Abbruch.

@Obama : drücke mal so ca. 5mal auf den Button. 8-) :P

omata 20. Feb 2012 01:56

AW: Mehrmaliger Aufruf eines QRPreview
 
Zitat:

Zitat von Hansa (Beitrag 1151931)
@Obama : drücke mal so ca. 5mal auf den Button. 8-) :P

@Hansel: Danke für den Hinweis, hab es korrigiert.

Ein weiteres Beispiel ist hier zu finden.

Hansa 20. Feb 2012 03:43

AW: Mehrmaliger Aufruf eines QRPreview
 
Zitat:

Zitat von omata (Beitrag 1151935)
hab es korrigiert.

Allerdings ändert sich am Effekt nichts. Eventuell 10mal den Button drücken. Glaube 8 reicht aber. :mrgreen:

delphinewbie 20. Feb 2012 07:24

AW: Mehrmaliger Aufruf eines QRPreview
 
ups,
ich wollte aber nicht, dass ihr euch streitet..:stupid:
Also vielen Dank für eure Mühen, selbst in der Nacht, aber so richtig hilft mir das im Momment nicht.
@Hansa,wäre dein qr1 mit meinem form16.quickrep1 zu vergleichen oder mit vorschau.qrpreview1 ?
Habe meinen Code um die Free-Methode erweiter:
Code:
procedure TForm16.QuickRep1Preview(Sender: TObject);
begin
vorschau.QRPreview1.QRPrinter:=TQRPrinter(Sender);
QRPrinter.Free;
vorschau.Show;
end;
Es kommt dadurch aber noch eher zum Programmhänger.

Vielleicht mach ich mir die Sache auch zu kompliziert, aber die Herangehensweise, eine Quickreport in einem Form zu erzeugen und über die QRPreview-Komponente in einem anderen Form darzustellen, habe ich in einem Forum, evtl. sogar hier bei euch gefunden.
Die einfachste Variante wäre ja wirklich, alles in einem Form abzuhandeln, d.h. die benötigten Schalter und Eingabefelder und die Vorschau des Quickreports, incl. der Möglichkeit des Ausdruckens. Aber da weiss ich nicht, wie ich diese Vorschau durch Drücken eines Buttons auch ständig verändern könnte.
Seid ihr so nett und greift mir nochmal unter die Arme, es ist für ziemlich wichtig, das hinzukriegen.

Danke
delphinewbie

omata 20. Feb 2012 12:49

AW: Mehrmaliger Aufruf eines QRPreview
 
Mach es einfach so, wie Hansa es beschreibt, dann klappt das ja. Verwende bitte nicht meine Beispiele, danke.

delphinewbie 20. Feb 2012 13:13

AW: Mehrmaliger Aufruf eines QRPreview
 
Das würde ich ja auch gerne tun, nur verstehe ich das Ganze nicht recht und kann es dadurch auch nicht auf meine Zwecke übertragen.

Wozu dient z.B. die Variable bstr?
Was wird da als Argument 'Nr' übergeben ? Und vor allem, was soll die procedure TForm1.Lade (Nr : integer) machen ?

Hab ich da 'nen Brett vorm Kopp ?:wall:

omata 20. Feb 2012 14:40

AW: Mehrmaliger Aufruf eines QRPreview
 
Deshalb mache ich ja auch so gerne Beispiele. Aber die sind ja nun mal fehlerhaft und nicht zu gebrauchen, deshalb musst du mit den anderen Hilfestellungen vorlieb nehmen.

Viel Erfolg.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 Uhr.
Seite 1 von 3  1 23      

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