Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL-Befehle in Rave Reports ermitteln (https://www.delphipraxis.net/12858-sql-befehle-rave-reports-ermitteln.html)

frankg 5. Dez 2003 10:56


SQL-Befehle in Rave Reports ermitteln
 
Hallo Delphi Community!

Ich habe (mal wieder) eine Frage zu Rave Reports. Stellt Euch mal folgende Situation vor: In einem Rave Projekt gibt es mehrere Berichte. Diese Reporte sind über DriverDataViews mit der Datenbank verbunden. Da es mehrere Berichte gibt, ist natürlich auch klar, dass nicht jeder DriverDataView in jedem Bericht auftaucht. Ich möchte jetzt folgendes machen: Bevor ein Bericht erzeugt wird möchte ich mir alle SQL-Befehle, die innerhalb eines spezifischen Berichtes verwendet werden ausgeben lassen um diese vorher noch mal eben zu analysieren (ist ne etwas kompliziertere Geschichte). Theoretisch müsste ich dann ja folgendes machen.

1. Alle "dynamischen" Komponenten (also alle Komponenten, die aus der Datenbank gefüllt werden) durchgehen und eine Liste mit (eindeutigen) DriverDataViews aufbauen (verschiedene Komponenten können ja auf denselben DriverDataView zugreifen, den dahinter liegenden SQL-Befehl muss ich natürlich nur ein Mal analysieren).

2. Alle DriverDataViews durchgehen und über das Property "Query" die SQL Befehle ermitteln.

Leider weiss ich momentan nicht, wie ich das genau anstellen soll. Ich hoffe es gibt jemanden, der mir bei diesem Problem helfen kann.

Viele Grüsse und vielen Dank

Frank

merlin17 5. Dez 2003 20:23

Re: SQL-Befehle in Rave Reports ermitteln
 
frank,

auf sachen kommst du :lol:

dass ist nicht tricky sondern richtig heavy...
ich schätze mal ausser jim gunkel oder eldon lewis (beide bei nevrona)
wirst du keinen finden, der dir die lösung adhoc bieten kann.

alternativ gibt es zwei "gedankenwege" (eine lösung direkt habe ich nicht!):

mit
Code:
  OldDataView := RaveProject1.ProjMan.FindRaveComponent('MeineDV',nil);
  RaveProject1.ProjMan.DeleteItem(OldDataView);
  NewDataView := CreateDataView(CreateDataCon(MeineCXN));
  NotifyChanging(OldDataView,NewDataView);
kannst du evtl. die dataviews ändern und refreshen.

oder du gehst gleich über tip#79 von der nevrona-seite...

abschließend eine (gegen-)frage. warum willst du dies überhaupt machen?
hast du es mit der (vorgänger-)report-engine auch gemacht (wenn ja welche)?!?!

viel erfolg auf jeden fall!

:? thomas, TeamNevrona

frankg 6. Dez 2003 11:18

Re: SQL-Befehle in Rave Reports ermitteln
 
Hallo Thomas!

Zitat:

Zitat von merlin17
frank,

auf sachen kommst du :lol:

dass ist nicht tricky sondern richtig heavy...

Naja, die einfachen Sachen kann ich alleine :lol:

Zitat:

Zitat von merlin17
mal ausser jim gunkel oder eldon lewis (beide bei nevrona)

E-Mail Adresse? Telefonnummer? :lol:


Zitat:

Zitat von merlin17
frank,
kannst du evtl. die dataviews ändern und refreshen.

Also es geht mir im Prinzip nicht darum, die Dataviews zu ändern. Es geht mir einfach nur darum die in den Dataviews hinterlegten SQL-Queries auszulesen (also wirklich den SQL-Befehl als Sting). Gibt es unter Rave Reports keine Collection, in der alle in einem Report hinterlegten Objekte drin sind? Die müsste man dann eigentlich nur durchlaufen und dann gucken, welches Objekt auf einen Dataview referenziert und dort dann den SQL-BEfehl klauen...

Zitat:

Zitat von merlin17
oder du gehst gleich über tip#79 von der nevrona-seite...

abschließend eine (gegen-)frage. warum willst du dies überhaupt machen?
hast du es mit der (vorgänger-)report-engine auch gemacht (wenn ja welche)?!?!

Also: Anwender sollen mit dem Report Designer von Rave Reports Berichte erstellen. Diese Berichte arbeiten mit Driver Data Views (damit man den Bericht unabhängig von Delphi sehen kann). Innerhalb der den Berichten zugrundeliegenden SQL-Befehlen sind Messobjekte enthalten. Die Messobjekte messen Werte, die auch falsch sein können. Ich will jetzt diese Messobjekte aus dem SQL-Befehl rausanalysieren und bevor der Rave-Report erstellt wird eine Tabelle mit allen fehlerhaften Werten erzeugen. Die Berichte werden von einem Scheduler automatisch erzeugt. Im Prinzip hinterlegt der Anwender mit den Rave Reports nur Vorlagen, die jeden Tag dynamisch gefüllt werden. Das habe ich noch nicht mit einer anderen Engine implementiert.

Zitat:

Zitat von merlin17
viel erfolg auf jeden fall!

Vielen Dank. Auch vielen Dank für Deine Antwort, die wie immer sehr kompetent ist (habe auch ehrlichgesagt nichts anderes erwartet :))

Bis dann...

Frank

frankg 9. Dez 2003 08:30

Re: SQL-Befehle in Rave Reports ermitteln
 
Hallo Thomas!

Ich habe mal in die Newsgroup von Nevrona gepostet. Bin mal gespannt, ob ich da eine Antwort bekomme, wie das geht.

Viele Grüsse

Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:12 Uhr.

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