Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Axel am 08.04.10 - 14:47:26
-
Heute will ich auch mal wieder ein Problem haben, wobei es eigentlich kein Problem ist. Sondern mangels Erfahrung brauche ich einen Tipp.
Ich habe eine Maske zur Risikobewertung von Projekten mit 40 Optionsfeldern. Hier arbeite ich mit Zahlen als Aliaswerten. Am Ende der Maske soll nun eine Summe über alle Optionsfelder gebildet werden.
Wie ich das prinzipiell machen muss ist mir klar, nur wie am performantesten?
Axel
-
Zahlen als Aliaswerte gibt es nicht, das ist Text ;)
Am einfachsten wäre es mit @for und @GetField zu arbeiten, Perfomanter wäre es natürlich die Felder manuell zu summieren.
-
Mein Vorschlag LS im Recalc verwenden
dim summe as Double
summe = 0
forall item in doc.items
if item.name like "option_*" then' Felder müssen option_1, option_2 usw heissen
forall alia in item.values
summe = summe + val(alia)
end forall
end if
end forall
call doc.replaceItemValue("total", summe)
Ist mit sicherheit nicht die performanteste (da müsstest du alle möglichen Feldnamen angeben) dafür kurz und wartbar (sofern deine Optionsfelder eindeutig benannt sind)
Die Berechnung wird aber trotzdem innerhalb ~10ms durch sein ;)
Gruß
Roland
-
Am schnellsten sollte
@Sum (@TextToNumber (Feld1 : Feld2 : Feld3 ...))
sein.
HTH,
Bernhard
-
Danke für die Tipps. Die Formelvariante sieht ganz gut aus. Mal sehen wie ich die eingebunden bekomme. sonst werde ich's mal mit Robert's Script-Variante probieren.
Dazu werde ich auch mal testen, ob der Recalc-Event zuverlässig ausgeführt wird.
Zahlen als Aliaswerte gibt es nicht, das ist Text ;)
Das ist mir auch klar. Trotzdem sind es Zahlen, wenn auch im Textformat. ;) ;D
Axel
-
Zu beachten sind insbesondere Dezimalzahlen.
Diese sind auf englsichen Systemen mit "." und nicht mit "," getrennt.
-
Zu beachten sind insbesondere Dezimalzahlen.
Diese sind auf englsichen Systemen mit "." und nicht mit "," getrennt.
Das ist bei mir in diesem Fall kein Thema.
Axel
-
Hallo Axel,
Formel ist auf alle Fälle um ein vielfaches schneller - die Scipt-Lösung ist für den Fall mit kanonen auf Spatzen schießen - und du weist, daß ich näher an LotusScript stehe...
Toni