Manage Learn to apply best practices and optimize your operations.

Creating custom views in Lotus Notes databases

Get code and instructions to set up a Domino agent that lets users easily create custom views in Lotus Notes databases.

This tip will allow users to easily create custom views in Lotus Notes databases. To accomplish this, the user fills out a view creation document that acts as the instructions for the new view. An agent then runs overnight and generates the new view based on a view template.

Here is the code:

 Sub Initialize
 Dim s As New NotesSession
 Dim viewTemplate As NotesView
 Dim NewView As NotesView
 Dim db As NotesDatabase
 Dim col1 As NotesViewColumn
 Dim col2 As NotesViewColumn
 Dim formula As String
 
 Set db = s.CurrentDatabase  
 
 server = db.Server     
 filepath = db.FilePath

 Set Lookupdb = s.GetDatabase(server,filepath)
 
 Set NewViews_LookupView = 
Lookupdb.GetView("AdminViewStatus")
 
 Set NewViews_docs = 
NewViews_LookupView.GetAllDocumentsbyKey("1", False)
 Set NewViews_doc = 
NewViews_docs.GetFirstDocument
 
 For a = 1 To NewViews_docs.Count

"View hierarchy"
 in this example, all views have 3-4 levels of hierarchy
  Main = NewViews_doc.MainFolder(0)
  Sub1 = NewViews_doc.SubFolder1(0)
  Sub2 = NewViews_doc.SubFolder2(0)
  Sub3 = NewViews_doc.SubFolder3(0)
  
  If Sub3 = "" Then
   NewViewName = Main + "" + Sub1 + "" + Sub2
  Else
   NewViewName = Main + "" + Sub1 + "" + Sub2 + "" + Sub3
  End If
  
  NewViewAlias = NewViews_doc.ViewAlias(0)
  PCenter = NewViews_doc.PCenter(0)
  Level = NewViews_doc.ProcessingLevel(0)
  ViewDatabase = NewViews_doc.Database(0)
  
"Determine which view 
template to use" 
in this example there are 8 pre-set templates  
  If Main = "Unprocessed" Then
   formula = "SELECT  (PCenter = """ & 
PCenter & """ & PrintedBy =  "" &  ProcessedBy = "") "
   
   If Level = "1" Then
    Set viewTemplate = 
s.CurrentDatabase.GetView("Template1_u")
   Elseif Level = "2" Then
    Set viewTemplate = 
s.CurrentDatabase.GetView("Template2_u")
   Elseif Level = "3" Then
    Set viewTemplate = 
s.CurrentDatabase.GetView("Template3_u")
   Elseif Level = "4" Then
    Set viewTemplate = 
s.CurrentDatabase.GetView("Template4_u")
   End If
   
  Elseif Main = "Printed" Then
   formula = "SELECT  
(PCenter = """ & PCenter & """ 
& PrintedBy !=  "" &  ProcessedBy = "") "
   
   If Level = "1" Then
    Set viewTemplate = 
s.CurrentDatabase.GetView("Template1_pr")
   Elseif Level = "2" Then
    Set viewTemplate = 
s.CurrentDatabase.GetView("Template2_pr")
   Elseif Level = "3" Then
    Set viewTemplate = 
s.CurrentDatabase.GetView("Template3_pr")
   Elseif Level = "4" Then
    Set viewTemplate = 
s.CurrentDatabase.GetView("Template4_pr")
   End If
   
  
  End If
 
  
'---Create the view based on the template
   Set NewView = s.CurrentDatabase.
CreateView(NewViewName, formula, viewTemplate)
   NewView.Aliases = NewViewAlias
   

'---Set View Creation Documents status
  'Set NewView = s.CurrentDatabase.
CreateView(NewViewName, "SELECT @All")
  
  
  StatusDate = Format(Now(),"mm/dd/yyyy hh:mm ampm")
  
  NewViews_doc.ViewStatus = "2"
  NewViews_doc.ViewStatusMessage = 
NewViews_doc.ViewStatusMessage(0) 
& Chr(10) & "View created " & StatusDate
  Call NewViews_doc.Save(True, False)
  
  Set NewViews_doc = 
NewViews_docs.GetNextDocument(NewViews_doc)
 Next
 
 
End Sub

Do you have comments on this tip? Let us know.

This tip was submitted to the SearchDomino.com tip library by member Amy Crisanti. Please let others know how useful it is via the rating scale below. Do you have a useful Lotus Notes, Domino, Workplace or WebSphere tip or code snippet to share? Submit it to our monthly tip contest and you could win a prize.

Dig Deeper on Lotus Notes Domino Agents

SearchWindowsServer

Search400

  • Favorite iSeries cheat sheets

    Here you'll find a collection of valuable cheat sheets gathered from across the iSeries/Search400.com community. These cheat ...

  • HTML cheat sheet

    This is a really cool cheat sheet if you're looking to learn more about HTML. You'll find just about everything you every wanted ...

  • Carol Woodbury: Security

    Carol Woodbury

SearchDataCenter

SearchContentManagement

Close