Seite 1 von 1
Skripte in Felder über Button neu berechnen lassen
Verfasst: 19.01.2012, 10:04
von ZygmuntDD
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
Skripte in Felder über Button neu berechnen lassen
Verfasst: 19.01.2012, 16:05
von armine
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
Skripte in Felder über Button neu berechnen lassen
Verfasst: 20.01.2012, 09:12
von ZygmuntDD
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...
Skripte in Felder über Button neu berechnen lassen
Verfasst: 20.01.2012, 10:35
von armine
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
Skripte in Felder über Button neu berechnen lassen
Verfasst: 20.01.2012, 12:03
von ZygmuntDD
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
Skripte in Felder über Button neu berechnen lassen
Verfasst: 20.01.2012, 23:00
von armine
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