Danke an alle Helfenden!
@by Frickler,
Du hast Recht, ein CAST(... AS DECIMAL) erzeugt ein TBCDField. Ein CAST(... AS FLOAT) erzeugt ein TFloatField, aber beide Varianten ändern nicht das Verhalten, das die Ausgabe von 147,00 (aus dem
SQL-Result) bei der Ausgabe von Qyr.Fields[Idx].DisplayText oder Qyr.Fields[Idx].AsString nur den String 147 ausgibt , anstelle 147,00.
Dein Anstoss mit den TField-Typen hat mich nun aber in eine ganz neue Richtung gelenkt!
Ich habe jetzt folgendes umgesetzt:
Delphi-Quellcode:
my_Format := '0.00';
TFloatField( Qyr.Fields[Idx] ).DisplayFormat := my_Format;
TBCDField( Qyr.Fields[Idx] ).DisplayFormat := my_Format;
TFMTBcdField( Qyr.Fields[Idx] ).DisplayFormat := my_Format;
TCurrencyField( Qyr.Fields[Idx] ).DisplayFormat := my_Format;
s := Qyr.Fields[Idx].DisplayText;
Ich hoffe ich habe alle Typen, die Nachkommastellen haben können, aufgeführt und kann so in meiner Schleife über die
Query alles korrekt formatiert in String ausgeben.
@Rolf Frei,
Danke für den Tipp mit dem CAST. Den hatte ich tatsächlich noch im
SQL-Statement drin.