Domino 9 und frühere Versionen > ND8: Entwicklung
Werte aus Array addieren
Sommersprosse:
Hallo zusammen,
ein Scriptanfänger hat mal 'ne Frage:
Folgendes Problem:
In der Helpdesk habe ich eine neue Funktion hinzugefügt, die einen Start-Stop der Ticketberechnenden Zeit ermöglichen soll. Das erfassen der Minuten funktioniert im Querysave auch soweit.
Beim Abschließen eines Tickets sollen nun die Werte aus diesem Feld zusammengezählt werden und von der Zeit assigned-completed abgezogen werden.
Folgende Informationen habe ich:
Ich habe ein Feld. DT Pause (kann Mehrfachwerte), welches mit Informationen gefüllt ist. Ich hatte das Feld zuerst vom Typ Zahl, aber da hat er mir gemeckert -NotesItem cannot be set to an arry of mixed data types ???
Darauf hin habe ich das ganze als Typ Text (bearbeitbar, aber verborgen) genommen und das Feld wird mit "Zahlen" gefüttert.
Den Code hierfür seht ihr hier.
--- Code: ---
If source.Document.PauseStat(0) ="2" Then
Dim strdt1 As String
Dim strdt2 As String
Dim vpause As Variant
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)
End If
Set item = doc.ReplaceItemValue("PauseStat",0)
End If
--- Ende Code ---
Sprich ich müsste die Textinhalte in Zahlen umwandlen und dann zusammen rechnen...
Ich habe die letzten Tage soviel über Arrays gelesen, aber wirklich schlauer bin ich nicht.... brauche ich das überhaupt oder kann ich das schon in meiner Funktion im Querysave zusammen rechnen und das Feld nur mit einem Wert füllen?
Für Verbesserungsvorschläge bin ich offen, auch was meinen Code betrifft.
Bin mir nicht sicher ob das ganze in die Kategorie "Help" gehört, da es eigentlich eher eine allgemeine Frage zu Lotus Scrip ist.
P.S. Gibt es eigentlich zu Arrays irgendwie ein Best Practice hier im Forum??
Hoffe mein Anliegen ist klar genug geschieldert, sonst noch mal nachaken.
Was ich noch vergessen habe... diesen Start Stop kann man natürlich jederzeit und beliebig oft ausführen, daher kann ich das fest dimensionieren.
Peter Klett:
Verstehe jetzt nicht ganz, was Du suchst. Geht es nur darum, die Werte in dem Array Pause zusammenzuzählen?
Dann kannst Du das so machen (in der Annahme, dass es sich um ganze Zahlen bis ca. 32.000 handelt)
Dim summe As Integer
summe = 0
Forall pause In doc.Pause
If Isnumeric (pause) Then
summe = summe + Cint (pause)
End If
End Forall
Ansonsten gibt es noch Long und Clng, Double und Cdbl usw.
Sommersprosse:
Hallo Peter,
Du hast das richtig verstanden, ich will einzig und allein die Werte aus dem Array Pause zusammen zählen.
Kann ich das eigentlich auch schon im Querysavew machen?
Axel:
--- 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 ---
Eigentlich ist das doch ein Widerspruch: beliebig oft... und fest dimensionieren. Für "beliebig oft" bräuchte man doch ein dynamisches Array.
Oder hab ich das falsch verstanden?
Axel
Peter Klett:
--- Zitat von: sommersprosse am 10.10.12 - 12:37:26 ---Kann ich das eigentlich auch schon im Querysave machen?
--- Ende Zitat ---
klar
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln