Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Wie strings als Ersatz für Integer anzeigen? (https://www.delphipraxis.net/176909-wie-strings-als-ersatz-fuer-integer-anzeigen.html)

BlueStarHH 3. Okt 2013 12:04

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

Wie strings als Ersatz für Integer anzeigen?
 
Hallo,

ich habe eine Firebird-Tabelle, die ein Integer Feld "Farbe" enthält. In diesem Feld stehen die Zahlen 1, 2 oder 3. In meinem Delphi-Programm möchte ich nun, dass der Anwender nicht 1, 2 oder 3 zu sehen bekommen und eingeben muss, sondern dass diese Werte durch die Strings "Grün", "Gelb", "Rot" ersetzt werden. Also eine ComboxBox, die je nach Integer-Wert den dazu passenden String anzeigt. Wenn der Anwender einen String aus dieser ComboBox ausgwählt, soll auch nicht der String, sondern 1, 2 oder 3 in die DB geschrieben werden. Gibt es da eine fertige Lösung/Komponente? Oder muss ich das selbst machen? Wenn ja wie?

Zweites Problem: Ich nutze auch ein TcxGrid. Dort möchte ich das oben genannte Feld auch wie beschrieben nutzen. Ist das im TcxGrid schon mit Boardmitteln möglich oder muss ich das auch selbst machen? Wenn ja wie?

Oder ist mein gesamter Anzatz falsch? Problem ist, dass ich die Wörter "Grün", "Gelb", "Rot" nicht in der DB speichern möchte, da diese übersetzt werden müssen. Daher bin ich auch die Löung mit den Integern gekommen. So muss man die DB-Daten nicht ändern, wenn man die Sprache der GUI umstellt. Die Übersetzung muss dann nur einmal bei der Anzeige der Daten geschehen.

Danke!

himitsu 3. Okt 2013 12:37

AW: Wie strings als Ersatz für Integer anzeigen?
 
Klingt nach einer DBLookupCombox.

Als zweite Tabelle brauchst du dann eine mit den entsprechenden Datensätzen, wo jeweils deine Zahl und der zugehörige Text drinsteht.
Zahl für die DB und der Text zum Anzeigen.

taveuni 3. Okt 2013 12:46

AW: Wie strings als Ersatz für Integer anzeigen?
 
Wie wärs wenn Du gleich die Farbe speicherst und wieder aulesen würdest?
Stichwort TColor.

himitsu 3. Okt 2013 12:57

AW: Wie strings als Ersatz für Integer anzeigen?
 
Von einigen Fremdherstellern gäbe es auch passende DBColorComboboxen.
Bei Delphi scheint man wohl die DB-Version der TColorBox vergessen und man müßte manuell etwas Hand anlegen.

Uwe Raabe 3. Okt 2013 14:34

AW: Wie strings als Ersatz für Integer anzeigen?
 
Du kannst auch passende Events für OnGetText und OnSetText des jeweiligen TField schreiben.

MyRealName 4. Okt 2013 13:28

AW: Wie strings als Ersatz für Integer anzeigen?
 
Für das Lesen gibt es auch das CASE WHEN construct von Firebird.

mkinzler 4. Okt 2013 13:59

AW: Wie strings als Ersatz für Integer anzeigen?
 
Was aber in diesem Fall nicht zu empfehlen wäre

BlueStarHH 4. Okt 2013 14:29

AW: Wie strings als Ersatz für Integer anzeigen?
 
Danke an alle. Ich werde eine DBLookupCombox und eine zweite Tabelle nehemen. Das ist das einfachste für meinen Anwendungsfall. Danke auch für die anderen guten Tipps, die kann ich sicherlich nochmal gebrauchen.


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