Domino 9 und frühere Versionen > ND8: Entwicklung

Werte aus Array addieren

<< < (2/3) > >>

Fineas:
Wenn Du schon Mehrfachwerte hast UND es sich idealerweise um Zahlen handelt, dann nimm doch einfach ein zweites berechnetes Feld, das mit @SUM( MEHRFACHWERTEZAHLENFELD ) das Ergebnis bereitstellt. Das kannst Du dann mittels Script abgreifen ...

Ansonsten sollte es in Script doch kein Problem sein, mittels FORALL über die Feldinhalte zu gehen und eine temporäre Variable aufzusummieren.

Gruß, Heiko

Sommersprosse:


--- Zitat von: sommersprosse am 10.10.12 - 11:46:18 ---
Was ich noch vergessen habe... diesen Start Stop kann man natürlich jederzeit und beliebig oft ausführen, daher kann ich das fest dimensionieren.


--- Ende Zitat ---

Ich hab' mich schlicht und einfach verschrieben.... es muss dynamisch sein, klar, es sollte heißen nicht fest dimensionieren, sorry.

das Problem (vielleicht ist aber auch keines?) ist daß mein Feld aber vom Typ Text und nicht Zahl ist, oder seh ich das falsch. Dann ist pause eben nicht numeric?

Peter Klett:
Isnumeric bedeutet nur, dass der Wert in eine Zahl umwandelbar ist, nicht, dass er schon eine Zahl ist.

Sommersprosse:

--- Zitat von: Peter Klett am 10.10.12 - 13:05:16 ---Isnumeric bedeutet nur, dass der Wert in eine Zahl umwandelbar ist, nicht, dass er schon eine Zahl ist.

--- Ende Zitat ---

Hilfe lesen bildet  :)

Tests the value of an expression to determine whether it is numeric, or can be converted to a numeric value.

Danke für den Hinweis, werde das mal in mein Script einfügen und testen.

Sommersprosse:
Es hat geklappt, danke für die Tipps.

Frage an die Experten wäre nur noch wie ich das noch optimieren, sprich zusammen fassen könnte. Kommt mir noch umständlich vor....


--- Code: ---If source.Document.PauseStat(0) ="2" Then

Dim strdt1 As String
Dim strdt2 As String
Dim vpause As Variant
Dim sum_min As Integer
Dim elapsed As String

Set item = doc.GetFirstItem("DTPauseStart")
strdt1 = item.text
Set item = doc.GetFirstItem("DTPauseStop")
strdt2 = item.text
elapsed = DTCalcpause.GetElapsedTime( strdt1, strdt2 )
If source.Document.DTPause(0) = "" Then
Call doc.ReplaceItemValue ("DTPause", elapsed)
Else

vpause = doc.GetItemValue ("DTPause")
Redim Preserve vpause(Ubound(vPause) + 1)
vpause(Ubound(vpause)) = elapsed
Call doc.ReplaceItemValue ("DTPause", vpause)

sum_min = 0
Forall pause In doc.DTpause
If Isnumeric (pause) Then
sum_min = sum_min + Cint (pause)
End If
End Forall
Call doc.ReplaceItemValue ("DTPause", sum_min)
End If

Set item = doc.ReplaceItemValue("PauseStat",0)
End If
--- Ende Code ---


Kann das ganze noch irgendwie in das zusammenstellen des Arrays packen?

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln