Seite 1 von 1
Zugriff auf alle Formularobjekte via Schleife
Verfasst: 05.05.2010, 10:47
von Erasor
Hallo zusammen,
den Codeschnippsel
Code: Alles auswählen
//for-Schleife, die alle Seiten des Formulars durchgeht
for (var i = 0; i < xfa.host.numPages; i++)
{
var oFields = xfa.layout.pageContent(i);
var nodesLength = oFields.length;
//for-Schleife, die alle Objekte auf dieser Seite durchgeht
for (var j = 0; j < nodesLength; j++)
{
var oItem = oFields.item(j);
//Jetzt kann über oItem nacheinander auf jedes Objekt
//zugegriffen werden. z.B.
oItem.caption = "neue Caption";
}
}
habe ich schon gefunden. Damit kann ich auf jedes Objekt zugreifen, das auf den zu dieser Zeit sichtbaren Seiten existiert. Jetzt komme ich zu meiner Frage:
Was muss ich an dem Code verändern, damit ich auch auf Objekte zugreifen kann, die außerhalb der aktuell angezeigten Seiten liegen?
Grüße
Erasor
Zugriff auf alle Formularobjekte via Schleife
Verfasst: 05.05.2010, 11:57
von yuc2me
Hallo Erasor,
es wäre schön, wenn wir eine Beispiel-PDF haben. Allein aus dem Kopf heraus reicht meine Vorstellungskraft leider nicht.
MfG, yuc2me.
Zugriff auf alle Formularobjekte via Schleife
Verfasst: 05.05.2010, 12:03
von Erasor
Hallo,
danke für deine Antwort. Im Prinzip kann meine Beispieldatei aus einem anderen Post von mir herhalten:
http://www.acronaut.de/forum35/1729.html
In der Beispieldatei geht es darum, die Inhalte der Tabellen des Unterformulars "unsichtbar" auf die einzelnen Formularobjekte zu verteilen. Das funktioniert auch prima solange die Tabellen im Formular sichtbar sind. Sobald ich jedoch die Tabellen aus dem Layout ausschließe, kann ich über die For-schleife nicht mehr auf die Tabellen zugreifen...
Grüße
Erasor
Zugriff auf alle Formularobjekte via Schleife
Verfasst: 05.05.2010, 12:47
von yuc2me
Ich habe mir es mal angeschaut.
Es gestaltet sich als schwierig, hätte jetzt gedacht, das man, wenn man die Seite
unsichtbar direkt aufruft dann auch referenzieren kann, aber so wie ich wollte das Formular nicht.
Ich weiß ja jetzt nicht genau, was du mit den Zugriffen machen möchtest, aber hier mal eine kleine Idee:
Code: Alles auswählen
<script contentType="application/x-javascript" name="changeLanguage">
Language = new Array(new Array(), new Array());
Language[0][0] = "Überschrift Antragsteller";
Language[0][1] = "Vertreter";
Language[0][2] = "Datum";
Language[0][3] = "Überschrift Kundendaten";
...
Language[1][0] = "Inquirer";
Language[1][1] = "representative";
Language[1][2] = "date";
Language[1][3] = "Customer";
...
</script>
Das zu den Variablen und du kannst vom
change_event aus auf das array zugreifen und auch so deine Beschriftung ändern...
Das spart mit Sicherheit eine Menge Platz, und es ist auch unsichtbar.
Ich hoffe ich konnte dennoch helfen.
Zugriff auf alle Formularobjekte via Schleife
Verfasst: 05.05.2010, 13:12
von Erasor
Hallo [user=4611]yuc2me[/user],
das ist mal ein neuer Lösungsvorschlag...
Nun kommt das typische aber: Wie erreiche ich, dass jedes Feld "seinen" Eintrag bekommt? Bei den Listen für die Comboboxen wäre die Umstellung kein Problem (ein Array je ComboBox), jedoch sehe ich gerade keine Lösung für die einzelnen Textfelder. Irgendwo im Textfeld müsste ich dann ja die entsprechende ID hinterlegen, damit ich über eine entsprechende Funktion auf die richtige Zeile im Array zugreifen kann.
Unabhägig davon wäre es aber natürlich trotzdem interessant, ob und wie man auf die ausgeblendeten Objekte zugreift...
Grüße
Erasor
Zugriff auf alle Formularobjekte via Schleife
Verfasst: 05.05.2010, 14:31
von yuc2me
Ich habe mir mal erlaubt deine PDF zu ändern... Die Sprachumstellung funktioniert. Das andere schaffst du dann sicher selbst.
Zugriff auf alle Formularobjekte via Schleife
Verfasst: 05.05.2010, 14:38
von Erasor
Hi!
Vielen Dank für deine Hilfe.
Deine Lösung scheint in der Tat einfacher!
Ich werde also meine Tabellen als Array im Quelltext ablegen und gut is
Falls doch mal jemand über die Lösung des eigentlichen Problems stolpern sollte, scheut euch nicht, diesen 'Fred' wieder auszubuddeln...
[user=4611]yuc2me[/user], dir nochmal ein herzliches DANKE!
Erasor