Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid nach/bei Abfrage Strings ersetzen? (https://www.delphipraxis.net/88809-dbgrid-nach-bei-abfrage-strings-ersetzen.html)

mrschmidt 21. Mär 2007 13:50

Datenbank: Firebird • Version: 2 • Zugriff über: IBDataBase

DBGrid nach/bei Abfrage Strings ersetzen?
 
Hallo liebe Community,

ich bin zugegeber Massen ein Delphi-Anfänger. Benutze Delphi 6 uns stehe vor folgendem Problem (Vielleicht kann mir ja mal einer mit dem Zaunpfahl winken):

Ich habe eine Kunden-Datenbank (Firebird) die mittels DataSource<-IBDataSet<-IBDataBase ein DBGrid "befüllt".

Nun möchte ich beim oder nach dem Befüllen einige Strings im DBGrid ersetzen ("1" wird zu "1 - bereits Kunde", "0" wird zu "0 - kein Kunde" usw. ... hier sind einige Spalten des DBGrids in dieser Art zu Bearbeiten)

Ein OnDraw-Ereignis kommt eher nicht in Frage, da ich auch schon eine Druck-Routine geschrieben habe die die Werte des DBGrids ausliest und zu papier bringt, diese soll nach Möglichkeit weiterhin genau das drucken was in den Zellen steht und nicht auch (nochmal) die Strings ersetzen.

Gibt es dafür eine Lösung, wo muss ich ansetzen?

Vielen Dank für Eure Tips.

Liebe Grüsse,
Mr.Schmidt

uwewo 21. Mär 2007 14:35

Re: DBGrid nach/bei Abfrage Strings ersetzen?
 
Habe mit FB noch nie gearbeitet, aber sicher gibt es auch einen IF Befehl den Du in einer Query einsetzen kannst
z.Bsp.

SQL-Code:
select if(DeineSpalte = 1,'1 - bereits Kunde','0 - kein Kunde')
from DeinerTabelle

shmia 21. Mär 2007 14:50

Re: DBGrid nach/bei Abfrage Strings ersetzen?
 
Du solltest eine neue Tabelle "KundenStatus" einführen:
Code:
IdKStatus KStatusText
=====================
        0 kein Kunde
        1 bereits Kunde
        2 Verbotskunde     (Kunde hat wiederholt Rechn. nicht bezahlt)
In deiner Kundentabelle wird nur der Status als Zahl gespeichert (kein Text).
In der Tabelle wird ein Lookup-Field eingefügt.
So hast du im Grid und im Report die Freiheit zu entscheiden, ob das KStatusfeld als Zahl oder als Text
benutzt werden soll.

mrschmidt 21. Mär 2007 15:17

Re: DBGrid nach/bei Abfrage Strings ersetzen?
 
Erstmal Danke für die schnelle Antwort.
Ich kann leider keine Tabelle einfügen. Habe nur Lesezugriff auf die DB.

Mr.Schmidt

mrschmidt 22. Mär 2007 07:35

Re: DBGrid nach/bei Abfrage Strings ersetzen?
 
"if" geht leider nicht aber das geht:

"(CASE WHEN Kunde = 0 THEN 'Neu' ELSE 'Alt' END)"

Danke uwewo!

mkinzler 22. Mär 2007 07:38

Re: DBGrid nach/bei Abfrage Strings ersetzen?
 
Zitat:

"if" geht leider nicht
Es heißt auch IIF.


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