Moin moin,
Ich hab ein kleineres Problem, aufgrund zu langer Programmierung stürzt mir beim Abspeichern der LCD mit einem runtime error ab, deswegen muß ich die Programierung etwas kürzen.
Im Moment habe ich eine switch-Anweisung die ungefähr so aussieht:
switch (sprache.rawValue)
{
case "1":
{
deutsch.presence="visible";
}
break;
case "2":
{
englisch.presence=....
Insgesamt 4 Sprachen, wobei die Listenelemente vom "sprache"-dd dieselben Bezeichnungen haben wie die Teilformulare der entsprechenden Sprachen.
Könnte man das dann vielleicht viel einfacher mit nem if-Befehl ala
if (sprache.rawValue!=0)
{
"listenfeld von sprache".presence="visible";
}
machen?
Allerdings fehlen mir dazu die Javascript Kenntnisse. Wenn jemand mir da helfen könnte, wäre super.
MFG
SilentAxl
Listenelemente in einer switch-Anweisung übernehmen
Listenelemente in einer switch-Anweisung übernehmen
Hallo SilentAxl,
Versuchen Sie es bitte mit folgenden "if" Abfragen:
Gruß,
Walde
Versuchen Sie es bitte mit folgenden "if" Abfragen:
Code: Alles auswählen
if (sprache.rawValue=="1"){
"listenfeld von Sprache Deutsch".presence="visible";
"listenfeld von Srache Englisch".presence="hidden";
"listenfeld von Srache Spanisch".presence="hidden";
}
else if(sprache.rawValue=="2"){
"listenfeld von Srache Englisch".presence="visible";
"listenfeld von Srache Spanisch".presence="hidden";
"listenfeld von Srache Deutsch".presence="hidden";
}
else if(sprache.rawValue=="3"){
"listenfeld von Srache Spanisch".presence="visible";
"listenfeld von Srache Englisch".presence="hidden";
"listenfeld von Srache Deutsch".presence="hidden";
}
Gruß,
Walde
Listenelemente in einer switch-Anweisung übernehmen
Hallo Walde,
meinen sie, wenn ich den switch durch den if-elseif-Befehl ersetze, das ich dann den runtime-error nicht mehr bekomme? Denn eigentlich funktioniert der switch-Befehl ja.
Mein Beispiel mit dem switch ist ja eigentlich auch nur ein Überblick über die Struktur, wie ich es gelöst habe. Anbei hab ich ein kleines Bild wie die reale Programmierung aussieht.
Was ich nämlich beheben wollte ist, das ich unter jedem case eine ca 1500 Zeilen lange Programmierung habe, die sich eigentlich nur dadurch ändert, das bei deutsch z.B. die Zeile
Unterlagenkonfigurator.deutsch.presence="visible";
steht und bei Englisch die Zeile
Unterlagenkonfigurator.englisch.presence="visible"; .
Darum war meine Frage ja auch darauf gemünzt, ob es möglich ist den Ausdruck eines Listenfeldes z.B. in eine Variable zu schreiben und diese dann dazu benutzen ein anderes Teilformular damit anzusprechen, so das da in etwa steht:
x="ausgewähltes listenfeld";
Unterlagenkonfigurator.x.presence="visible";
Wenn das so klappen würde, könnte ich damit ca 4500 Zeilen einsparen, aber bei der Syntax versagen meine Kenntnisse leider.
Gruß Silentaxl
meinen sie, wenn ich den switch durch den if-elseif-Befehl ersetze, das ich dann den runtime-error nicht mehr bekomme? Denn eigentlich funktioniert der switch-Befehl ja.
Mein Beispiel mit dem switch ist ja eigentlich auch nur ein Überblick über die Struktur, wie ich es gelöst habe. Anbei hab ich ein kleines Bild wie die reale Programmierung aussieht.
Was ich nämlich beheben wollte ist, das ich unter jedem case eine ca 1500 Zeilen lange Programmierung habe, die sich eigentlich nur dadurch ändert, das bei deutsch z.B. die Zeile
Unterlagenkonfigurator.deutsch.presence="visible";
steht und bei Englisch die Zeile
Unterlagenkonfigurator.englisch.presence="visible"; .
Darum war meine Frage ja auch darauf gemünzt, ob es möglich ist den Ausdruck eines Listenfeldes z.B. in eine Variable zu schreiben und diese dann dazu benutzen ein anderes Teilformular damit anzusprechen, so das da in etwa steht:
x="ausgewähltes listenfeld";
Unterlagenkonfigurator.x.presence="visible";
Wenn das so klappen würde, könnte ich damit ca 4500 Zeilen einsparen, aber bei der Syntax versagen meine Kenntnisse leider.
Gruß Silentaxl
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Listenelemente in einer switch-Anweisung übernehmen
Hallo SilentAxl,
Habe Sie wohl falsch verstanden. Anbei eine Beispieldatei, die einen mehrfachen Zugriff auf eine Funktion darstellt.
Die Funktion:
Der Zugriff auf die Funktion:
Beschreibung:
Wenn über das "Switch" Objekt auf die Funktion zugegriffen wird, so wird dabei die jeweilige Sprache mitgegeben.
In der Funktion werden die Namen von Textfeldern (können auch Teilformulare sein) unter dem Teilformular "Sprachen" auf die Übereinstimmung mit der mitgegebenen Sprache aus der Switch Anweisung überprüft. Gibt es eine Übereinstimmung, so wird die Sichtbarkeit des Objektes auf "visible" gesetzt ansonsten auf "hidden".
Allgemein:
Funktionen und Schleifen ersparen oft sehr viele Codezeilen.
Gruß,
Walde
Habe Sie wohl falsch verstanden. Anbei eine Beispieldatei, die einen mehrfachen Zugriff auf eine Funktion darstellt.
Die Funktion:
Code: Alles auswählen
function nPresenceSprachen(nSprache){
for (var i = 0; i < xfa.form.resolveNode("#subform.Sprachen").nodes.length; i++){
var oItem = xfa.form.resolveNode("#subform.Sprachen").nodes.item(i);
if(oItem.name == nSprache){
oItem.presence = "visible";
}
else{
oItem.presence = "hidden";
}
}
}
Der Zugriff auf die Funktion:
Code: Alles auswählen
switch(xfa.event.change){
case "Deutsch":
Scripte.nPresenceSprachen("Deutsch");
break;
case "Englisch":
Scripte.nPresenceSprachen("Englisch");
break;
case "Spanisch":
Scripte.nPresenceSprachen("Spanisch");
break;
default:
break;
}
Beschreibung:
Wenn über das "Switch" Objekt auf die Funktion zugegriffen wird, so wird dabei die jeweilige Sprache mitgegeben.
In der Funktion werden die Namen von Textfeldern (können auch Teilformulare sein) unter dem Teilformular "Sprachen" auf die Übereinstimmung mit der mitgegebenen Sprache aus der Switch Anweisung überprüft. Gibt es eine Übereinstimmung, so wird die Sichtbarkeit des Objektes auf "visible" gesetzt ansonsten auf "hidden".
Allgemein:
Funktionen und Schleifen ersparen oft sehr viele Codezeilen.
Gruß,
Walde
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.