Einzelnen Beitrag anzeigen

geesmith

Registriert seit: 17. Jan 2003
Ort: Frauenfeld
32 Beiträge
 
Delphi XE5 Architect
 
#1

Berechnetes Feld ändern Integer<->DateTime

  Alt 12. Sep 2019, 20:24
Datenbank: SQLite • Version: 5.3 • Zugriff über: DBGrid Table
Hallo zusammen

Zugegeben, der Titel ist etwas unglücklich gewählt, denn ein berechnetes Feld lässt sich nicht ändern. Aber der Titel sagt zumindest meine Intention aus.

Was habe ich:
- Eine Datenbanktabelle mit der Spalte HISTDATE. Darin steht z.B. 119243 (ist ein Datum in einem speziellen julianischen Format)
- Eine Table-Komponente (unitable von devart).
- Ein DBGrid (von devexpress) mit der Spalte "HistDate". Die Spalte ist vom Typ TDateTime und hat eine DateEdit-Komponente.
(Ich glaube und hoffe die Hersteller obiger Komponenten tun in diesem Fall nichts zur Sache)

Was will ich:
1. Anzeige der HISTDATE-Tabellenwerte im DBGrid im *gregorianischen Format*. Also nicht 119243, sondern als DateTime 24.06.2019.
2. Das Datum im Grid soll dann editierbar sein und der editierte Wert soll als 119243 wieder in der Tabelle gespeichert werden.

Was habe ich schon gemacht:
Punkt 1 schaffe ich mit einem berechnetem Feld. ich erstelle in der Table ein neues berechnetes Feld und mit CalcFields errechne ich den DateTime-Wert aus diesem speziellem Datumswert. Im Grid weise ich der Spalte dann mein berechnetes Feld zu. Das Datum wird dann wunderbar im Grid angezeigt.

Was ist mein Problem:
Der DateTime-Wert im Grid lässt sich nicht ändern. Ich komme nicht drauf wie ich diesen DateTime-Wert in das Table-Feld HISTDATE zurückschreiben kann.
Habe schon mit onGetText und onSetText geschaut. Aber da der Wert im Grid ein DateTime-Wert ist, erschent mir das nicht zielführend.

Habt ihr eine Idee wie ich das machen könnte?
  Mit Zitat antworten Zitat