LOTUSSCRIPT/COM/OLE CLASSES


Examples: BuildCollection method
This agent creates note collections based on form and view elements in the current database. The work occurs in a sub, which creates the note collection depending on the input parameters, builds the collection, then clears the collection.

Sub Initialize
 Dim s As New NotesSession
 Dim db As NotesDatabase
 Set db = s.CurrentDatabase
 Dim stream As NotesStream
 Set stream = s.CreateStream
 Dim nc As NotesNoteCollection
 Set nc = db.CreateNoteCollection(False)
 
 REM Export forms
 Call ExportFormView(True, False, s, db, stream, nc)
 
 REM Export views
 Call ExportFormView(False, True, s, db, stream, nc)
 
 REM Export forms and views
 Call ExportFormView(True, True, s, db, stream, nc)
 
 REM Test bad call
 Call ExportFormView(False, False, s, db, stream, nc)
End Sub

Sub ExportFormView(form As Boolean, view As Boolean, _
session As NotesSession, db As NotesDatabase, _
stream As NotesStream, nc As NotesNoteCollection)
 
 REM Check parameters and set up filename
 If form And view Then
   filename$ = "formview"
 Elseif form Then
   filename$ = "form"
 Elseif view Then
   filename$ = "view"
 Else
   Messagebox "Form and view both false",, "No action"
   Exit Sub
 End If
 
 REM Open dxl file as stream
 filename$ = "c:\dxl\" & filename$ & ".dxl"
 If Not stream.Open(filename$) Then
   Messagebox "Cannot open " & filename$,, "Error"
   Exit Sub
 End If
 Call stream.Truncate
 
 REM Create note collection
 Call nc.SelectAllNotes(False)
 If form Then
   nc.SelectForms = True
   nc.SelectSubforms = True
   nc.SelectSharedFields = True
 End If
 If view Then
   nc.SelectViews = True
   nc.SelectFolders = True
 End If
 Call nc.BuildCollection
 
 REM Export DXL
 Dim exporter As NotesDXLExporter
 Set exporter = session.CreateDXLExporter(nc, stream)
 Call exporter.Process
 
 REM Close stream and clear collection
 Call stream.Close
 Call nc.ClearCollection
End Sub

See Also