DBLookupCombobox Items doppelspaltig??



  • Hallo,

    ich habe eine DBLookupCombobox und möchte die Einträge gerne aus 2 Spalten meiner Query zusammensetzen. Sprich Name und Vorname.

    Ich habe als ListSource eine DataSource (welche verbunden ist mit einer ADOQuery) angegeben,
    KeyField ist mit der ID-Spalte der Query angegeben, und mein ListField sieht so aus:

    SpalteName;SpalteVorname

    Aber leider bekomme ich immer nur die SpalteName in den Einträgen 😕



  • Benötigst du überhaupt eine Lookup-Combobox, d.h. hast du zwei Tabellen, wovon die eine auf die andere referenziert?

    Wenn nicht, dann nimm eine normale TDBCombobox und entweder erstelle dir ein sog. "Calculated Field" (berechnetes Feld), s. TField::Calculated oder aber ändere dein SQL-Statement, so daß es schon den zusammengesetzten Namen zurückgibt, z.B.

    select Name || ' ' || Vorname as FullName from ...
    

    und gebe dann 'FullName' als Feldnamen an.



  • MichelM schrieb:

    ich habe eine DBLookupCombobox und möchte die Einträge gerne aus 2 Spalten meiner Query zusammensetzen. Sprich Name und Vorname.

    Mit den mitgelieferten VCL-Komponenten bekommst du dies nur über Umwege (Ein Beispiel kann man z.B. hier finden).

    Wenn du wirklich das ganze wie eine Liste angezeigt haben willst, musst du zu Fremdkomponenten greifen (Wir verwenden hierfür z.B. ein Control von devexpress, aber leider sind deren Komponentensammlungen auch nicht ganz billig).



  • aber ich habe ja in einem anderen programm gesehen, dass es zweispaltig geht, und es sah auch ziemlich einfach aus, aber irgendwie krieg ich das nicht hin ...



  • MichelM schrieb:

    aber ich habe ja in einem anderen programm gesehen, dass es zweispaltig geht...

    Könnte es sein, das auch dieses Programm nicht die Originalcontrolls von Codegear verwendet?



  • MichelM schrieb:

    aber ich habe ja in einem anderen programm gesehen, dass es zweispaltig geht,

    hast du einen Screenshot davon ?
    Edit: cascading combobox



  • Problem gelöst!

    DBLookupComboBox verwenden, mit ADOQuery und DataSource verknüpfen.

    Die gewünschten Parameter in das ListField einfügen:

    LookupComboBox->ListField = "Spalte1; Spalte2"
    

    Dann im Feldeditor der Query die Breite der Spalten/Felder einstellen, damit auch beide Spalten in der Combobox zu sehen sind.

    😉


Anmelden zum Antworten