LOTUSSCRIPT/COM/OLE CLASSES


Examples: Responses property
These two scripts work together to place the currently open document (in the user interface) and its responses, including all responses-to-responses, in a folder. The first script is a form action script that the user can activate from a document on the workspace. It gets doc, the document on disk that corresponds to the currently open document, and places it in a folder of the user's choice. It then calls the PutAllResponsesInFolder sub.

Sub Click(Source As Button)
 Dim workspace As New NotesUIWorkspace
 Dim uidoc As NotesUIDocument
 Dim doc As NotesDocument
 Dim choice As String
 Set uidoc = workspace.CurrentDocument
 Set doc = uidoc.Document
 choice = Inputbox( "Please enter a folder name:", _
 "Which folder?" )
 Call doc.PutInFolder( choice )
 Call PutAllResponsesInFolder( doc, choice )
End Sub

The PutAllResponsesInFolder sub takes a parent document and a folder name, and places the responses and responses-to-responses of the parent document into the specified folder. The sub places each response to the parent document into the specified folder. For each response, the sub calls itself to place any responses to the response into the folder. This recursive behavior allows you to access every descendant of the parent document, no matter how many levels deep it is nested. If there are no responses, the sub exits.

Sub PutAllResponsesInFolder _
( doc As NotesDocument, folderName As String )
 Dim collection As NotesDocumentCollection
 Dim currentResponse As NotesDocument
 Set collection = doc.Responses
 Set currentResponse = collection.GetFirstDocument
 ' Put immediate responses to doc into the folder
 ' If there are none, sub exits and returns to calling sub
 While Not ( currentResponse Is Nothing )
   Call currentResponse.PutInFolder( folderName )
   ' Recursive call to put immediate responses to
   ' currentResponse in folder
   Call PutAllResponsesInFolder _
   ( currentResponse, folderName )
   Set currentResponse = collection.GetNextDocument _
   ( currentResponse )
 Wend
End Sub

See Also