Notes Code

  • Hallo zusammen, ich soll mich mit einem Agenten beschäftigen. Nur ich komm mit dem Quellcode nicht klar, ich hab schon in Büchern nachgeschlagen und leute gefragt, nichts konnte mir weiter helfen. Vielleicht könnte mir einer den Quellcode kommentieren, das würde mir wirklich weiter helfen.


    Options:



    Option Public
    Option Declare



    Declarations:



    Dim session As notessession
    Dim db As notesdatabase
    Dim doc As notesdocument
    Dim dc As notesdocumentcollection
    Dim i As Integer
    Dim rtitem As notesrichtextitem
    Dim item As NotesItem
    Dim plainText As String
    Dim pos1 As Integer
    Dim pos2 As Integer
    Dim tmp As String
    Dim datetime As notesdatetime



    Initialize:



    Sub Initialize

    Set session = New notessession
    Set db = session.currentdatabase
    Set dc = db.UnprocessedDocuments

    If dc.count = 0 Then Exit Sub

    For i% = 1 To dc.count
    Set doc = dc.GetNthDocument(i)
    Set rtitem = doc.GetFirstItem("Body")
    plainText$ = rtitem.GetFormattedText( False, 0 )

    'Zeilenumbruch durch ~ ersetzen
    plainText$ = ReplaceChar( Chr(10) , "~", plainText$)
    plainText$ = ReplaceChar( Chr(13) , "", plainText$)


    pos1% = Instr(1, plainText$, "Urlaub von:")
    pos2% = Instr(pos1%, plainText$, "~")
    tmp$ = Mid(plainText$, pos1%, pos2% - pos1%)

    pos1% = Instr(1, tmp$, ":")
    tmp$ = Trim(Mid(tmp$, pos1% + 1, Len(tmp$) - pos1%))

    Set datetime = New notesdatetime(tmp$)

    doc.StartDate = datetime.LSLocalTime

    Call doc.save(True, False)

    pos1% = Instr(1, plainText$, "Urlaub bis:")
    pos2% = Instr(pos1%, plainText$, "~")
    tmp$ = Mid(plainText$, pos1%, pos2% - pos1%)

    pos1% = Instr(1, tmp$, ":")
    tmp$ = Trim(Mid(tmp$, pos1% + 1, Len(tmp$) - pos1%))

    Set datetime = New notesdatetime(tmp$)

    doc.EndDate = datetime.LSLocalTime

    doc.Form = "Appointment"

    Call doc.save(True, False)

    Next



    End Sub



    ReplaceChar:



    Function ReplaceChar( Byval SearchChar As String , Byval ReplaceWithChar As String , Byval Text As String ) As String
    On Error Goto Err_ReplaceChar

    Dim pos As Integer
    Dim svalue


    If (SearchChar <> ReplaceWithChar) Then ' OK, something to do (avoid replace "x" with "x")
    Text = Trim( Text )

    pos = Instr( Text , SearchChar)
    While Pos ' (<> 0)
    Text = Left( Text , pos-1 ) & ReplaceWithChar & Mid( Text , pos+1 ) ' replace SearchChar with ReplaceWith
    pos = Instr( Text , SearchChar )
    Wend

    End If
    ReplaceChar = Cstr( Text )

    Exit Function

    Err_ReplaceChar:
    'suppress all errors so far in here....
    Select Case Err
    Case 1
    ' nothing
    Case Else
    Msgbox Error$ & Chr(10) & Err , 16 , "SLIBStringTools.ReplaceChar"
    End Select
    Exit Function

    End Function

  • Ich empfehle Dir in der Designer - Hilfe nach allen Klassen zu suchen die in Deinem Skript mit "Dim" deklariert sind. :roll:


    Die Designer Hilfe ist gut geschrieben .... und der AHA - Effekt ist überwältigend. ;)

    [size=x-small]
    Computer sind da um zu rechnen!
    Nicht um Ausreden wie: "Ich kann nicht durch Null teilen!", auf den Bildschirm zu schreiben.
    [/size]

  • Wie Pascal schon erwaehnt; da wirst Du eh nicht drum herum kommen.
    Aber ich habe Dir mal ein paar Bemerkungen dazu geschrieben: Ich habe gerade ein wenig Leerlauf :pint:

  • Hey,


    erst nochmal danke für die Komentare. Jetzt hab ich nur das Problem wenn ich den Agenten ausführe kommt die Fehlermeldung


    Illegal function call


    hat jemand vielleicht einen vorschlag wo ich da mit der Fehlersuche beginnen könnte

    • Offizieller Beitrag

    um Zeit zu sparen, schalte mal den Debugger ein und teile uns die Zeile mit, in der der Fehler auftritt.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein