Das Notes Forum
Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: Lysienne am 26.04.18 - 21:20:53
-
Hallo
ich habe eine einfache Inventardatenbank
der PC ist als Hauptdokument angelegt
die Peripherie (Monitor, Drucker usw.) als Antwortdokument
Wie kann ich verhindern, dass ich das Hauptdokument löschen kann obwohl dieses noch ein Antwortdokument hat.
Am besten mit einer Meldung wie zB: Der PC hat noch Peripherie zugeordnet und kann nicht gelöscht werden.
-
Ist doch einfach - vergib eine Inventarnummer und vererb die an die Antwortdokumente
Vor dem Löschen -Stichwort QueryDocumentDelete- Abfrage, wieviele Dokumente es mit der Referenz gibt.
-
Noch einfacher: wenn es sich wirklich um Antwortdokumente handelt, kannst Du prüfen, ob NotesDocument.Responses.Count = 0 ist, und wenn nicht, dann Continue = False. Achtung: in seltenen Fällen ist NotesDocument.Responses = Nothing, das solltest Du vor dem Count checken.
-
Herzlichen Dank
für eure Vorschläge. Bin zwar nicht der Script Guru. Aber ich denk das krieg ich hin.
-
Danke Tode für den Hinweis auf NotesDocument.Responses.
Hier der Code im Querydocumentdelete.
Falls mal jemand das selbe Problem hat.
Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
'Get a handle on the current document
Dim ns As New NotesSession
Dim nDocCurrent As NotesDocument
Dim ndcCollection As NotesDocumentCollection
Set ndcCollection = Source.Documents
Set nDocCurrent = ndcCollection.GetFirstDocument
'See if the current document has Any responses associated With it
'if so do not allow the deletion
Dim ResponseCollection As NotesDocumentCollection
Set ResponseCollection = nDocCurrent .Responses
numDocs& = ResponseCollection.Count '# of response documents
If numDocs& > 0 Then
MessageBox "Kann nicht gelöscht werden da Peripherie zugeordnet ist!",64,"Löschen abgebrochen"
Continue = False
End If
End Sub