Anfrage

Ob nun dynamisch agierende Subformulare, oder einfach nur Textfelder...
Antworten
FormAT
Beiträge: 101
Registriert: 08.10.2008, 11:07

Anfrage

Beitrag von FormAT » 03.02.2012, 16:23

Formularerstellung mit dem LiveCycle Designer ES2

Hallo zusammen,

ich habe folgendes Problem und wäre sehr froh wenn mir jemand im Forum Helfen könnte:

Ich habe ein dynamisches Formular mit einer Namensliste als TF4 angelegt.

In einem numerischen Feld "Anzahlpersonen" soll nach anklicken der Schaltfläche "Hinzufuegen" die Anzahl der hinzugefügten Zeilen einschließlich der ersten Zeile als numerische Zahl erscheinen. Werden Zeilen deaktiviert bzw.keine Namen eingetragen muss sich die Zahl entsprechend verringern.
Werden im TF4 keine Namen eingetragen,
darf im Feld "Anzahlpersonen" nur der Wert "Null" erscheinen.

Zur besseren Verständigung habe ich ein Muster beigefügt.

Auf eine baldige Hilfe würde ich mich sehr freuen. Von Skripten habe ich leider keine Kenntnisse.

MfG - FormAt
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Anfrage

Beitrag von radzmar » 06.02.2012, 21:27

Also alles an der Anfrage hab ich nicht verstanden.
Zudem gibt es in deinem Beispiel gar keine Objekt namens "TF4".

Egal, den Counter für die Anzahl der Personen hab ich dir mal eingebaut.
Den Rest musst Du bitte nochmal erklären.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Anfrage

Beitrag von Merklin » 07.02.2012, 00:47

Hallo radzmar,

also wenn ich FormAT richtig verstehe, will er unbedingt erreichen, das das Textfeld2 ausgefüllt sein soll und dann erst der "Counter" zu zählen anfängt. Da er ja damit rechnen will. Also kein Name keine Counterzahl. Mit dem TF ausblenden habe ich allerdings auch nicht kapiert.

Meine Idee wäre gewesen, das Pluszeichen erst sichtbar zu machen, wenn Textfeld2 ausgefüllt ist, kann es aber leider nicht umsetzen. Vielleicht hättest du eine Idee?
Müsste natürlich für jede Zeile separat sein.

VG Merklin

FormAT
Beiträge: 101
Registriert: 08.10.2008, 11:07

Anfrage

Beitrag von FormAT » 07.02.2012, 15:52

Hallo radzmar,

zunächst sage ich Danke für Deine Lösung.
Im Prinzip hat Merklin recht, erst wenn ich einen Namen eingebe darf gezählt werden. Ich muss ja auf einer anderen Seite damit rechnen.
Das Teilformular(natürlich3)öffnet sich erst, wenn ich eine entsprechende Schaltfläche betätige. Bis dahin funktioniert ja auch alles. Bei einer deaktivierung muss
aber wieder null oder keine Zahl im kästchen hinterlegt sein. Bliebe die Zahl dann wird bereits auf einer anderen Seite ein Betrag ausgewiesen, das darf dann aber nicht sein. Habe ich mich verständlich ausgedrückt?
Gibt es eine Lösung?

Viele Grüße und Danke
FormAT

FormAT
Beiträge: 101
Registriert: 08.10.2008, 11:07

Anfrage

Beitrag von FormAT » 07.02.2012, 16:13

Hallo Merklin,

Danke auch für Deine Teilnahme.
Dein Ansatz ist auch richtig - Kein Name keine Anzahl.

Beide Zeilen liegen auf der Originalseite im Teilformular 4 (darum hatte ich dies erwähnt)und können Ein- bzw. Augeblendet werden.
Mit dem Ausblenden muss der Wert gleich Null oder das Feld leer sein ansonsten habe ich Schwierigkeiten mit meiner Berechnung.

VG-FormAT

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

Anfrage

Beitrag von radzmar » 07.02.2012, 19:44

Achso.
Dafür hab ich folgenden Ansatz.
Im Exit Event des Textfeldes 2 durchläuft eine Schleifen alle Instanzen des Textfeldes 2 und zählt eine Variable hoch, wenn dieses Feld nicht null ist.

Das Skript sieht dann so aus;

Code: Alles auswählen

var Names = xfa.resolveNodes("TF3[*].Textfeld2");
var Sum = 0;

for (var i = 0; i < Names.length; i++) {
    if (!Names.item(i).isNull) {
        Sum++;
    } else {
        continue;
    }
}
TF2.anzahlpersonen.rawValue = Sum;
Das Skript funktioniert auch in anderen Events, wie dem layoutReady Event, aber dieses wird viel zu oft ausgelöst, weshalb das Formular ggf. träge sein könnte und daher bietet sich hier das exit Event mehr an.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Anfrage

Beitrag von Merklin » 08.02.2012, 00:18

Hallo radzmar,

das sieht schon sehr Gut aus.

Einen kleinen Haken hat die Sache aber noch. Wenn man eine Spalte wieder löscht, verringert sich der Wert im Textfeld "anzahlpersonen" leider nicht. Erst wenn man wieder in das Textfeld 2 klickt(exit), wird der Wert angepasst. Das führt aber zu Irritationen des Benutzers. Kann man das noch anpassen?

VG Merklin

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

Anfrage

Beitrag von radzmar » 08.02.2012, 08:37

Guter Hinweis.
Dafür muss man noch ein Script im indexChange Event von TF3 hinzufügen, damit das exit Event nochmal ausgeführt wird, wenn sich die Anzahl der Teilformulare ändert.

Code: Alles auswählen

Textfeld2.execEvent("exit");

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

Anfrage

Beitrag von Merklin » 08.02.2012, 11:01

Hallo radzmar,

große Klasse.

Jetzt funktioniert es. Danke

VG Merklin

FormAT
Beiträge: 101
Registriert: 08.10.2008, 11:07

Anfrage

Beitrag von FormAT » 08.02.2012, 16:22

Hallo radzmar,

nach Eingabe aller Scripte in mein Original-Formular hat alles einwanfrei geklappt.
Eine feine Lösung.

Nochmals herzlichen Dank.

MfG - FormAT

Antworten