• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] JavaScript-Befehl für Adobe LiveCycle / Anzeige von Objekt X - bis Objekt Y

Könnte bitte mal der "Gelöst"-Vermerk vom Threadtitel entfernt werden?
 
Code:
var start, end, skip, skipThis;

//kann angepasst werden:
start = 1; //Start der Schleife bei 1
end = 114; //Ende der Schleife bei 15
skip = [6, 7, 8, 11, 12, 13]; //diese Elemente sollen ausgelassen werden

//ab hier nichts mehr ändern
for(var K = start; K <= end; K++){
  skipThis = false;
  for(var i = 0; i < skip.length; i++){
    if(skip[i] === K){
      skipThis = true;
      break;
    }
  }
  if(skipThis){
    continue;
  }
  this.resolveNode("K" + K).presence = "visible";
}

Also, so wie der Code oben jetzt ist, funktioniert das alles.

Nur das etwas komplexere nicht. Auch, wenn ich dort die "K"s einsetze.
 
Also wenn der Code aus Beitrag #10 funktioniert, dann sollte der Code aus Beitrag #12 auch funktionieren. Aber du kannst ja mal das console.log(i); heraus nehmen und bei for(var ii = from * 1; ii <= to; ii++){ ein * 1 nach dem to hinzufügen: for(var ii = from * 1; ii <= to * 1; ii++){
 
Eine Frage habe ich noch bezüglich der Funktion.

Kann ich die Funktion auch doppelt eingeben? Also so...

Code:
[COLOR="#00FF00"]// B1[/COLOR]
if ($.boundItem(xfa.event.newText) == "B1") { 
  this.resolveNode("AD-Gruppe").presence = "visible";
  
}
function setupLoop(start, end, elementsToSkip){

	var skip, skipArr, skipInt, skipThis;
	skip = elementsToSkip.split(",");
	skipArr = [];
	for(var K = 0; K < skip.length; K++){
		skipInt = skip[K].split("-");
		if(skipInt.length === 2){
			var from, to;
			from = skipInt[0];
			to = skipInt[1];
			for(var ii = from * 1; ii <= to * 1; ii++){
				skipArr.push(ii);
			}
		}
		else{
			skipArr.push(skip[K] * K);
		}
	}

	for(var K = start; K <= end; K++){
		skipThis = false;
		for(var ii = 0; ii < skipArr.length; ii++){
			if(skipArr[ii] === K){
				skipThis = true;
				break;
			}
		}
		if(skipThis){
			continue;
		}
		this.resolveNode("K" + K).presence = "visible";
	}
}
setupLoop(1, 114, "2-8,70"); 
	

[COLOR="#00FF00"]// B7[/COLOR]
if ($.boundItem(xfa.event.newText) == "B7") { 
  this.resolveNode("AD-Gruppe").presence = "visible";
}
function setupLoop(start, end, elementsToSkip){

	var skip, skipArr, skipInt, skipThis;
	skip = elementsToSkip.split(",");
	skipArr = [];
	for(var K = 0; K < skip.length; K++){
		skipInt = skip[K].split("-");
		if(skipInt.length === 2){
			var from, to;
			from = skipInt[0];
			to = skipInt[1];
			for(var ii = from * 1; ii <= to * 1; ii++){
				skipArr.push(ii);
			}
		}
		else{
			skipArr.push(skip[K] * K);
		}
	}

	for(var K = start; K <= end; K++){
		skipThis = false;
		for(var ii = 0; ii < skipArr.length; ii++){
			if(skipArr[ii] === K){
				skipThis = true;
				break;
			}
		}
		if(skipThis){
			continue;
		}
		this.resolveNode("K" + K).presence = "visible";
	}
}
setupLoop(1, 114, "3-8,21-45,66,76-87,90");

Habe das Problem, dass er immer nur die erste Funktion von "B1" nimmt und nicht die von "B7". Gibt es eine Möglichkeit die erste Funktion zu stoppen, sobald ich ein andere Abteilung, hier B7, auswähle?
 
Zurück
Oben