Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Anzeigeformat bei DataAware Komponents wie z.B DBGrid ändern (https://www.delphipraxis.net/138174-anzeigeformat-bei-dataaware-komponents-wie-z-b-dbgrid-aendern.html)

Alphacodex 4. Aug 2009 18:34

Datenbank: Firebird • Version: 2.5 • Zugriff über: Interbase

Anzeigeformat bei DataAware Komponents wie z.B DBGrid ändern
 
Hallo,

also ich frage mich gerade, wie man bei DataAware Komponenten das Anzeigeformat ändern kann. Also ich habe hier zum Beispiel ne DBGrid (eigentlich TDBAdvGrid) und bekomme in einer Spalte Zeitdaten im Format hh:mm:ss (z.B. 12:30:00).
Wenn ich ne normale Stringgrid hätte könnte ich das ja einfach umkonvertieren, aber bei ner Grid, die an ne Datenbank angebunden ist, kann ich ja nicht munter in den Daten herumkonvertieren, zumal die Datenbank dann einen Fehler meldet, wenn ich statt 12:30:00 einfach 12:30 in die Zelle schreibe(bzw. sie wandelt es im besten Fall einfach wieder zurück zu 12:30:00).

Es muss doch aber irgendwie möglich sein das Anzeigeformat zu ändern, dass er die Sekundenposition weglässt, oder nicht??

Grüße
Codex

mkinzler 4. Aug 2009 18:41

Re: Anzeigeformat bei DataAware Komponents wie z.B DBGrid än
 
Du könntest <Field>.onGetText() entsprechend implementieren

haentschman 4. Aug 2009 20:26

Re: Anzeigeformat bei DataAware Komponents wie z.B DBGrid än
 
Hallo,

wenn die Grundlage für dein Grid ein TDataset ist kannst du mal folgendes probieren. Ich benutze es z.B. wenn ich einen NOW Wert in der Datenbank mit Sekunden habe aber nur Stunden und Minuten angezeigt haben möchte.

1. Dataset füllen (Query etc.)
2. TDateTimeField(Query.FieldByName('FELDNAME')).Disp layFormat:='hh:mm';

Details findest du in der Hilfe bezüglich der Formatierungen. Der Inhalt im Datenbankfeld bleibt davon unberührt.

PS: um Floatwerte der Datenbank im Grid zu formatieren bietet sich auch TNumericField an.

:hi:

Alphacodex 5. Aug 2009 12:22

Re: Anzeigeformat bei DataAware Komponents wie z.B DBGrid än
 
Hmm...

Funktioniert noch nicht ganz. Wenn in meinem TDBAdvGrid der PageMode=true ist, dann geht es, aber wenn PageMode=false ist, zeigt er immer noch 12:30:00

Aber der Tip hat mich grundsätzlich schonmal weitergebracht...vielen Dank

Grüße
Codex


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 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