![]() |
Datenbank: Firebird • Version: 2.5x • Zugriff über: IBDAC
Float-Werte für Filterung mit Nachkommastellen maskieren
Moin,
vielleicht fehlen mir nur die richtigen Suchbegriffe aber zu meiner Frage bekomme ich keine Ergebnisse. Ich habe Float-Felder, die ich gerne in einem TCRDBGrid filtern möchte. Die Funktion zum Filtern gehört ja dazu. Nun habe ich die Anzeige im Grid auf drei Nachkommastellen begrenzt. Eine Filterung schlägt deshalb fehl, da sie ja auf die DB und nicht auf die Anzeige angewendet wird und da sind die Nachkommastellen nicht begrenzt. Eine Aussage ob das vom TCRDBGrid so korrekt ist mag ich mangels Erfahrung nicht tätigen. Gibt es dazu eine sinnvolle Strategie? Danke, Messie |
AW: Float-Werte für Filterung mit Nachkommastellen maskieren
Gibt es dort keine Option, ob die Filterung auf die Datenmengen-Werte oder die Anzeigewerte erfolgen soll? Bei DevExpress gibt es das z.b.
|
AW: Float-Werte für Filterung mit Nachkommastellen maskieren
Zitat:
Danke, Messie |
AW: Float-Werte für Filterung mit Nachkommastellen maskieren
Andere Idee: Du prüfst auf Gleichheit, nicht wahr? Verwendest Du vielleicht den Filter des Datasets? Oder macht das dieses Grid?
Falls Du das machst, dann ändere die Bedingung von 'Feld=1.23' auf 'Feld>=1.229 and Feld<=1.231' o.ä.. |
AW: Float-Werte für Filterung mit Nachkommastellen maskieren
Noch eine andere Idee:
Du erstellst eine Abfrage in der du das Floatfield auf 3 stellen rundest und nimmst die Abfrage als Datasource für das Grid
Delphi-Quellcode:
SELECT Floatwert, round([Floatwert],3) as Floatgerundet
FROM Tabelle |
AW: Float-Werte für Filterung mit Nachkommastellen maskieren
Das funktioniert auch nicht zuverlässig, da '0.1 <> 1.0-0.9'. Altbekanntes floating point problem.
Wenn deine Anwendung kein BCD hat, musst Du in Delphi mit Bereichen filtern oder die Zahl als Text ansehen. Dann wird es aber mit Relationen schwierig (<,>) |
AW: Float-Werte für Filterung mit Nachkommastellen maskieren
Moin,
und Danke für Eure Hilfe. Die Grid-Kompo filtert nach Gleichheit. Somit dürfte die Variante von Earlybird auf den ersten Blick die beste sein. Ich werde berichten. Grüße, Messie |
AW: Float-Werte für Filterung mit Nachkommastellen maskieren
Hallo,
nun wollte ich da mal weiter machen. Leider entstehen in dem Projekt große zeitliche Pausen die es nicht einfacher machen, das richtig zu durchdringen - sorry. Die Variante von Earlybird hat nicht funktioniert. Ich habe den View auf die drei Stellen begrenzt und auch die Variante mit der neuen Variablen (as Roundedvalue) probiert. Ich verstehe es noch nicht ganz. Was mir auffällt, ist die Darstellung in Flamerobin. Warum bekomme ich sechs Nachkommastellen angezeigt, egal ob ich zwei oder drei Stellen im View angebe? Es kommt mir so vor als wäre der View gar nicht so gerundet wie erwartet. Danke, Messie |
AW: Float-Werte für Filterung mit Nachkommastellen maskieren
Zitat:
das Thema ist jetzt tatsächlich wieder aktuell. Ich kann leider weiterhin nur Ganzzahlen filtern. Zahlen mit Nachkommastellen lassen sich nicht filtern, obwohl der zum Grid zugeordnete View mit drei Nachkommastellen erzeugt und angezeigt wird. Eine Zahl aus dem View 0,100 kann ich also nicht ausfiltern. Warum? Auch mein Round(Param,digits)-View wird in Flamerobin nicht korrekt angezeigt. Liegt das Problem darin? Grüße, Messie |
AW: Float-Werte für Filterung mit Nachkommastellen maskieren
Zeige mal die Abfrage.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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