Skripte in Felder über Button neu berechnen lassen

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
ZygmuntDD
Beiträge: 15
Registriert: 19.10.2011, 08:33

Skripte in Felder über Button neu berechnen lassen

Beitrag von ZygmuntDD » 19.01.2012, 10:04

Hallo,

gibt es eine Möglichkeit, über z.B. ein change event auf einer DropDownListe die Skripte aller Felder einer Instance neu berechnen zu lassen?

In meinem Formular werden über eine DropDownListe eine gewissen Anzahl Instancen erzeugt. Abhängig von der anzahl dieser, werden in den einzelnen Instanzen Berechnungen ausgeführt. Ändert man nun nachträglich die Anzahl der Instancen, stimmen die Berechnungen nicht mehr, und man muss jedes Feld neu anklicken. Eine automatische Lösung wäre da sehr anwendungsfreundlicher. :)

Vielen Dank für Hilfe.
Zygmunt

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Skripte in Felder über Button neu berechnen lassen

Beitrag von armine » 19.01.2012, 16:05

Hallo Zygmunt,

setze doch ins exit-Ereignis der Dropdownliste [font=courier new]xfa.form.recalculate(1)[/font] ein.
Der Befehl ist besonders beim Löschen von Instanzen hilfreich.

vg armine

ZygmuntDD
Beiträge: 15
Registriert: 19.10.2011, 08:33

Skripte in Felder über Button neu berechnen lassen

Beitrag von ZygmuntDD » 20.01.2012, 09:12

Hallo Armine,

danke für deinen Hinweis.
Aber ich nehme mal an das die recalculate Methode nur bei calculate Ereignissen greift. Bei mir sind es aber durchweg change Ereignisse, ja/nein Fragen zum Beispiel.

Habe es dennoch probiert, funktioniert aber wirklich nicht...

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Skripte in Felder über Button neu berechnen lassen

Beitrag von armine » 20.01.2012, 10:35

Hallo Zygmunt,

im [font=courier new]calculate[/font] wurde ich das nicht einsetzen. Anbei eine Datei, in der bei einer Dropdownliste im [font=courier new]exit[/font], in einer weiteren im [font=courier new]change [/font]aus einer Tabelle die 2. Zeile gelöscht wird. Das reisst Lücken in den Zeilenzähler. Mit aktiviertem [font=courier new]recalculate[/font] werden die geschlossen.

Wenn du dein Problem immer noch nicht lösen kannst, dann lade doch das PDF hoch.

vg armine
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

ZygmuntDD
Beiträge: 15
Registriert: 19.10.2011, 08:33

Skripte in Felder über Button neu berechnen lassen

Beitrag von ZygmuntDD » 20.01.2012, 12:03

Ich habe mal einen Ausschnitt meines Formulars vereinfacht dargestellt. Nicht über die Namen und Bezeichnungen wundern. :)
Das vollständige Formular kann ich auf Grud des inhaltes nicht hochladen.

Man wählt am Anfang die Anzahl der Instanzen, und kann dann über eingabefelder oder dropdownlisten berechnungen durchführen lassen, wofür es Punkte gibt. Füge ich nun eine weitere Instanz hinzu, bleiben die Punkte bestehen. Und das lässt sich in meinem skript, soweit ich das sehen kann, nicht über ein recalculate ändern.

Fehlermeldungen ignorieren, nur schnell zusmmengeschustert.


Grüße und Danke,
Zygmunt

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

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Skripte in Felder über Button neu berechnen lassen

Beitrag von armine » 20.01.2012, 23:00

Hallo Zygmunt,

du hast Recht, bei deiner Art die Werte zu ermitteln kann [font=courier new]recalculate [font=verdana]nicht[/font][/font] funktionieren, weil es nur [font=courier new]calculate [font=verdana]neu ausführt und kein Verständnis für [/font][/font][font=courier new]change[/font][font=courier new][font=verdana] [/font][/font]hat. Und [font=courier new]xfa.event.newText[/font] ist auch nicht mehr, was es mal war.

Schlussfolgerung: Werte müssen per [font=courier new]calculate[font=verdana] ermittelt werden [/font][/font]und schon geht’s, vgl. [font=courier new]Formular1.Test.Schließen.Schliessmechanismen.Kraftaufwand.NumFeld::calculate - (FormCalc, client)[/font].

vg armine
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten