Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBcomboBox (https://www.delphipraxis.net/18608-dbcombobox.html)

Hansa 22. Mär 2004 00:59


DBcomboBox
 
Hi,

ich habe hier eine DBcomboBox. Die Datenfelder sind Interbase CHAR (1). In der DropDown-Liste stehen Wochentage. Wähle ich jetzt einen aus, so wird nur der Anfangsbuchstabe gespeichert und angezeigt. Die Liste funktioniert schon wie gewünscht, gebe ich "do" ein, so wird Donnerstag vorgeschlagen, was aber wohl nichts nützt, wenn nur D gespeichert wird.

Wo liegt da der Haken ? Soll ich etwa die CHAR (1) in smallint umwandeln ? Das muß auch anders gehen. Aber wie ?

kiar 22. Mär 2004 01:36

Re: DBcomboBox
 
hallo hansa,

warum speicherst du nicht,ich glaub, weekofday? damit hast du genauen zugriff auf die wochentage.

raik

Hansa 22. Mär 2004 02:01

Re: DBcomboBox
 
Du meinst wohl DayOfWeek ? Die gibt mir aber den Wochentag zurück, wenn ich ein Datum habe. Ich brauche aber nur den Tag. Es geht um den Wochentag, an dem ein Kunde angerufen werden soll. Und der muß bei diesem hinterlegt sein.

Ich habe jetzt mal noch ein Testfeld als smallint in der DB drin. Wenn ich da die Items mit den Namen der Tage belege, kommt eine Convert-Exception. Das müßte doch irgendwie so ähnlich, wie bei einer DBRadiogroup funktionieren ? Über Index der Auswahlliste oder so irgendwas... :gruebel:

kiar 22. Mär 2004 02:51

Re: DBcomboBox
 
vielleicht so

Delphi-Quellcode:
var Tage : array [1..7] of string;
       i : integer;
begin
     tage[1]:= 'Montag';
     tage[2]:= 'Dienstag';
     tage[3]:= 'Mittwoch';
     tage[4]:= 'Donnerstag';
     tage[5]:= 'Freitag';
     tage[6]:= 'Sonnabend';
     tage[7]:= 'Sonntag';

     label1.caption:=tage[strtoint(edit1.text)];
 end;
mit der dbcombobox müßte es aber auch gehen.
Delphi-Quellcode:

var
  x:integer;
begin
  x:= ComboBox1.items.indexof(combobox1.text);
end;
wobei das erste item 0 ist

raik

Sharky 22. Mär 2004 04:04

Re: DBcomboBox
 
Zitat:

Zitat von Hansa
... Die Datenfelder sind Interbase CHAR (1). In der DropDown-Liste stehen Wochentage....

Hai Hansa,

wie soll das denn gehen? Wenn die Items deiner DB-Combobox länger als ein Zeichen sind, dein Feld in der Tabelle aber nur ein Zeichen speichert kann es so ja nicht gehen. Es gibt ja nur den Freitag der durch seinen ersten Buchstaben eindeutig zu identifiezieren ist. Enweder Du speicherst den gesamten String oder Du machst den Umweg über eine zweite Tabelle und nimmst eine DBLookupCombobox oder du nimmst eine ComoboBox (nicht DB) und verwendest den zweiten Code von kiar.

Robert_G 22. Mär 2004 07:30

Re: DBcomboBox
 
DBComboBox?
Char(1) ?
Wochentag?
Was soll denn das werden?
Wäre es nicht viel sinnvoller ein komplettes Datum zu hinterlegen? Wenn es jemand verschlampt den Kunden in der Woche z.B: am Donnerstag anzurufen? Dann wird der nächste Bearbeiter bis zum nächsten Donnerstag warten, anstatt den Kunden schon am Freitag anzurufen.
Dann schnappst du dir 'nen DateTimePicker und alles ist im Lot. :wink:

p.s.: DBComboBox ist doch fast so eklig wie ein DBGrid...

Hansa 22. Mär 2004 12:38

Re: DBcomboBox
 
Zitat:

Zitat von Robert_G
p.s.: DBComboBox ist doch fast so eklig wie ein DBGrid...

Ja, scheint echt so zu sein. Das DBgrid flog schon vor längerem in die Tonne. Und da liegt die DBComboBox jetzt auch. :mrgreen: Und das Char (1) ist doch kein Problem. Da steht jetzt 0..6 drin und paßt dann auch zu dem ItemIndex. Bin mal gespannt, ob außer vielleicht DBText nach viel von den DB-Kompos übrig bleibt.


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