Tabellenzugriff mit Zeilen- und Spaltenindex

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
Benutzeravatar
Homer71
Beiträge: 19
Registriert: 27.10.2014, 14:13

Tabellenzugriff mit Zeilen- und Spaltenindex

Beitrag von Homer71 » 18.03.2015, 14:54

Hallo Leute,

ich knabber hier an einem Problem und finde keine Lösung.

Ich habe in meinem Formular eine Tabelle "Tabelle1".
Diese Tabelle hat eine Kopfzeile und eine Datenzeile ("Zeile1").

Jetzt möchte ich gerne über einen Zeilen und Spaltenindex die Zellen in der 5. Spalte bis zur 8. Spalte in Zeile1 schreibschützen.
Über

Code: Alles auswählen

Tabelle1.Zeile1.NameSpalte5.access = "readOnly";
Tabelle1.Zeile1.NameSpalte6.access = "readOnly";
usw. wäre das natürlich kein Problem.

Ich muss allerdings über den Zeilen- und Spaltenindex auf die Tabelle zugreifen.

Wie kann man das bei einer Tabelle mit Kopfzeile machen?



Ich bin für jede Hilfe dankbar.

Andy

Benutzeravatar
Homer71
Beiträge: 19
Registriert: 27.10.2014, 14:13

Tabellenzugriff mit Zeilen- und Spaltenindex

Beitrag von Homer71 » 19.03.2015, 10:29

Mit ein wenig ausprobieren habe ich jetzt folgende Lösung gefunden:

Code: Alles auswählen

var oNodes = xfa.form.data.Teilformular.Tabelle1.nodes;
    
for(i=5; i < 9; i++) {
    oNodes.item(3).nodes.item(i).access = "readOnly";
}
Nach der Zuweisung enthält oNodes alle Tabellenzeilen. Dabei gelten folgende Zusammenhänge:
  • oNodes.item(1) entspricht der Kopfzeile.
  • oNodes.item(2) entspricht _Zeile1.
  • oNodes.item(3) entspricht der ersten Datenzeile (Zeile1).
  • usw.
  • Dementsprechend steht dann z.B. oNodes.item(3).nodes.item(0) für die erste Zelle in der ersten Datenzeile meiner Tabelle.
  • oNodes.item(1).nodes.item(4) steht dann für die 5. Zelle in der Kopfleiste.
Mit dem Code oben kann ich nun durch meine Tabelle loopen und in einer for-Schleife bequem Änderungen vornehmen.

Vielleicht kann ja der eine oder andere diese Info gebrauchen.

Andy

Antworten