Hallo zusammen,
ich habe eine Datenbank erstellt wo eine Geräteausgabe vermerkt wird. In der Ausgabemaske soll nach Eingabe der Kundennummer geprüft werden ob der Kunde nicht schon ein Gerät bekommen hat. Wenn ja soll eine Meldung am Bildschirm erscheinen.
Leider kann ich die Prüfung nicht direkt in der Eingabemaske machen sondern über einen Agent, da die Mitarbeiter nicht alle Dokumente sehen können (Leserfeld).
Mit diesem LS rufe ich den Agent auf:
Sub Exiting(Source As Field)
Dim s As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim doc2 As NotesDocument
Dim agent As NotesAgent
Dim ws As New NotesUIWorkspace
Set db = s.CurrentDatabase
Set doc2=ws.CurrentDocument.Document
'Dokument erstellen um Kundennummer zu übergeben
Set doc = New NotesDocument(db)
doc.Kundennummer = doc2.GetItemValue("Kundennummer")
Call doc.Save(True, False)
'Agent mit übergabe der Dokumenten ID starten
Set agent = db.GetAgent("Kdpruf")
Call agent.Run(doc.NoteID)
End Sub
Der Agent sieht so aus:
Sub Initialize
Dim ws As New NotesUIWorkspace
Dim doc As NotesDocument
Dim note As NotesDocument
Dim kunde As Variant
Dim gefkunde As Variant
Dim session As New NotesSession
Dim collection As NotesDocumentCollection
Dim sSelection As String
Dim dtCutOff As New NotesDateTime("")
Dim zaehler As Long
Dim mtext As String
Dim filiale As Variant
Dim erstellt As Variant
Dim kdname As Variant
Dim umtext As String
Dim agent As NotesAgent
Dim db As NotesDatabase
Set db=session.CurrentDatabase
Set agent = session.CurrentAgent
zaehler=0
Set doc=db.GetDocumentByID(agent.ParameterDocID)
kunde= doc.Kundennummer(0)
Call doc.Remove(True)
'Alle Dokumente des Kunden mit dem Formular Ausgabe suchen
sSelection = |Form = "Ausgabe"|
'Führe Suche aus
Set collection = session.CurrentDatabase.Search(sSelection, _
dtCutOff, 0)
Set note = collection.GetFirstDocument
While Not note Is Nothing
gefkunde=note.GetItemValue("Kundennummer")
If gefkunde(0) = kunde(0) Then
zaehler=zaehler+1
erstellt=note.Created
filiale=note.GetItemValue("Filiale")
kdname=note.GetItemValue("KdName")
mtext= mtext & filiale(0) & " " & erstellt & " "& kdname(0) & Chr(10)
End If
Set note = collection.GetNextDocument(note)
Wend
umtext= Chr(10) & Chr(10) & "Filiale Ausgabe am Kunde" & Chr(10) & "-----------------------------------------------------------------------------"& Chr(10)
'Wieviele Leser hat der Kunde bereits?
If zaehler> 0 Then
Messagebox "Der Kunde hat bereits " & zaehler & " Geräte bekommen"& Chr(10) & umtext & mtext & Chr(10) & "Bitte prüfen Sie ob der Kunde noch ein Gerät benötigt.", _
48, "Wichtiger Hinweis"
End If
End Sub
Kann mir ggf. jemand einen Tipp geben was ich falsch mache?
Danke