![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: Quickreport
Report erstellen - wie Query gestalten
Moin,
ich bin gerade dabei einen Quickreport auf Datenbank umzustellen. Dazu würde ich gerne die TQRDBText-Komponente benutzen. Die bietet als Property ein DataSet(meine Query), DataField und Mask (für die leidige Float-Formatierung). Nun habe ich in meiner DB-Hierarchie den Fall, dass ich immer mehrere Ergebnisse gleicher Hierarchie bekomme.
Code:
UpIndex ist der Index der jeweils höheren Hierarchie.
SELECT
Table1.ID, Table1.Param1, Table2.ID Table2.Param1, Table2.Param2, Table3.Param1, Table3.Param2 FROM Table1, Table2, Table3 WHERE Table1.UpIndex = 17 AND Table2.UpIndex = Table1.ID AND Table3.UpIndex = Table2.ID Mein Problem: Table3 enthält Messwerte in Param2, die aus verschiedenen Messungen (Table3.Param1) stammen. Damit sind die Felder nicht eindeutig und ich kann sie nicht direkt zuweisen. Brauche ich für jede Ausgabekomponente eine eigene Query? Denn das wird zur Laufzeit erzeugt und kann theoretisch viele Queries bedeuten. Und die müssen ja so lange gefüllt bleiben, bis der Report ausgegeben wird. Oder kann man das so verfeinern, dass ich für jedes Table3.Param1 ein eigenes Feld Table3.Param2 erzeugen kann? Danke, Messie Edit: SQL mit Code-Tags statt Quote-Tags versehen. Sieht beides nicht toll aus :wink: Edit2: jetzt ist es lesbarer |
AW: Report erstellen - wie Query gestalten
Ich möchte die Frage noch mal etwas verfeinern: kann ich in der Query temporäre Fields erzeugen, die ich dann nochmal mit einer Art eigenem Select füllen kann?
Ich habe nämlich festgestellt, dass unterschiedliche Queries in so einem Report auch ihre Fallstricke haben. Grüße, Messie |
AW: Report erstellen - wie Query gestalten
hi,
Zitat:
|
AW: Report erstellen - wie Query gestalten
Zitat:
ich probier' es mal.... |
AW: Report erstellen - wie Query gestalten
Ich weiß jetzt nicht ob FB das kann:
Code:
Gruß
select a.feld1,b.feld2
from tabelle a ,(select id,feld2 from tabellex) b where a.id=b.id K-H |
AW: Report erstellen - wie Query gestalten
Kann FB ist aber nicht besonders performant. ( in anderen DBMS aber auch nicht)
|
AW: Report erstellen - wie Query gestalten
so was ähnliches kann FB, wenn das Ergebnis eindeutig ist, z. B.
select a.field1, a.field2, (select field1 from b where b.field1=a.field3) as field3 from a where a.field1='123' Würde das innere select mehrere Datensätze liefern, kommt es zu einer Fehlermeldung. man kann so aber auch mit den Aggregrat Funktionen arbeiten (sum, max, min, avg) oder andere Berechnungen anstellen. select a.field1, a.field2, (select sum(field1) from b where b.field1=a.field3) as field3 from a where a.field1='123' Gruß Jörg |
AW: Report erstellen - wie Query gestalten
Zitat:
|
AW: Report erstellen - wie Query gestalten
[OT]
Zitat:
Gruß K-H [/OT] |
AW: Report erstellen - wie Query gestalten
Zitat:
Code:
select a.feld1,b.feld2
from tabelle a ,tabellex b where a.id=b.id Zitat:
Und was hat das mit der Frage des TE zu tun? Vielleicht habe ich die nicht verstanden. |
AW: Report erstellen - wie Query gestalten
Zitat:
|
AW: Report erstellen - wie Query gestalten
So, dank Lemmy habe ich jetzt eine stored proc hinbekommen. :thumb::thumb::thumb:
Im Flamerobin geht das wunderbar auch wenn es etwas dauert. Jetzt habe ich das Problem dass der Report die Daten nicht anzeigt. Ich habe testhalber mal eine einfache Query probiert "Select * from table where test_id = 17", das zur Entwurfszeit in die IDCQuery gespielt und den Preview zur Entwurfszeit ausgeführt. Alle zutreffenden Elemente (fortlaufende Seriennnummern) tauchen im Report auf. Zur Laufzeit lade ich denselben String in dieselbe Query-Komponente, weise den Komponenten (QRDBText) die Query und die Felder zu und öffne die Query. Ergebnis: Gleiche Zeilenzahl aber immer die erste Seriennummer. Was mache ich da falsch? Grüße, Messie |
AW: Report erstellen - wie Query gestalten
Hi,
klatsch mal ein DBGrid auf dein Formular und schließ die Query an das Grid an. Kommen da die Daten? Was genau meinst Du damit: Zitat:
|
AW: Report erstellen - wie Query gestalten
Zitat:
Was muss man anstellen um einen TDBNavigator zum Laufen zu bringen oder funzt der zur Entwurfszeit gar nicht? Zitat:
Leider bekomme ich die Query auf die stored proc nicht zur Entwurfszeit in die IBCquery. Vielleicht bin ich auch nur zu blöd :stupid: Grüße, Messie |
AW: Report erstellen - wie Query gestalten
SQL-Code:
select
<Feldliste> from <SP-Name> ( :Param1, ...) where <Bedingung>; |
AW: Report erstellen - wie Query gestalten
Zitat:
|
AW: Report erstellen - wie Query gestalten
Zitat:
Jetzt muss gezaubert werden :stupid: Zitat:
Grüße, Messie |
AW: Report erstellen - wie Query gestalten
Die Felder, die man abfragen will
|
AW: Report erstellen - wie Query gestalten
Zitat:
Delphi-Quellcode:
Dann muss der BandType noch auf rbDetail eingetsellt sein. Ansonsten kommt nur ein DS Zurück.
qrDruck.DataSet := DS; // DS aus DataModule, im FormCreate/Show
|
AW: Report erstellen - wie Query gestalten
Zitat:
Code:
So sieht das bei mir aus - auch das Band ist ein Detailband. Heute bekomme ich auch nur noch die erste Zeile :shock:
DM.ReportQuery.SQL.Clear;
//s := 'SELECT * FROM AUSWERTUNG(17)'; s := 'SELECT * FROM TABLE WHERE ITEM_ID = 17'; DM.ReportQuery.SQL.Add(s); DM.ReportQuery.open; DBReport.QRDBText5.DataSet := DM.ReportQuery; DBReport.QRDBText5.DataField := 'SERIAL'; DBReport.QRDBText1.DataSet := DM.ReportQuery; DBReport.QRDBText1.DataField := 'ID'; DBReport.DataReport.Prepare; DBReport.DataReport.Preview; Übergebe ich exakt diese Query zur Entwurfszeit an die IBCQuery und öffne den Preview des Reports ist alles da :roll: Wenn ich den Report ohne eine Änderung öffne klappt es auch. Sobald ich die Zuweisung an die QRDBText-Felder einsetze klappt es nicht mehr. Hängen da noch Nebenbedingunen dran? Danke, Messie |
AW: Report erstellen - wie Query gestalten
Zitat:
|
AW: Report erstellen - wie Query gestalten
Zitat:
Grüße, Messie |
AW: Report erstellen - wie Query gestalten
mach das anders rum: Erzeug alle Felder schon zur Entwurfszeit und zur Laufzeit schaltest Du die unnötigen auf Visible=false. Ist weniger Aufwand....
Grüße |
AW: Report erstellen - wie Query gestalten
So, mittlerweile läuft der Report einigermaßen.
Das klappt vor allem dann besser wenn man die richtige Datenbankdatei verwendet - Danke, Lemmy Die Komponenten bleiben aber etwas anfällig. So verlieren sie mit jeder neuen Query scheinbar komplett ihre Bezüge. Klar können die sich mit einer neuen Query auch komplett ändern. Aber die Bezüge komplett aufzulösen? Na ja. Danke an alle für die Unterstützung, Messie |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:34 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