Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   DBcombobox//DBlookupcombobox (https://www.delphipraxis.net/57979-dbcombobox-dblookupcombobox.html)

nonkonformist 29. Nov 2005 17:20


DBcombobox//DBlookupcombobox
 
servus

ich muss in eine dbcombobox andere werte anzeigen lassen als in der datenbank stehen.

also mein problem is das mein dbfeld 0,1 steht, ich aber ausgabe in worten haben will in der combobox.
ich will aber keine neue tabelle anlegen oder eine neue spalte anlegen.

ich habe mir da mal die dblookupcombobox angeschaut kann man da nur zwei felder aus einer datenbank verbinden, und die dann ausgeben.

mfg nonkonformist

DP-Maintenance 29. Nov 2005 17:26

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Fragen / Anregungen zur DP" nach "Datenbanken" verschoben.
Hai neuer User, das ist leider die falsche Sparte die Du gewählt hast. Darum verschiebe ich deinen Beitrag.

Hansa 2. Aug 2006 21:06

Re: DBcombobox//DBlookupcombobox
 
Thread ohne Antwort ? Der paßt aber trotzdem. Habe ein ähnliches Problem. 2 Tables : Artikel und Mwst. Pro Artikel wird 0,1 oder 2 im Artikel gespeichert (für 0%, 7%, 16/19%) Der korrespondierende Mwst.-Satz im Klartext steht in der Table Mwst. und zwar datumabhängig. Vielleicht noch die Tabelle :

SQL-Code:
CREATE TABLE MWST (
    ID              INTEGER NOT NULL,
    MWSTSATZ        SMALLINT DEFAULT 0 NOT NULL,
    ABDATUM         DATE,
    MWSTWERT        DECIMAL(15,2),
    ANGELEGT        TIMESTAMP,
    LETZTEAENDERUNG TIMESTAMP
);
Fogendes will ich erreichen : die Combobox (falls aufgeklappt) soll die Werte quasi aus den Spalten MWSTSATZ und MWSTWERT aller Datensätze anzeigen, die es zum aktuellen Datum gibt. D.h.: ab 1.1.2007 :

1 0%
2 7%
3 19%

Das Eingabefeld müßte auch so aussehen. Ist so etwas mit einer DB(Lookup)Combobox möglich ? Habe vor, die (wie gesagt datumsabhängige) richtige Datenmenge mit FOR SELECT zusammenzubauen. Der User soll folgendes sehen / machen können. Z.B. er legt neuen Artikel an. Im zugeklappten Zustand steht im Eingabefeld der Combobox dann "0 (0%)" Drückt er die Taste "3" dann soll der aktuelle Mwst.-Satz zu sehen sein, das wäre jetzt also "3 (16 %)". Klappt er die Box auf und klickt die 3 an, dann solls halt ähnlich sein. Hat einer eine bessere Idee, dann her damit. Oder geht so was mit normaler Combobox besser ? :gruebel:

mkinzler 2. Aug 2006 21:19

Re: DBcombobox//DBlookupcombobox
 
Ist möglich, da bei einer DBLookupComboBox das angezeigte Feld und das Feld das bei der Auswahl übernommen ist getrennt eingestellt werden kann. D.h. .ListField wäre dann 'MWSTSATZ' und .KeyField = 'ID'. Mehere Felder kannst du anlegen von temp Feldern im SELECT ( concat) erzeugen und dieses Feld dann las .ListField nehmen.

Hansa 2. Aug 2006 21:37

Re: DBcombobox//DBlookupcombobox
 
Liste der Anhänge anzeigen (Anzahl: 1)
Gerade gepostet, da fiel mir wieder ein, wo ich das schon gesehen hatte. 8) Es war in diesem Text :

http://community.borland.com/article...,27653,00.html

Übrigens sehr interessanter Artikel ! Ausgedruckt auf Seite 7 um das Bild gehts. Auf Anhieb sehe ich allerdings jetzt nicht, was der da verwendet hat. Normale Combobox, DBLookupbox oder was ? :gruebel: Das direkt im Select zusammen in ein Feld zu packen, das ist allerdings auch sehr gute Idee. Nur, kriege ich das auch wieder auseinander zum abspeichern ? :gruebel: :gruebel: Bild alleine hänge ich mal noch hier dran.

mkinzler 2. Aug 2006 21:41

Re: DBcombobox//DBlookupcombobox
 
Zitat:

Nur, kriege ich das auch wieder auseinander zum abspeichern ?
Dürfte nicht nötig sein, da ja die ID (oder was als KeyField ausgewählt ist) gespeichert wird.

Hansa 3. Aug 2006 01:06

Re: DBcombobox//DBlookupcombobox
 
Das wird komplizierter als gedacht. Ob es so überhaupt machbar ist, das ist mir noch nicht sicher genug. Es ist nämlich noch ein Quereffekt aufgetaucht, der mich aufhält.

Die Tabelle steht ja schon weiter oben. Folgendes ist jetzt noch hinzugekommen : eine SP, wie gesagt soll die alle zu einem bestimmten Datum vorhandenen Mwst-Sätze auflisten,

SQL-Code:
CREATE PROCEDURE ERMITTLE_ALLEMWSTSP (
    ABDATUM DATE)
RETURNS (
    ID_OUT INTEGER,
    MWSTSATZ_OUT INTEGER,
    ABDATUM_OUT DATE,
    MWSTWERT_OUT DECIMAL(15,2))
AS
begin
FOR
  SELECT ID,MWSTSATZ,ABDATUM,MWSTWERT FROM MWST
  WHERE (ABDATUM <= :ABDATUM)  <-- so noch nicht richtig, aber egal. Werte werden geliefert
  INTO :ID_OUT,:MWSTSATZ_OUT,:ABDATUM_OUT,:MWSTWERT_OUT
  DO
  SUSPEND;
end^
Diese gelieferte Datenmenge lese ich so aus (SelectSQL im OI für Dataset) :

SQL-Code:
SELECT * FROM ERMITTLE_ALLEMWSTSP8 (:ABDATUM)
Zu Testzwecken habe ich ein DBGrid verwendet. Dieses zeigt auch 3 Datensätze an (momentan alle angelegten)), also die mit RETURNS zurückgelieferten Spalten. Ich hänge jetzt an folgendem : es geht nicht, die ListField/KeyFields usw. zu bestücken (betrifft nur Design-Time). "unexpected end of command..." Der zur Design-Time fehlende Parameter wird das sein.

Was ist da zu tun ? Es wäre echt sehr mühsam, das zur Laufzeit alles zu bestücken.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz