Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Fastreport VCL Sortierproblem! (https://www.delphipraxis.net/215555-fastreport-vcl-sortierproblem.html)

HCB 26. Jul 2024 13:50

Fastreport VCL Sortierproblem!
 
Hallo, ich raff es einfach nicht, total simple aber funktiert nicht! Folgendes SQL script funktioniert, sortiert auch richtig im FireDac Abfrageeditor:
Delphi-Quellcode:
SELECT
ABFDocErfNr, ABFDocDatum, ABFDocKundekurzbez
FROM ABFDOK
where Year (ABFDocDatum > Year(Date())-5 and ABFDocType = 1 )
ORDER BY ABFDocDatum desc;
Es wird im Abfrageeditor also das Datum absteigend sortiert angezeigt, so wie es sein soll.
Ebenso die Sortierung auf ORDER BY ABFDocErfNr desc.
Jetzt habe ich im Fastreport die Datasource mit diesem Sql zugeordnet und kann auch per Vorschau oder zur Laufzeit angesehen werden.
Das PROBLEM:
Es wird immer nach Datum aufsteigend sortiert angezeigt, egal ob im script ORDER BY desc, asc oder gar nichts angegeben ist!
Auch die Sortierung auf ORDER BY ABFDocErfNr desc wird nicht sortiert angezeigt.
Ich verzweifel.
Könnte mir jemand vielleicht einen Hinweis geben oder weiß gar woran es liegt?
Ich wäre sehr, sehr dankbar.

LG Harry

Papaschlumpf73 26. Jul 2024 14:26

AW: Fastreport VCL Sortierproblem!
 
Delphi-Quellcode:
where Year (ABFDocDatum
dahinter fehlt die ) oder? Die ist zu weit nach rechts gerückt.
Das müsste m.E. so sein:
Delphi-Quellcode:
where (Year(ABFDocDatum) > Year(Date())-5) and (ABFDocType = 1)
Obwohl das nichts mit der Sortierung zu tun hat.

HCB 26. Jul 2024 14:31

AW: Fastreport VCL Sortierproblem!
 
Hallo und dank für die schnelle Antwort.
An der Klammer liegt es nicht, da es mit folgender Sortierung ja auch nicht klappt:
Delphi-Quellcode:
SELECT
ABFDocErfNr, ABFDocDatum, ABFDocKundekurzbez
FROM ABFDOK
where Year (ABFDocDatum > Year(Date())-5 and ABFDocType = 1 )
ORDER BY ABFDocErfNr desc;
Wie gesagt im SQL-Abfrageeditor wird ja die Sortierung korrekt ausgeführt.

LG Harry

Delphi.Narium 26. Jul 2024 14:41

AW: Fastreport VCL Sortierproblem!
 
Habe kein FastReport zur Verfügung. Soweit ich das mitbekommen habe, verfügt dieser jedoch auch über eigene Sortieroptionen. Ist da eventuell irgendwo etwas konfiguriert, das Deine Sortierung im SQL überschreibt?

Papaschlumpf73 26. Jul 2024 14:43

AW: Fastreport VCL Sortierproblem!
 
Bist du dir sicher, dass diese Abfrage mit der falschen Klammer überhaupt ausgeführt wird bzw. ob die überhaupt ausführbar ist? Diese WHERE-Klausel (mit den falschen Klammern) macht gar keinen Sinn.

HCB 26. Jul 2024 14:46

AW: Fastreport VCL Sortierproblem!
 
Hall Delphi.Narium,
ich wüsste nicht, dass ich in FR etwas habe was die Sortierung überschreiben sollte. Auch mit einem komplett neuen Report habe ich das gleiche Resultat.
Es wird einfach nicht absteigend sortiert, egal ob nach Datum oder Erfassungsnummer!
Ich weiß nicht was da faul ist.

LG Harry

himitsu 26. Jul 2024 15:03

AW: Fastreport VCL Sortierproblem!
 
Zitat:

Zitat von HCB (Beitrag 1539282)
An der Klammer liegt es nicht, da es mit folgender Sortierung ja auch nicht klappt:

Das kann so aber nicht ganz stimmen, denn hier wird ja das Ergebnis einer booleschen Berechnung als Datum behandelt und davon Jahr extrahiert.


SQL-Code:
Year( ABFDocDatum > Year(Date())-5   and  ABFDocType = 1 )
Year(ABFDocDatum) > Year(Date())-5   and  ABFDocType = 1
aka

SQL-Code:
Year(
  ABFDocDatum > Year(Date()) - 5
  and
  ABFDocType = 1
)
versus
SQL-Code:
Year(ABFDocDatum) > Year(Date()) - 5
and
ABFDocType = 1

Allerdings sollte es nur das WHERE und somit bloß die angezeigten Datensätze betreffen.
Am ORDER BY selbst kann ich eigentlich keinen Fehler erkennen. (macht ja auch nicht viel)

Was für einen Typen haben denn ABFDocErfNr und ABFDocDatum? (im ResultSet, nicht in der Datenbank)
z.B. Zahlen als Integer werden anders sortiert (2 ist kleiner als 11), als wenn sie als VARCHAR rauskämen ('2' ist größer als '11').

HCB 26. Jul 2024 15:37

AW: Fastreport VCL Sortierproblem!
 
DANKE an alle:
Also am Script wars nicht gelegen, schon alleine deshalb weil es ja im SQL Editor problemlos und korrekt ausgeführt wurde.
Ich habe also folgendes gemacht:
1. Delphi neu gestartet, Resultat gleich
2. PC neu gestartet und Delphi neu gestartet, Resultat gleich
3. Neuen Report erstellt - Verbindung zu frxDBDataset, Resultat gleich
4. Neuen Report erstellt - Verbindung zu neuem frxDBDataset, Resultat gleich
5. Neue FDQuery mit SQL Script und Datasource im DataModul erstellt, sowie neuen Report und frxDBDataset erstellt.

JETZT GEHT ES! Ich vermute, warum auch immer hat sich etwas im Datamodul oder FDQuery verbogen. Sehr seltsam!
Ich glaube ich hatte schon einmal eine kuriose Sache, die am FDQuery lag. Alte FDQuery gelöscht, neue FDQuery eingefügt und anderen Namen verpasst, dann ging es wieder.

LG Harry

Olli73 26. Jul 2024 15:46

AW: Fastreport VCL Sortierproblem!
 
Zitat:

Zitat von HCB (Beitrag 1539290)
JETZT GEHT ES! Ich vermute, warum auch immer hat sich etwas im Datamodul oder FDQuery verbogen. Sehr seltsam!
Ich glaube ich hatte schon einmal eine kuriose Sache, die am FDQuery lag. Alte FDQuery gelöscht, neue FDQuery eingefügt und anderen Namen verpasst, dann ging es wieder.

War dort vielleicht ein Index gesetzt?

HCB 26. Jul 2024 16:03

AW: Fastreport VCL Sortierproblem!
 
Hi Olli73,

kann ich nicht sagen weil ich die FDQuery gelöscht habe.

LG Harry


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:04 Uhr.
Seite 1 von 2  1 2      

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