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.



Download: IT certifications that stand out
Are you looking to advance your career? Expand your knowledge? Boost your credibility? Our editors put together this complimentary 19-page guide on everything you need to know about obtaining an IT certification—with special attention given to cloud and desktop certifications.
By submitting your personal information, you agree that TechTarget and its partners may contact you regarding relevant content, products and special offers.
You also agree that your personal information may be transferred and processed in the United States, and that you have read and agree to the Terms of Use and the Privacy Policy.
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.
Start the conversation
0 comments