ComboBoxen - Abhängigkeit untereinander

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Lutz Rübe
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 142
Registriert: Mi, 02. Aug 2006 18:13
Wohnort: 24536 Neumünster
Danksagung erhalten: 6 Mal
Kontaktdaten:

ComboBoxen - Abhängigkeit untereinander

Beitrag von Lutz Rübe »

Moin alle zusammen,
ich komme mal wieder nicht weiter. Für euch als Profis ist das sicherlich eine Kleinigkeit, aber für mich tun sich da mal wieder Berge auf.. :roll:

Hier mein Problem/Frage:
Ich habe 2 Comboboxen, die beide für sich einwandfrei funktionieren. Jetzt möchte ich aber die Auswahlliste (Array) der 2. Combobox vom Ergebnis der ersten ComboBox abhängig machen. Als Beispiel:

in der Box 1 habe ich die Auswahl "Woche", "Monat", "Jahr"

In der Box 2 soll die Auswahl in Abhängigket von Box 1 gewählt werden:
Wenn Box 1 = "Woche", dann Auswahl-Array in Box 2: "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag","Sonntag"
Wenn Box 1 = "Monat", dann Auswahl-Array in Box 2: "Jan","Feb","Mar"....... "Dez"
Wenn Box 1 = "Jahr", Dann Auswahl-Array in Box 2: "2015","2016","2017"........

Wie binde ich diese unterschiedlichen Auswahl-Arrays in die Xbase-Parts ein ? Ich will also nicht nach der Auswahl in Box 1 eine neue Funktion aufrufen, die in Abhängigkeit des Ergebnisses aus Box 1 eine neue ComboBox möglichst noch in einen neuen fenster erstellt erstellt.

vielen Dank im Voraus...
Lutz
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12779
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 17 Mal
Danksagung erhalten: 25 Mal

Re: ComboBoxen - Abhängigkeit untereinander

Beitrag von AUGE_OHR »

hi Lutz,
Lutz Rübe hat geschrieben: Do, 27. Okt 2022 14:59 Ich will also nicht nach der Auswahl in Box 1 eine neue Funktion aufrufen, die in Abhängigkeit des Ergebnisses aus Box 1 eine neue ComboBox möglichst noch in einen neuen fenster erstellt erstellt.
ich bin mir nicht sicher wie das gehen soll denn ich benötige die erste Auswahl für die nächste Aktion

---

warum "einfach" wenn es "kompliziert" geht

du machst 3 x die 2nd Combobox() "versteckt" (o:Hide()) und eine "leere" als Dummy()
nach Auswahl in der 1st ComboBox() wird die "entsprechende" 2nd Combobox() "gezeigt" (o:Show())
gruss by OHR
Jimmy
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2878
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 10 Mal
Danksagung erhalten: 28 Mal
Kontaktdaten:

Re: ComboBoxen - Abhängigkeit untereinander

Beitrag von Wolfgang Ciriack »

Du kannst auch im ITEMMARKED Block der 1. CB eine Funktion aufrufen, die dir den Inhalt der 2. CB jedesmal neu setzt.
Viele Grüße
Wolfgang
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 553
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 2 Mal
Danksagung erhalten: 55 Mal
Kontaktdaten:

Re: ComboBoxen - Abhängigkeit untereinander

Beitrag von nightcrawler »

Ist ja im Prinzip ein Master/Detail Problem.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 8969
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 64 Mal
Danksagung erhalten: 238 Mal
Kontaktdaten:

Re: ComboBoxen - Abhängigkeit untereinander

Beitrag von Tom »

Ich würde die erste Auswahl nicht über eine Combobox, sondern über eine Gruppe von Radiobuttons machen, aber das ist Kosmetik.

Jimmys Vorschlag (drei überlagerte Comboboxen, und je nach Auswahl - ItemMarked - in der ersten werden die falschen versteckt und die richtige angezeigt) ist bestechend einfach, aber eleganter ist es tatsächlich, die Items für die abhängige Box jeweils neu zuzuordnen, wenn sich die Auswahl in der ersten ändert. Auch das macht man über den ItemMarked-Slot der ersten Combobox.
Herzlich,
Tom
Benutzeravatar
Lutz Rübe
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 142
Registriert: Mi, 02. Aug 2006 18:13
Wohnort: 24536 Neumünster
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: ComboBoxen - Abhängigkeit untereinander

Beitrag von Lutz Rübe »

Moin alle zusammen und vielen Dank für eure Antworten.

Nachdem ich gesehen habe, dass viele mein Ansinnen gelesen haben und keine Antwort kam, dachte ich schon, meine Frage wäre so banal, dass man mir nicht antworten wollte. Tatsache aber ist, wie ich aus den Antworten sehe, dass es auch für euch kein "daily business" ist und etwas Nachdenken erfordert.

Ich bin ein "try-and-error"-Programmierer, der vieles ausprobiert. In der Zwischenzeit habe ich einen Weg gefunden, der mit einem Vorschlag von euch übereinstimmt:
Es ist der Aufruf einer Funktion im ItemSelected Block der 1. ComboBox, der erst die Variable auswertet und dann auch die 2. ComboBox erstellt.

Code: Alles auswählen

   oCombo_Team := XbpComboBox():new(drawingArea, , {120,150-(nAnzElem_Teams*30)}, {100,nAnzElem_Teams*30}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } })
   oCombo_Team:tabstop := .T.
   oCombo_Team:type    := XBPCOMBO_DROPDOWNLIST
   oCombo_Team:create()
   ArrayToListBox(oCombo_Team, aTeams)
   oCombo_Team:XbpSLE:dataLink := {|x| IIf( x==NIL, ergTeam, ergTeam := x ) }
   oCombo_Team:XbpSLE:setData()
   bAction := {|mp1, mp2, obj| ergTage := Sel_aTage(obj:XbpSLE:getData(),ergTage, drawingArea)}
   oCombo_Team:ItemMarked  := bAction
   oCombo_Team:ItemSelected := bAction
Die RadioButton-Variante finde ich aus Design-Gründen nicht so gut, da auch die 1. Listbox Elemente enthält, die variabel sind, also mal ein Element, zwei, drei oder vier. Die RadioButtons würden das Fenster immer unterschiedlich darstellen. Die "hide()"-Variante erscheint mir etwas umständlicher, aber ich würde sie sicherlich auch ausprobieren, wenn ich nicht schon die ItemSelected Variante gefunden hätte.

Vielen Dank für eure Hilfe... =D> =D> =D>
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12779
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 17 Mal
Danksagung erhalten: 25 Mal

Re: ComboBoxen - Abhängigkeit untereinander

Beitrag von AUGE_OHR »

hi Lutz,

in deinem Beispiel sind es ja nur "wenige" Einträge die man schnell löschen/hinzufügen kann.

aber wenn man "viele" Einträge hat sollte man es "versteckt" aufbauen denn das "füllen" bei einem "sichtbaren" Control "dauert" viel länger
gruss by OHR
Jimmy
Antworten