Tag auch und sorry für die späte Rückmeldung.
Ich verwende bei mir die einfachste Art von DataText Zuweisungen, das heißt, einmal die
Query zur Designzeit laufen lassen
und die Felder im Ravereport bei geöffneter Datenbankverbindung zuweisen.
Die Designzeitqueries lösche ich nach dem Festlegen wieder, da ich die eh nicht brauche.
Meine Queries werden alle zur Laufzeit festgelegt, die WHERE Klauseln müssen bei mir variieren können, was sie auch tun.
Einzig die Anzahl der Felder und deren Namen bleiben gleich.
Als Datenobjekt kommt auch bei mir DirectDataView zum Einsatz, die Verbindung zur Datenbank läuft allerdings momentan über UniDAC.
Vorher hab ich aber auch erfolgreich
ADO am Laufen gehabt.
Spontan fällt mir noch ein, dass die RvDataSetConnections alle in einem Form liegen sollten, bzw. in einem DataModule.
Mit dieser Konstellation hatte ich bisher keine Probleme.
Edit: Weiß nicht, ob das einen Einfluss hat, aber ich verwende nicht die Standard Setup und Preview Forms, da ich lokalisieren können muss.
Auf der Nevrona Seite gibts Tipps um die Standards umzubauen.
Dementsprechend liegen mein RvProject und RvSystem nur einmal auf dem PreviewForm vor.
Für meine Reports hab ich verschiedene Connections.
Umbau des Steup-Dialogs in
Nevrona Tipp 72
Umbau des Preview-Forms in
Nevrona Tipp 74
Beispiel Aufruf:
Delphi-Quellcode:
(*******************************
** Procedure: Print_MenuClick **
*******************************)
procedure TForm_Example.Print_MenuClick(Sender: TObject);
var
Form_RavePreview: TForm_RavePreview;
begin
Form_RavePreview := TForm_RavePreview.Create(self);
Form_RavePreview.RvProject.ProjectFile :=
(AP_Path + '\DATA\REPORT\Example.rav');
Form_RavePreview.RvSystem.TitlePreview := 'Example-Preview';
Form_RavePreview.RvSystem.SystemPreview.FormState := wsMaximized;
with Form_RavePreview.RvProject do begin
Open;
try
SetParam('Caption_Example', 'Example Caption');
SetParam( ... );
ExecuteReport('Report1');
finally
Close;
end;
end;
end;
Edit2: Generell könnten noch andere
Nevrona Tipps hilfreich sein
Make me a sandwich! - What? Make it yourself. - Sudo make me a sandwich! - Okay