Farbe der Linie ändern funktioniert nicht

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
cd99
Beiträge: 32
Registriert: 09.12.2010, 16:36

Farbe der Linie ändern funktioniert nicht

Beitrag von cd99 » 22.08.2012, 17:02

Hi zusammen,

ich würde gerne per Schleife in meinem Dokument die Farben der Linie ändern:

Das mache ich über

Code: Alles auswählen

for (var i = 0; i < xfa.host.numPages; i++)
		{
		  var oFields = xfa.layout.pageContent(i);
		  var nodesLength = oFields.length;
	
		  for (var j = 0; j < nodesLength; j++)
		  {
		    var oItem = oFields.item(j);
		    if(oItem.value.line.edge.color.value == "0,77,158")
		    {	
		    	oItem.value.line.edge.color.value = fontCol;
		    }
                  }
                }
Hintergrundfarben von Rechtecken etc. funktionieren an anderer Stelle oin der Schleife, die Linie allerdings nicht. Kann mir mal wer kurz auf die Sprünge helfen woran das liegt?
Fehlermeldung: oItem.value ist undefined...
Im Anhang ein kleiner Screen des XML...

Danke, vG
Cd99
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
Merklin
Beiträge: 1857
Registriert: 04.04.2009, 17:03

Farbe der Linie ändern funktioniert nicht

Beitrag von Merklin » 23.08.2012, 01:54

Hallo cd99,

von welchen Linien sprichst du eigentlich?

Von Textfeldern, Rechtecken oder nur Linien?

An Hand deines Scripts meinst du wohl Textfelder,oder?

VG Merklin

P.S. Ach nein, du meinst ein Rechteck. Das sehe ich gerade aus deinem Bild.
Rechtecke musst du mit

Rechteck1.value.rectangle.edge.color.value = "102,179,50";  // nur die Linien

ansprechen.
Dann stimmt aber dein Script nicht. Rechtecke werden mit "draw" angesprochen.
Jedenfalls laut der Hilfe (F1)

cd99
Beiträge: 32
Registriert: 09.12.2010, 16:36

Farbe der Linie ändern funktioniert nicht

Beitrag von cd99 » 23.08.2012, 09:09

Hi und danke.
Meine Linien und Rechtecke.
Bei Rechtecken hatte ich es auch schon mal geschafft, bei Linien nicht.
Die werden wohl auch über draw angesprochen? Sieht laut xml quelle jedenfalls so aus...
Hatte dazu leider kein Beispiel gefunden und nicht auf dem schirm...

Benutzeravatar
radzmar
Beiträge: 962
Registriert: 26.10.2011, 10:18

Farbe der Linie ändern funktioniert nicht

Beitrag von radzmar » 23.08.2012, 09:42

Hi,

das Umfärben von Linien, Rechtecken und Kreisen kannst Du mit folgendem Skript erledigen.
Für Rechtecke müssen zusätzlich noch die Ecken umgefärbt werden.

Code: Alles auswählen

function colorLines(vNode) {
	if (vNode.className === "draw") {
		vNode.value.oneOfChild.edge.color.value = "0,0,0";
		if (vNode.value.oneOfChild.className === "rectangle") {
			vNode.value.oneOfChild.corner.color.value = "0,0,0";
		}
	}
	for (var i = 0; i < vNode.nodes.length; i += 1) {
		colorLines(vNode.nodes.item(i));
	}
}

colorLines(xfa.resolveNode("xfa.form.#subform")) ;

cd99
Beiträge: 32
Registriert: 09.12.2010, 16:36

Farbe der Linie ändern funktioniert nicht

Beitrag von cd99 » 23.08.2012, 15:44

Hi!
Danke, das sieht gut aus.
Teste das mal.

Insbesondere die Möglichkeit des Checks ob Class-Name "draw" war mir so nicht bekannt...
vG

cd99
Beiträge: 32
Registriert: 09.12.2010, 16:36

Farbe der Linie ändern funktioniert nicht

Beitrag von cd99 » 27.08.2012, 15:50

Hi nochmal,

Code: Alles auswählen

vNode.value.oneOfChild.edge is undefined
Macht direkt schlapp.
Dachte das Snippet geht alle Knoten durch und ändert nur wenn class===draw?

Irgendeine Idee?

Danke!

Antworten