![]() |
Rave Report ausführen...
Hallo,
ich habe mit dem Ravedesigner einen Report erstellt, den ich auch in der Entwicklungsumgebung erfolgreich ausführen kann. Für einen Button in meinem Programm habe ich in das OnClickEreignis folgendes geschrieben:
Delphi-Quellcode:
Leider stürzt das Programm an dieser Stelle bei der Ausführung des Ereignisses mit einer Zugriffsverletzung ab. RvProject.Execute; Ich weiß leider überhaupt nicht, wie ich den Fehler weiter eingrenzen kann. Zur Designzeit wird der Report erfolgreich erstellt. Kann jemand helfen? Gruß, Barnti Nachtrag: Ich habe folgendes festgestellt: Der Report funktioniert, wenn ich die zugehörigen Komponenten auf mein Hauptformular positioniere. Vorher hatte ich ein eigenes Datenmodul dafür vorgesehen. Ich verstehe nicht, warum ich die Rave-Komponenten nicht in ein eigenes Datenmodul bekomme. Weiß jemand Rat? |
Re: Rave Report ausführen...
Moin...
Hast du in deiner onClick prozedur nur den Text? Du musst ja noch die .RAV Datei öffnen und zuweisen. soetwas sollte mindestens drin stehen.
Delphi-Quellcode:
Ich kann dir noch die Seite von Nevrona empfehlen... Da habe ich mir viel herausgelesen...
RvProject.ProjectFile := ExtractFilePath(ParamStr(0))+'myReport.rav';
![]() Leider habe ich auch die Erfahrung gemacht, das sich Rave, wenn es sich verabschiedet, nie so genau sagt warum... Bios denne... |
Re: Rave Report ausführen...
Hi,
Delphi-Quellcode:
Die Projektdatei ist fest im Modul TRVProject vorgegeben.
Hast du in deiner onClick prozedur nur den Text? Du musst ja noch die .RAV Datei öffnen und zuweisen.
soetwas sollte mindestens drin stehen. RvProject.ProjectFile := ExtractFilePath(ParamStr(0))+'myReport.rav'; Außerdem funktioniert das ganze nur nicht, wenn ich ein eigenes Modul für die Komponenten vorsehe. Setze ich die Komponenten auf das Hauptformular meiner Anwendung funktioniert es! Was mache ich falsch? Was muss ich tun, um die Komponenten in einem eigenen Datenmodul zum Laufen zu kriegen? Danke für Ratschlag, Gruß, Barnti |
Re: Rave Report ausführen...
Moin...
Hm, nee... dann kann es daran ja nicht liegen... Ich habe sowas ähnliches schon mal gehabt. Da hat mir folgendes geholfen:
Delphi-Quellcode:
type
TDBAnbindung = class(TDataModule) private { Private-Deklarationen } public { Public-Deklarationen } end; implementation initialization DBAnbindung := TDBAnbindung.Create(nil); finalization DBAnbindung.Free; |
Re: Rave Report ausführen...
Hi,
wie gesagt: das Problem besteht nur, wenn ich die Komponenten in ein eigenes Datenmodul auslagere. Sonst funktioniert es. Beim Debuggen kann ich feststellen, dass
Delphi-Quellcode:
RvProject = nil ist. Irgentwie Funktioniert das Instanzieren wohl nicht. Der Typenzeiger verweist auf nix, wenn ich die Komponenten in ein eigenes Datenmodul auslagere. Ich verstehe das Problem nicht.RvProject.Execute; Gibt es noch weitere Ideen? Gruß, Barnti |
Re: Rave Report ausführen...
barnti,
rave läuft normalerweise ohne probleme in einem datenmodul. ist es sichergestellt, dass alle units/forms erstellt sind und/oder evtl. falsche reihenfolge im dpr-file ?! :-) thomas, TeamNevrona |
Re: Rave Report ausführen...
Ja genauso äußerte sich das auch bei mir.
Zitat:
Delphi-Quellcode:
Wenns daran gelegen hat, bekommst du einen Fehler: 'Datenmodul_Rave unbekannt' oder so.
implementation
uses Datenmodul_Rave; procedure TForm1.BtnClick(Sender: TObject); begin Datenmodul_Rave.RvProject.Execute; end; Wenigstens weisst du dann mehr... Bis denne... |
Re: Rave Report ausführen...
Hallo,
@merlin17: Du scheintst ja hier der Experte in Sachen Rave zu sein. Hatte gehofft, dass Du Dich einschaltest. Zitat:
Noch weitere Ideen? Gruß, Barnti |
Re: Rave Report ausführen...
Hallo noch einmal,
das Problem scheint doch mit der Generierung der Files im dpr-file zusammenzuhängen:
Delphi-Quellcode:
Dadurch, dass ich Ereignisbehandlungsroutinen im Create vom "AdminForm" habe, wird der Ablauf unterbrochen. Soll heißen die Anwendung startet "normal", ich kann auch damit wie geplant arbeiten aber die letzten Zeilen werden nicht erreicht(Letztes FormCreate und Run).
...
Application.CreateForm(THauptForm, HauptForm); // noch korrekt Application.CreateForm(TAdminForm, AdminForm); // wird erzeugt Application.CreateForm(TDMReport, DMReport); // hier kommt der normale Programmablauf nicht mehr Application.Run; // hin ... Wenn ich das CreateForm(Report) vor Create Admin aufrufe klappt es! Allerdings wird "Application.run" nie aufgerufen. Jedenfals nicht in diesem Block zur Startzeit des Programms... Gruß, Barnti |
Re: Rave Report ausführen...
barnti,
Zitat:
hier liegt das problem aber nicht mehr im rave, sondern etwas mehr auf delphi-seite, oder ? :-) thomas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 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