Delphi-PRAXiS
Seite 2 von 3     12 3      

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 alte quick reports in bds 2006 übernehmen ohne qr zu ändern (https://www.delphipraxis.net/84884-alte-quick-reports-bds-2006-uebernehmen-ohne-qr-zu-aendern.html)

cherry 24. Jan 2007 09:51

Re: alte quick reports in bds 2006 übernehmen ohne qr zu änd
 
Zitat:

Zitat von MaBuSE
Anmerkung: Evtl. wurden fehlende Eigenschaften umbenannt oder in andere Objekte verschoben.
Dann sollte man prüfen, ob diese Eigenschaften noch sinnvoll gesetzt werden müssen.

Ich habe alle Reports geöffnet, keine fehlermeldung.
Auch beim kompillieren kein Problem.

Laufzeitfehler beim laden der Reports. Programm kann dann nicht weiter ausgeführt werden.
Der Fehler eben "Fehlende Eigenschaft: reportXY.ClientHight ...

Diese Eigenschaft ist aber für jeden einzelnen Report gesetzt.

- Zudem muss ich vielleicht erwähnen, dass ich in D7 ein Chart (Kuchen Diagramm) angezeigt hatte,
diese Komponente scheint nicht mehr vorhanden zu sein in QR 4 für BDS2006. - Ich habe dies einfach gelöscht,
momentan wäre ich schon froh wenn der Rest funzen würde.

- Auch Habe ich festgestellt, dass einige Reports in der Formularansicht nicht mehr korrekt angeordnet waren.
Diesen Fehler habe ich dann manuell behoben...

kannst du mir mir mir noch einen Tip geben, wie würdest du nun weiter vorgehen?

mikhal 24. Jan 2007 10:43

Re: alte quick reports in bds 2006 übernehmen ohne qr zu änd
 
Hallo cherry,

lösche mal alle DCU-Dateien in deinem Projektverzeichnis und erzeuge dann dein Programm neu.

Ansonsten: Mach mal einen Doppelklick auf deinen TQuickRep im Formular, dann sollte sich eigentlich ein Dialog öffnen, mit dem du die Seiteneinstellungen vornehmen kannst. Schau mal, ob dort etwas ungewöhnlich ist.

Die Eigenschaft ClientHeigth gibt es bei TQuickRep.

Grüße
Mikhal

MaBuSE 24. Jan 2007 12:30

Re: alte quick reports in bds 2006 übernehmen ohne qr zu änd
 
Zitat:

Zitat von cherry
Laufzeitfehler beim laden der Reports. Programm kann dann nicht weiter ausgeführt werden.
Der Fehler eben "Fehlende Eigenschaft: reportXY.ClientHight ...

Diese Eigenschaft ist aber für jeden einzelnen Report gesetzt.

- Zudem muss ich vielleicht erwähnen, dass ich in D7 ein Chart (Kuchen Diagramm) angezeigt hatte,
diese Komponente scheint nicht mehr vorhanden zu sein in QR 4 für BDS2006. - Ich habe dies einfach gelöscht,
momentan wäre ich schon froh wenn der Rest funzen würde.

- Auch Habe ich festgestellt, dass einige Reports in der Formularansicht nicht mehr korrekt angeordnet waren.
Diesen Fehler habe ich dann manuell behoben...

kannst du mir mir mir noch einen Tip geben, wie würdest du nun weiter vorgehen?

Ich würe folgende Dinge tun:
  • Die TeeChart Komponenten gibt es in einer neuen Std Version bei Borland zum kostenlosen Download. (ca. 15 MB) Wenn Du die installierst, kannst du in der welcome.txt nachlesen wie Dich unter http://www.steema.com/downloads/client_access.html einloggen kannst (in der txt stehen die Logindaten)
    Dort gibt's einen Download um TeeChart mit dem QuickRep zu nutzen. (Source code of QRChart control (QuickReport chart) packages for BDS 2006)
    Damit ist dieses Problem schon mal gelöst.
  • Wenn die Reports in der Formularansicht nicht mehr korrekt angeordnet waren, deutet das auf Probleme hin.
    Ich würde mir das Formular mal im Text Modus anschauen und kontrollieren, ob die Objekte alle im gewünschten Container liegen.
    (Rechtsklick auf Formular -> Ansicht als Text)
  • zu guter Letzt würde ich Debuggen um herauszufinden wo der Fehler genau auftritt.
    Wenn der Fehler in den vorkompilerten dcu der Komponenten auftritt, hilft auch ein DebugTool wie MAD Exceptions, oder die in der kostenlosen JEDI JCL enthaltenen Möglichkeiten. (jclDebug)
  • Wenn mich das alles nicht weiterbringen würde, würde ich mal ein Leeres Projekt anlegen und mal einen Report neu erstellen.
    Wenn das schon nicht gelingt, muss was an der Installation faul sein.
    Wenn es funktioniert würde ich das Formular des Reports wieder als Text anzeigen lassen und mit dem nicht funktionierenden vergleichen. Die Unterschiede würde ich dann genauer analysieren. Sprich das Beispielprojekt dahingehend erweitern, das die Formulardateien gleich sind.
    Wenn das funktioniert, ist das Problem in Deinem Quellcode zu suchen.
    Also würde ich alle relevanten Teile in das Beispielprogramm implementieren.
    Wenn das funktioniert, wäre ich erst mal ratlos ;-)

