![]() |
QReport und GROUP BY
Hi,
es gibt doch in QReport die Komponente QRGroup, oder so. In der Hilfe steht ein Beispiel mit alphabetischer Sortierung. Dort steht man solle für den Zweck, bei Änderung des Anfangsbuchstaben z.B. das so machen und hierzu eine QRExpr verwenden :
Delphi-Quellcode:
Jetzt die Frage : wie weit geht diese Sache. Kann man eigene Prozeduren usw. verwenden ? Was muß genau als Bedingung der Gruppierung verwendet werden ? Das Beispiiel geht mir nicht weit genug. Geht das mit 2 Datenbankfeldern ? Also eine Gruppierung in Abhängigkeit dieser beiden Felder ? Sagen wir mal : Bool-Felder ? Das wären 4 Möglichkeiten : (true,true),(true,false)... Ändert sich eines der Felder, dann neue Gruppe mit neuer Überschrift.
copy(??,1,1);
Edit : eine in dieser Art sortierte Datenmenge ist hierbei gegeben. |
Re: QReport und GROUP BY
Hallo Hansa,
den Wert von Expression kannst du am besten mit dem zugehörigen Editor erstellen. Eigene Funktionen kannst du dabei zwar nicht nutzen, aber dass ist in der Regel auch nicht nötig. Zu deinem Beispiel: Wenn du z.B. eine Tabelle hast, in der Feld1 und Feld 2 Boolsche Felder sind, dann lautet ein möglicher Ausdruck, der bei jeder Änderung der Kombination einen anderen Wert liefert:
Code:
Die zugehörige SQL Abfrage wäre:
IF(Query1.feld1,IF(Query1.feld2,1,2),IF(Query1.feld2,3,4))
SQL-Code:
So erhälst du bis zu vier Gruppen.
select feld1, feld2, feld3 from myTable
order by feld1, feld2 |
Re: QReport und GROUP BY
Hat das Teil eine eigene Syntax, oder wie ? :shock: Also QrExpr ? Die auszuwertenden Datenbankfelder gibt es so nicht. Es sind vorher ermittelte Rückgabewerte. Ich zitiere aus offiziellem Tuto, damit keiner groß Suchen muß :
Zitat:
|
Re: QReport und GROUP BY
Thema fast erledigt. Trick : mit AS den einzelnen Gruppen einfach einen Namen geben. In die Expression gehört dann nur der "Feldname", obwohl kein solches DB-Feld existiert. 8) Aber was solls. Offen ist aber immer noch, was genau in die Expression reinkommen kann. Und die Syntax davon, die kapiere ich auch nicht. Wieso wird QR eigentlich überall kritisiert ? :gruebel: Habe mir den kompliziertesten Report vorgeknöpft, den es hier geben kann und da ist kein unüberwindliches Hindernis zu erkennen. Aber er ist auch erst halb fertig.
|
Re: QReport und GROUP BY
Hallo Hansa,
im Expression Ausdruck kann alles stehen, was man auswerten kann. Dabei können Datenbankfelder, Funktionen, (vordefinierte) Variablen und Operatoren zwischen diesen eingesetzt werden. Der Ausdruck wird für jeden Datensatz ausgewerten. Unterscheidet sich das Ergebnis der aktuellen Auswertung von dem Ergebnis der vorherigen Auswertung, wird eine neue Gruppe ausgegeben. |
Re: QReport und GROUP BY
Hi,
noch ein kleines Problemchen. Die Gruppierung ist jetzt wie gewünscht. Allerdings wird der Inhalt der zu QRExpr gehörenden Werte mitgedruckt. Das ganze sieht jetzt so aus :
SQL-Code:
Irgendwo auf dem Blatt steht jetzt noch 1,2 oder 3.
SELECT 1 as REIHENFOLGE,... WHERE...
UNION SELECT 2 as REIHENFOLGE,... WHERE... UNION SELECT 3 as REIHENFOLGE,... WHERE... ORDER BY 1,2,3 |
Re: QReport und GROUP BY
Jetzt ist noch ein ganz anderes Problem aufgetaucht. 8) Nach der ersten Gruppe sollen noch ein paar Zeilen ausgedruckt werden. Sagen wir mal ein Array, wobei die Anzahl der Zeilen vor dem Druck nicht bekannt ist. Dann erst soll die zweite Gruppe gedruckt werden. Nun habe ich ja noch den Group-Footer. Besteht die Möglichkeit innerhalb des Group-Footers eine variable Anzahl an Zeilen zu drucken ? Mir gelingts jedenfalls nicht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:56 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-2025 by Thomas Breitkreuz