Mehrsprachige Formulare über Arrays

Ob nun dynamisch agierende Subformulare, oder einfach nur Textfelder...
Antworten
FrankH
Beiträge: 1
Registriert: 24.06.2013, 14:20

Mehrsprachige Formulare über Arrays

Beitrag von FrankH » 24.06.2013, 15:26

Hallo,

ich möchte ein recht umfangreiches Formular in deutsch und englisch darstellen. Es enthält verschiedenste Elemente (Text, Textfeld, Optionsfeldm, Kontrollkästchen und DropDownfleder). Dazu habe ich ein zweidimensionales Array angelegt, welches in verschiedene Bereiche gegliedert ist (0..9 Text;10...29 Textfelder;30...40 Optionsfelder etc.) Der Zeilenvektor stellt die Sprache dar (0-Deutsch/ 1-Englisch).

[fontsize=2][fontsize=2]
[fontsize=1]var[/fontsize][/fontsize]
[/fontsize]
[fontsize=1] Sprache_B = new Array(new Array(), new Array());[/fontsize]
[fontsize=2]
[fontsize=1]Sprache_B [0][0] = "1. Allgemeine Angaben";[/fontsize]

[fontsize=1]Sprache_B [0][1] = "1.1 Beantragende Stelle";[/fontsize]

[fontsize=1]Sprache_B [0][2] = "1.2 Grund der Vorlage";[/fontsize]

[fontsize=1]...[/fontsize]

[fontsize=2][fontsize=1]Sprache_B [1][0] = "1. General Information";[/fontsize]

[fontsize=1]Sprache_B [1][1] = "1.1. Requesting office:";[/fontsize]

[fontsize=1]Sprache_B [1][2] = "1.2. Reason for submission"[/fontsize]

[fontsize=1]...[/fontsize]

Über eine Funktion, die durch ein Klick Ereignis aufgerufen wird, werden die einzelnen Felder angesteuert und entsprechend umbenannt.
[fontsize=1][fontsize=1]
// Ruft den zugehörigen Wert der Optionsgruppe asl Variable newNum ab (0 = Deutsch / 1 = Englisch)
[/fontsize]

var
newNum = OF1.rawValue;

// Ruft die Funktion "Sprachwechsel" in der Variablen/Modul "Sprachen" auf und übergibt die Variable newNum

Sprachen.SprachWechsel(newNum);
[/fontsize]
 

[fontsize=1]function[/fontsize]
[fontsize=1] SprachWechsel(Sprachennummer) {[/fontsize]

[fontsize=1]//Durchlauf Textfelder[/fontsize]

[fontsize=1][/fontsize]

[fontsize=1]for (var i=0; i<=2; i++) {[/fontsize]

[fontsize=1]// Durchlauf aller Bezeichnungsfelder (Formular.Teilformular.Textfeld) und Übergabe der Matrix-Elemente[/fontsize]

[fontsize=1]xfa.resolveNode("Seite.B.Text"+i+"").rawValue = Sprache_B[Sprachennummer] [/fontsize]

[/fontsize][/fontsize][fontsize=2][fontsize=2][fontsize=1]}[/fontsize]

[fontsize=1]for (var i=10; i<=24; i++) {[/fontsize]

[fontsize=1]// Durchlauf aller Textfelder (Formular.Teilformular.Textfeld) und Übergabe der Matrix-Elemente[/fontsize]

[fontsize=1]// Bsp.: Sprache Deutsch --> 0, Bezeichnungsfeld 1 --> Haus[/fontsize]

[fontsize=1]xfa.resolveNode("Seite.B.txt_"+i+"").caption.value.resolveNode("#text").value = Sprache_B[Sprachennummer]

[/fontsize][fontsize=1]}[/fontsize]

[fontsize=1][/fontsize]

[fontsize=1]for (var i=30; i<=33; i++) {[/fontsize]

[fontsize=1]// Durchlauf aller Optionsfelder (Formular.Teilformular.Textfeld) und Übergabe der Matrix-Elemente[/fontsize]

[fontsize=1]// Bsp.: Sprache Deutsch --> 0, Bezeichnungsfeld 1 --> Haus[/fontsize]

[fontsize=1]xfa.resolveNode("Seite.B.OF2.O"+i+"").caption.value.resolveNode("#text").value = Sprache_B[Sprachennummer][/fontsize][/fontsize][/fontsize]

[fontsize=2][fontsize=2][fontsize=1]}[/fontsize]

[fontsize=1]}[/fontsize]

[fontsize=1][/fontsize] 

Jetzt kommt das Problem.

Damit das ganze funktioniert, muss das umschließende Teilformular auf "Position" stehen. Die Schleifen funktionieren nämlich nur, wenn die Objekte zusammenhängend in der Hierarchie dargestellt werden. Sobald ich auf "Textfluss" umstelle, funktionieren die Schleifen nicht mehr, weil die Objekte in der Hierarchie wandern. Jedoch ist es notwendig, dass das Formular über Textfluss dynamisch bleibt, weil es mehrere Seiten lang werden soll.

Lassen sich die Schleifen irgendwie modifizieren, sodass die Reihenfolge in der Objekthierarchie egal ist oder ist diese Vorgehensweise generell für meine Zwecke unbrauchbar? Wenn ja, dann wäre ich über Alternativen sehr dankbar.

 

[/fontsize][/fontsize]

Antworten