cherry 24. Jan 2007 13:01

Re: alte quick reports in bds 2006 übernehmen ohne qr zu änd
 
Zitat:

Zitat von MaBuSE
... Ich würe folgende Dinge tun: ...

- Danke das werde ich genau so machen...
- Dies wird eine Weile dauern, ich werde dann meinen Stand wieder Preisgeben,
wenn ich all diese Schritte durch hab.

Vielen Dank schon mal bis dahin. :nerd:

MaBuSE 24. Jan 2007 13:15

Re: alte quick reports in bds 2006 übernehmen ohne qr zu änd
 
Zitat:

Zitat von cherry
Vielen Dank schon mal bis dahin. :nerd:

Keine Ursache, gern geschehen.
Mich würde auch interesieren, woran es dann letztendlich lag. ;-)

cherry 30. Jan 2007 12:59

Re: alte quick reports in bds 2006 übernehmen ohne qr zu änd
 
r So...

habe schon wieder Stunden damit verbraten die QR's endlich zum laufen zu bringen...
leider hab ichs immer noch nicht geschafft.

- Die Formulare scheinen soweit in Ordnung zu sein, ausser:
dass sie sich nicht in einem TQuickRep lagen... (also nicht im richtigen Container)

- Ich habe dann die "Fehlende" (?) Komponente eingefügt und die anderen Reportkomponenten
dort hinein getan. Nun ist der Bericht zumindest Optisch (in der Entwicklungsumgebung)
wieder i.o.

- Leider kommt immer noch die selbe Fehlermeldung beim Compillieren: "..Eigenschaft ClientHight.." ist nicht gesetzt
Obwohl diese Eigenschaft überall gesetzt ist... (mehrfach überprüft)

- Das ist leder alles was ich herausbekommen habe..


PS:

In D7 konnte man unter "Datei->Neu->weitere" einen "Bericht" (QR) erstellen...
Bei BDS2006 geht das nicht mehr (Zumindest bei mir)

die übernommenen QR sind normale Formulare.. vielleicht ist da der Bock???

- Hat noch jmd eine Idee? -Ich bin nämlich am Ende meines Pascals... :shock:

mkinzler 30. Jan 2007 16:22

Re: alte quick reports in bds 2006 übernehmen ohne qr zu änd
 
Hast du geschaut ob diese Eigenschaft auch in der dfm existiert?

mikhal 31. Jan 2007 06:51

Re: alte quick reports in bds 2006 übernehmen ohne qr zu änd
 
Hallo Cherry,

bist du sicher, dass die Property ClientHeight von TQuickRep gesetzt wird, oder wird die Property bei TForm gesetzt. Dein Hinweis auf die Nutzung des Assistenten von D7 läßt darauf schließen, dass überhaupt kein TForm existiert.

Bei meinen Programmen liegt TQuickRep immer auf einem normalen TForm, ich konnte dabei keine Probleme feststellen. Letztlich ist es schwer, dein Problem aus der Ferne zu lösen, da du bis jetzt auch keinen Quelltext gezeigt hast, der vielleciht einen Hinweis auf dein Problem geben könnte.

Hast du mal versucht, wenigstens einen deiner Reports komplett neu zu designen? Wenn nicht, solltest du das nachholen, und dann vergleichen, was anders ist als bei deinen Originalen.

Grüße
Mikhal

MaBuSE 31. Jan 2007 08:34

Re: alte quick reports in bds 2006 übernehmen ohne qr zu änd
 
Zitat:

