[Back to "
LotusScript: Programming views in Notes/Domino 6
"]
LotusScript:Programming views in Notes/Domino 6 sidebar
The following is a code example for creating a new view.
Declarations
Dim db As NotesDatabase
Dim Templateview As NotesView
Dim UsersView As NotesView
Dim col1 As NotesViewColumn
Dim col2 As NotesViewColumn
Dim J As Integer
Dim K As Integer
Dim L As Integer
Dim allcols () As String
Dim checkviewname () As String
Sub Initialize
Dim s As New NotesSession
Dim ws As New NotesUIWorkspace
Set db = s.CurrentDatabase
Set Templateview = db.GetView("MAIN")
'Asks for name of new view
CHOOSENAME:
newviewname = Inputbox("Name for new view?","What do you wish to name this view?")
If Trim(newviewname) = "" Then
Messagebox "Stopping processing",,"You did not enter a name for the view."
Exit Sub
End If
'Check for existing view name
Redim Preserve checkviewname(Ubound(db.Views))
For L = 0 To Ubound(db.Views)
checkviewname(L) = db.Views(L).Name
If checkviewname(L) = newviewname Then
Messagebox "The view name you entered is already being used. Please pick another." _
,,"View Name already in use"
Goto CHOOSENAME
End If
Next
'Create new view with name from user input
Set UsersView = db.CreateView(newviewname)
'Remove default column created with view
Call UsersView.RemoveColumn(UsersView.ColumnCount)
'Find number of columns in Templateview
I = Ubound(Templateview.Columns)
Redim Preserve allcols(I)
'Create an array of column titles to be used in prompt
For J = 0 To I
allcols(J) = Templateview.Columns(J).Title
Next
K = 1
Do
chosencol = ws.Prompt(Prompt_OKCancelList,"Choose column to insert", _
"Select from list of column names.","",allcols)
'Find column position
For J =0 To Ubound(Templateview.Columns)
If Templateview.Columns(J).Title = chosencol Then
Set col1 = Templateview.Columns(J)
End If
Next
Set col2 = UsersView.CopyColumn(col1, K)
If col2.Position = 1 Then
asksort = ws.Prompt(PROMPT_YESNO,"Sorting for first column?", _
"Do you want to sort the first column?")
If asksort = 1 Then
col2.IsSorted = True
End If
End If
'Set the font color for the header
col2.HeaderFontColor = COLOR_BLUE
K= K+1
Loop While ws.Prompt(PROMPT_YESNO,"Additional columns?","Do you want to add another column to the view?")
Messagebox "View completed",,"Your view has been built."
End Sub