Seite 1 von 1
Formular zur Laufzeit generieren
Verfasst: 12.02.2014, 15:12
von rade17
Hallo Leute,
ich bins wieder einmal und bringe neue Fragen mit

. Diesmal bestimmt wieder etwas, das für jeden interessant sein könnte.
Meine Frage ist nun, ob es möglich ist beispielsweise eine Tabelle zur Laufzeit zu generieren. Sprich ich möchte sagen wir einen Radiobutton markieren und dadurch eine Tabelle mit bestimmten Zeilen, Spalten und gefüllten Werten und Felder erhalten. Ich schaffe es bis jetzt per Ein- und ausblenden die Zeilen kommen und gehen zu lassen. Nur stimmen dann meist die Abstände nicht mehr und die dynamische Zeilenerweiterung funktioniert dann auch nicht mehr.
Es ist doch bestimmt auch irgendwie möglich eine Tabelle per Script an eine bestimmte Position generieren zu lassen

.
Beste Grüße,
rade17
Formular zur Laufzeit generieren
Verfasst: 12.02.2014, 16:13
von nele_sonntag
Ich bin mir nicht ganz sicher, was Du meinst. Natürlich kannst Du eine bestimmte Tabelle an einem bestimmten Platz "erscheinen" lassen. Generieren zur Laufzeit nicht wirklich. Das Objekt muss schon im XDP vorhanden sein. Du kannst es per Skript auf sichtbar setzen.
Dafür bräuchte es schon eine genauere Skizzierung der Anforderungen von Dir...zumindest für mich.
LG Mandy
Formular zur Laufzeit generieren
Verfasst: 13.02.2014, 09:37
von rade17
Hi,
hab jetzt weiter dran gewerkelt und etwas mehr geschafft. Kann jetzt verschiedene Teilformulare ein- bzw. ausblenden und so die Tabelle quasi während der Laufzeit bestimmen. Nur leider gehen die schaltflächen zum addieren und subtrahieren der Zeilen bzw. Teilformulare dann nicht mehr

Liegt es daran, dass die presence auf hidden liegt? Wenn sie auf invisible von anfang liegt, dann geht es komischerweise, jedoch auch falsch
Edit: Ich glaube ich weiß warum es nicht funktioniert. Liegt wohl daran, dass die hinzugefügte Stelle ja den Standart "hidden" hat und somit auch "hidden" addiert wird. Jedoch kann ich im addieren script nicht die bestimmte Zeile dann auf "visible" setzen, weil mir der Name der Zeile während der Laufzeit fehlt und mit dem Debugger komm ich auch kaum klar... Unterscheidet sich stark von dem was ich sonst so kenne.
Edit2: Bin jetzt ein Stück weiter gekommen. Wenn ich bei setzen der presence
Code: Alles auswählen
tf_coverflow.resolveNode("tf_coverflow[1]").presence = "visible"
wähle, dann schafft er es wenigstens eine zweite Zeile zu addieren. Deswegen wollte ich einfach mal eine globale variable erstellen mit dem Anfangswert "0" und dann einfach "tf_coverflow
" benutzen, jedoch mit nem Fehler, dass der SOM-Ausdruck nicht erlaubt wäre -.- i ist ja nichts anderes als 1, wieso geht das da nicht :/
Ich werde einfach weiter basteln aber vielleicht hast du ja DEN Rat für mich 
Beste Grüße,
rade17
Formular zur Laufzeit generieren
Verfasst: 13.02.2014, 12:29
von nele_sonntag
Eijeiejie...
Also Deine Optionskästchenauswahl ist nicht so sauber gesriptet. Du hast eine Javscript-Syntax, hast es aber auf Formcalc gestellt! Schau Dir dochmal zur "saubereren" Programmierung mein Tutorial an, wenn Du magst:
http://www.acronaut.de/forum48/4162.html
Den Code für die Optionskästchen solltest Du immer in die umgebende Optionsfeldliste packen und dort die Bindungswerte abfragen:
Code: Alles auswählen
if(this.rawValue == "1"){
xfa.resolveNode("tf_pdf").presence = "visible";
xfa.resolveNode("tf_coverflow").presence = "hidden";
}else{
xfa.resolveNode("tf_pdf").presence = "hidden";
xfa.resolveNode("tf_coverflow").presence = "visible";
}
Rest schaue ich..
Formular zur Laufzeit generieren
Verfasst: 13.02.2014, 12:36
von nele_sonntag
Soderle, dann haste den Code im "add" and "min" Buton jeweils vertauscht. IÜ brauchst Du beim Hinzufügen kein recalcuate.
Im "Coverflow" benutzt du auch schon wieder insertInstance statt addInstance!
So, muss jetzt ma ins Meeting, schaue später weiter...
Formular zur Laufzeit generieren
Verfasst: 13.02.2014, 13:46
von rade17
Hab das jetzt mal umgebastelt, war ja nur Formsache. Aber das mit den dynamischen Zeilen geht immer noch nicht -.- ich poste mal meinen aktuellen stand.
Formular zur Laufzeit generieren
Verfasst: 14.02.2014, 11:11
von rade17
Habs gelöst, yeah

So langsam komm ich in Javascript rein und jetzt bringen mir auch meine Programmierkentnisse was

Für alle die an einem selben Problem hängen.. Habe in form:ready ein script erstellt, dass jedes mal, wenn sich etwas im Formular ändert eine Schleife durchlaufen lässt, die schaut wieviele Instanzen von einem Objekt da sind und für diese Anzahl der Objekte das Objekt dann auf "visible" setzt. In meinem Beispiel:
Code: Alles auswählen
for(var i = 1; i < tf_pdf.instanceManager.count; i++){
xfa.resolveNode("tf_pdf["+ i +"]").presence = "visible";
}