Zitat von mikhal
bist du sicher, dass die Property ClientHeight von TQuickRep gesetzt wird, oder wird die Property bei TForm gesetzt. Dein Hinweis auf die Nutzung des Assistenten von D7 läßt darauf schließen, dass überhaupt kein TForm existiert.
Bei meinen Programmen liegt TQuickRep immer auf einem normalen TForm, ich konnte dabei keine Probleme feststellen. Letztlich ist es schwer, dein Problem aus der Ferne zu lösen, da du bis jetzt auch keinen Quelltext gezeigt hast, der vielleciht einen Hinweis auf dein Problem geben könnte.

Ich habe die QR auch immer auf ein Form gelegt ;-)
Ich werde das mal austesten und Dir dann posten... (heute noch)
Ich habe da schon eine Idee ;-)

MaBuSE 31. Jan 2007 12:25

Re: alte quick reports in bds 2006 übernehmen ohne qr zu änd
 
Zitat:

Zitat von cherry
In D7 konnte man unter "Datei->Neu->weitere" einen "Bericht" (QR) erstellen...
Bei BDS2006 geht das nicht mehr (Zumindest bei mir)
die übernommenen QR sind normale Formulare.. vielleicht ist da der Bock???

Hallo, ich habe eine Lösung für Dich ;-)

Du hast Recht. Genau hier liegt das Problem.
Delphi denkt Dein Report ist ein Formular (TForm) und deshalb klappt es nicht.
Delphi 2006 kann (wegen des fehlenden QR Experten) nicht mit diesen Reports ohne Form umgehen.

Aber es gibt eine einfache Lösung:
  • Achte darauf, das der QuickReport als Text abgespeichert wird.
    (In die *.dfm Dateien kucken, falls die binär gespeicher sind, einfach im Delphi 7 in den Report gehen und das TQuckRep im Formulardesigner mit rechts anklicken und das Häckchen bei als Text speichern aktivieren)
  • Die *.dfm Datei in einem Texteditor (z.B. notepad) öffnen
  • Eine 2. Zeile (object myRep: TQuickRep) wie folgt einfügen:
    Delphi-Quellcode:
    object QuickReport2: TQuickReport2
      Left = 0
      Top = 0
      Width = 794
    ...
    wird zu
    Delphi-Quellcode:
    object QuickReport2: TQuickReport2
    object myRep: TQuickRep
      Left = 0
      Top = 0
      Width = 794
      Height = 1123
    ...
  • Am Ende der Datei noch ein zusätzliches END einfügen
    Delphi-Quellcode:
    ...
        Left = 56
        Top = 152
      end
    end
    wird zu
    Delphi-Quellcode:
    ...
        Left = 56
        Top = 152
      end
    end
    end
  • speichern :-)
  • die zugehörige *.pas Datei im Editor öffnen
  • die Deklaration des Reports wie folgt ändern
    (aus class(TQuickRep) wird class(TForm) und myRep: TQuickRep; einfügen)
    Delphi-Quellcode:
    ...
    type
      TQuickReport2 = class(TQuickRep)
        QRBand1: TQRBand;
        QRSysData1: TQRSysData;
    ...
    wird zu
    Delphi-Quellcode:
    ...
    type
      TQuickReport2 = class(TForm)
        myRep: TQuickRep;
        QRBand1: TQRBand;
        QRSysData1: TQRSysData;
    ...
  • speichern
  • Delphi 2006 starten
  • Projekt laden
  • Report in Delphi öffnen -> geht ohne Fehler !!!
  • Beim Compilieren treten nun Fehler an allen Stellen auf, in denen auf den Report zugegriffen wird.
    Das lässt sich aber leicht beheben:
    Einfach ein myRep. einfügen.
    Delphi-Quellcode:
    ...
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      QuickReport2.Preview;
    end;
    ...
    wird zu
    Delphi-Quellcode:
    ...
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      QuickReport2.myRep.Preview;
    end;
    ...
  • Fertig !!!
Damit sollte Dein Problem gelöst sein.

Was wurde gemacht?
Eigentlich ganz einfach. Da TQuickRep eine visuelle Komponente ist, die man auf ein Formular legen kann, habe ich bei den Reports ohne Formular einfach ein leeres Formular druntergelegt ;-) Das Formular heißt nun wie Dein Report und der eigentliche Report heißt myRep. Da der Report nun auf dem Formular liegt, muß beim Zugriff auf den Report natürlich nicht nur der Report, sonder auch das Formular angegeben werden. -> Formular.Report.Preview -> alterReportname.myRep.Preview
Das ist alles.

Eigentlich ganz einfach, oder?

Viel Spaß


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr.
Seite 2 von 3     12 3      

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