Seite 1 von 1
Dropdown die Auswahlmöglichkeiten eines anderen Dropdowns zuweisen
Verfasst: 21.08.2015, 09:15
von axelh
Guten Morgen!
Ich möchte einem Dropdown-Menü per JavaScript die Auswahlmöglichkeiten eines anderen Dropdowns zuweisen.
Folgendes funktioniert nicht:
Code: Alles auswählen
Formular.Detailbereich.Tabelle1.Doppel.Zeile1.sfrOben::initialize - (JavaScript, client)
Formular.Detailbereich.Tabelle1.Doppel.Zeile1.sfrOben.cboOben2.items = Formular.Detailbereich.Tabelle1.Doppel.Zeile1.sfrOben.cboOben1.items
Kann mir jemand meinen Fehler nennen? Ist die Syntax richtig? Eventuell habe ich auch das falsche Ereignis gewählt.
Gruß,
Axel
Dropdown die Auswahlmöglichkeiten eines anderen Dropdowns zuweisen
Verfasst: 21.08.2015, 10:26
von armine
Hallo Axel,
kann es sein, dass es nicht darum geht, eine DDL mit dem Inhalt einer anderen zu befüllen, sonderen in mehreren DDLs die gleiche Auswahl anzubieten? Da bietet sich eine Funktion an. Das Beispiel ist in "cboOben" und "cboUnten" ausgeführt.
vg armine
Dropdown die Auswahlmöglichkeiten eines anderen Dropdowns zuweisen
Verfasst: 21.08.2015, 10:50
von axelh
Hallo armine,
ja genau das meinte ich. Vielen Dank!
Jetzt möchte ich das ganze noch abhängig von dem Dropdown "Material" machen. Aber der Debugger gibt einen Fehler aus:
Fehlerzeile:
Code: Alles auswählen
elseif (xfa.resolveNode("#pageSet.Seite1.Header.cboMaterial") == "Holz") then {
Function:
Code: Alles auswählen
function load_DDL(Objekt) {
if (xfa.resolveNode("#pageSet.Seite1.Header.cboMaterial") == "Aluminium") then {
var Wert = ""
switch(Objekt.name.replace(/d*$/,"")) {
case "cboOben":
Wert = ["2282","7289","7290","7293","7298","7310","7340","358090","358100","358110"] ;
break;
case "cboUnten":
Wert = ["60*30","60*50","2282","7289","7290","7293","7298","7310","7340","358090","358100","358110"]
break;
default:
xfa.host.messageBox("Der Programmierer muss besser aufpassen", "Debugging", 3);
}
}
elseif (xfa.resolveNode("#pageSet.Seite1.Header.cboMaterial") == "Holz") then {
var Wert = ""
switch(Objekt.name.replace(/d*$/,"")) {
case "cboOben":
Wert = ["1","2","3","4","5","6","7","8","9","10"] ;
break;
case "cboUnten":
Wert = ["10","9","8","7","6","5","4","3","2","1","0","12345"]
break;
default:
xfa.host.messageBox("Der Programmierer muss besser aufpassen", "Debugging", 3);
}
endif
}
Objekt.clearItems() ;
for (var i = 0; i < Wert.length; i++) {
Objekt.addItem(Wert[i])
}
}
Kannst Du mir da bitte auch weiterhelfen? Ich komme mit der JS-Syntax noch nicht so gut klar.
Gruß,
Axel
Dropdown die Auswahlmöglichkeiten eines anderen Dropdowns zuweisen
Verfasst: 21.08.2015, 17:29
von armine
Hallo Axel,
du gehst es scheinbar gerne kompliziert an. Eine schlichte Lösung findest du wieder in "cboOben" und "cboUnten" ausgeführt.
Was ich übrigens nie brauche, ist eine Datei, in der Dinge nicht mehr funktionieren, die ich schon mal am Laufen hatte.
vg armine
Dropdown die Auswahlmöglichkeiten eines anderen Dropdowns zuweisen
Verfasst: 21.08.2015, 17:55
von axelh
Hallo armine,
sorry, ich habe die Datei nur hochgeladen weil ich dachte es baut auf Deiner Function auf und man könnte evtl. die Syntax korrigieren. Ich gelobe Besserung. Die Datei habe ich jetzt entfernt um Verwirrung für andere zu vermeiden.
Ich sehe schon ich muss mich wesentlich mehr mit Arrays auseinander setzen.
Auf jeden Fall ist es (wieder) genau das was ich brauche!
Vielen Dank dafür und Dir ein schönes Wochenende!
Gruß,
Axel
Dropdown die Auswahlmöglichkeiten eines anderen Dropdowns zuweisen
Verfasst: 12.11.2015, 10:52
von turbobooster01
Hallo armine,
es ist wieder einmal Wahnsinn was man mit skripten erreichen kann.
Ich habe das Skript für ein anderes Formular umgeschrieben jedoch fehlt mir noch eine Funktion dabei und zwar sobald ich das "Material" wechsel löschen sich die Felder "cbooben" usw nicht selbstständig und die Auswahl kann auch nicht geändert werden.
Soll heißen die Felder behalten die ursprünglichen Einstellungen vom vormals gewählten "Material".
Gibt es hier eine Möglichkeit das die Felder sich bei einem Wechsel des "Material"s automatisch lehren und automatisch neu verknüpfen lassen?
Ich habe die definition "Material" und "cbooben" genommen weil diese bereits in dem Formular hier enthalten sind.
Vielen Dank schonmal
Gruß Dirk
Dropdown die Auswahlmöglichkeiten eines anderen Dropdowns zuweisen
Verfasst: 12.11.2015, 11:38
von armine
Hallo Dirk,
da ist eine Schwäche in Axels Entwurf, das Material soll/darf nachträglich nicht geändert werden.
Zu deiner Problematik: in cboOben wird mit der Bedingung if (this.selectedIndex == -1) dafür gesorgt, dass nur dann die DDL neu bestückt wird, wenn noch keine Auswahl getroffen wurde. Den Zustand kannst du durch Löschen der Auswahl herbeiführen. Der richtige Ansatz scheint mir das aber nicht zu sein.
Mach doch eine neue Diskussion mit einer genauen Angabe deiner Anforderungen und deinem hochgeladenen PDF auf. Da wird sich sicher ein brauchbarer Lösungsansatz finden.
vg armine