Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Formatierte Dezimalstellen (https://www.delphipraxis.net/20164-formatierte-dezimalstellen.html)

rbest 14. Apr 2004 10:54


Formatierte Dezimalstellen
 
Hi folks,
vermutlich wieder eine einfache Sache, die ich aber im Moment nicht gebacken krieg. Wie kann man in DBEdit Zahlen formatieren, daß z.B. immer schön brav 2 Nachkommastellen angezeigt werden :?:

1,20 anstatt 1,2, 22,88 anstatt 22,87775.

Schönen Tag noch.

Luckie 14. Apr 2004 11:22

Re: Formatierte Dezimalstellen
 
Formatier dir die Ausgabe vorher mit Format.

Hansa 14. Apr 2004 11:56

Re: Formatierte Dezimalstellen
 
Luckie, Finger weg von Datenbanken. :warn: :mrgreen: Das da ist ein häufiger Fehler. Und das liegt meist nicht am DBEdit, sondern an dem Dataset. Guck mal da nach DisplayFormat oder so.

Luckie 14. Apr 2004 11:57

Re: Formatierte Dezimalstellen
 
Zitat:

Zitat von Hansa
Luckie, Finger weg von Datenbanken. :warn: :mrgreen:

Mist, jetzt dachte ich, ich könnte hier auch mal was posten. :cry:

toyoman 29. Okt 2007 14:17

Re: Formatierte Dezimalstellen
 
Genau sowas würd ich auch gerne machen. TDBEdit Felder in der Anzeige formatieren und zwar mit Dezimalstellen. Ich habe TDBEdit Felder und möchte keine andere Komponente verwenden. Gibts da was einfaches?
In der Datenbankstruktur kann und darf ich nichts ändern... Müsste also rein über die Anzeigekomponente machbar sein.

Zitat:

Zitat von rbest
Hi folks,
vermutlich wieder eine einfache Sache, die ich aber im Moment nicht gebacken krieg. Wie kann man in DBEdit Zahlen formatieren, daß z.B. immer schön brav 2 Nachkommastellen angezeigt werden :?:

1,20 anstatt 1,2, 22,88 anstatt 22,87775.

Schönen Tag noch.


toyoman 30. Okt 2007 08:45

Re: Formatierte Dezimalstellen
 
Über einen Umweg :arrow: habe ich mein Problem/Bedürfnis wie folgt gelöst:

-SQL Connection manuell aktiviert (Connection Komponente mit Connection Parameter ausgestattet -> dies mache ich normalerweise im Programm zur Laufzeit über ein Ini-File)

-SQL Query Komponente mit SQL.text befüllt, damit die Verbindung geöffnet werden kann und das ClientDataSet befüllt wird.

-Beim Client Dataset doppelklick -> öffnet den Feld Editor, es sind noch keine Felder vorhanden. Mit der rechten Maustaste kann man alle Felder welche in der Tabelle verfügbar sind einfügen.

Nun kann man bei jedem Feld separat das Displayformat anpassen (z.B: 0.0 für Dezimalanzeige). :thumb:

raiguen 30. Okt 2007 10:02

Re: Formatierte Dezimalstellen
 
warum so umständlich, wenn es doch eine elegante Lösung gibt :roll: :?:
Im AfterOpen-Ereignis des DataSets (Tabelle oder Query) das hier coden:
Delphi-Quellcode:
procedure TDataModule1.TabelleXYZAfterOpen(DataSet: TDataSet);
begin
  //--Variante 1
  (DataSet.FieldByName(FeldName) as TNumericField).DisplayFormat := '#0.00';
  //--Variante 2
  TNumericField(DataSet.FieldByName(FeldName)).DisplayFormat := '#0.00';
  //--FeldName steht für das entsprechende Tabellen-/QueryFeld, auf das die Formatierung angewendet werden soll
end;
//EDIT: Diese Vorgehensweise macht nur dann Sinn, sofern keine persistenten Felder (FeldEditor des DataSet) eingerichtet sind (was ich grundsätzlich NICHT mache, weil zu unflexibel) - denn dort kann über die Eigenschaft .DisplayFormat ein entsprechendes Format eingetragen werden...

toyoman 30. Okt 2007 12:40

Re: Formatierte Dezimalstellen
 
vielen Dank für diese Lösungsmöglichkeit, das ist natürlich ziemlich genial...

Gruss

Zitat:

Zitat von raiguen
warum so umständlich, wenn es doch eine elegante Lösung gibt :roll: :?:
Im AfterOpen-Ereignis des DataSets (Tabelle oder Query) das hier coden:
Delphi-Quellcode:
procedure TDataModule1.TabelleXYZAfterOpen(DataSet: TDataSet);
begin
  //--Variante 1
  (DataSet.FieldByName(FeldName) as TNumericField).DisplayFormat := '#0.00';
  //--Variante 2
  TNumericField(DataSet.FieldByName(FeldName)).DisplayFormat := '#0.00';
  //--FeldName steht für das entsprechende Tabellen-/QueryFeld, auf das die Formatierung angewendet werden soll
end;
//EDIT: Diese Vorgehensweise macht nur dann Sinn, sofern keine persistenten Felder (FeldEditor des DataSet) eingerichtet sind (was ich grundsätzlich NICHT mache, weil zu unflexibel) - denn dort kann über die Eigenschaft .DisplayFormat ein entsprechendes Format eingetragen werden...



Alle Zeitangaben in WEZ +1. Es ist jetzt 01:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz