Domino 9 und frühere Versionen > ND6: Entwicklung

Perfomante Summierung von Werten aus mehreren Optionsfeldern

(1/2) > >>

Axel:
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

jBubbleBoy:
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.

pram:
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

koehlerbv:
Am schnellsten sollte
@Sum (@TextToNumber (Feld1 : Feld2 : Feld3 ...))
sein.

HTH,
Bernhard

Axel:
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.



--- Zitat von: jBubbleBoy am 08.04.10 - 15:45:36 ---Zahlen als Aliaswerte gibt es nicht, das ist Text ;)

--- Ende Zitat ---

Das ist mir auch klar. Trotzdem sind es Zahlen, wenn auch im Textformat.   ;)  ;D

Axel

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln