Autor Thema: LotusScript  (Gelesen 1693 mal)

Offline schurke

  • Junior Mitglied
  • **
  • Beiträge: 61
  • Geschlecht: Männlich
LotusScript
« 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
« Letzte Änderung: 21.09.06 - 09:50:40 von schurke »
notes 6.5.5

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: LotusScript
« Antwort #1 am: 14.09.06 - 08:39:25 »
Was sagt denn der Debugger über den Inhalt des Feldes?

Rainer
Rainer Zaske

MCSD - C#

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: LotusScript
« Antwort #2 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)
†090620141300

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz