Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: schurke am 14.09.06 - 08:37:56

Titel: LotusScript
Beitrag von: schurke am 14.09.06 - 08:37:56
Hallo @ all,

kann mir jemand vielleicht helfen mein script ans laufen zu bringen.

Über eine Schaltfläche möchte ich eine Berechnung der Zeiterfassung anstossen.
Leider ergibt es immer einen "Type mismatch"
Das Script hängt sich auf an der Zeile "kommt_std=Cint(Left(doc.kommt(0),2)"

Sub Click(Source As Button)
   Dim ws As New NotesuIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim s As New NotesSession
   Dim kommt_std As Integer
   Dim kommt_min As Integer
   Dim kommt_minuten As Integer
   Dim geht_minuten As Integer
   Dim zeit_ist_tag  As Integer
   Dim zeit_soll_tag As Integer
   Dim diff As Integer
   
   Dim kommt_ws As String
   Dim geht_std As Integer
   Dim geht_min As Integer
   Dim geht_ws As String
   Dim diff_std As Integer
   Dim diff_min As Integer
   Dim istzeit As Long
   Dim stunden As Integer
   Dim ws_feld1 As Integer
   
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   
   If doc.art(0) = "Krank"  Or doc.art(0) = "Urlaub" Or doc.art(0) = "Feiertag" Then
      diff_std = 7
      diff_min = 00
      doc.pause = 0
      doc.stunden = "7:00"      
      doc.uestd = ""
      Goto Ende
   End If
   
   kommt_std =Cint(Left(doc.kommt(0),2))
   kommt_ws = Right(doc.kommt(0),5)
   kommt_min = Cint(Left(kommt_ws,2))
   
   geht_std =Cint(Left(doc.geht(0),2))
   geht_ws = Right(doc.geht(0),5)
   geht_min = Cint(Left(geht_ws,2))
   
   kommt_minuten = (kommt_std * 60) + kommt_min
   geht_minuten = (geht_std * 60) + geht_min
   zeit_ist_tag = geht_minuten - kommt_minuten - doc.pause(0)
   zeit_soll_tag = 420
   zeit_ist_tag = zeit_ist_tag + (doc.sonderstunden(0) * 60)
   diff = zeit_ist_tag - zeit_soll_tag
   doc.uestd = diff
   stunden = (zeit_ist_tag \ 60)
   ws_feld1 = (stunden * 60) - zeit_ist_tag
   If ws_feld1 < 0 Then
      ws_feld1 = ws_feld1 * (-1)
   End If
   
   doc.stunden = Cstr(stunden) + ":" + Right("00" + Cstr(ws_feld1),2)   
   
Ende:
End Sub
Titel: Re: LotusScript
Beitrag von: ZaLudtske am 14.09.06 - 08:39:25
Was sagt denn der Debugger über den Inhalt des Feldes?

Rainer
Titel: Re: LotusScript
Beitrag von: rar am 14.09.06 - 08:44:55
Wenn in dem Feld eine Zahl steht, musst du sie mit cstr() in einen String umwandeln. Denn
Zitat
Left function 

Beispiel
Extracts a specified number of the leftmost characters in a string.


HTH
-daniel (Jäger)