Prompt in LotusScript

The LotusScript Prompt function displays a popup window where the user can specify or select a value (see Figure 13.26). This function can be used to interact with the user and manage data content. For example, the function allows users to describe changes to a document as it is being saved or display a dropdown list of values that the user must select from. This latter option allows you to control the content stored in a particular document field.

Figure 13.26. Example of the Prompt function to display and select values

This routine illustrates how to create a prompt that contains a dropdown list of values. The values can be static (where values are hard coded) or dynamic (where values are created based on other design object values).

How It Works

This is a built-in Domino function. The Prompt function includes several parametersbutton style, title, caption, default choice, and a list of values. See Chapter 6 for additional information pertaining to the Prompt function.

ImplementationStatic Example

This first example illustrates how to implement the Prompt function with static, or hard-coded, values. After the user selects a value, it is stored in the Result object. A confirmation message is displayed to the user if the value is not blank.

Sub Click(Source As Button) Dim w As NotesUIWorkspace Dim s As NotesSession Dim db As NotesDatabase Dim doc As NotesDocument Dim choices (1 To 3) As String Dim Buttons as Integer Dim Title as String Dim Caption as String Dim Default as String Dim Result as String '----------------------------------------------------- ' Set object values '----------------------------------------------------- Set w = New NotesUIWorkspace Set s = New NotesSession Set db = s.CurrentDatabase '----------------------------------------------------- ' Set the choices '----------------------------------------------------- choices(1) = "Choice one" choices(2) = "Choice two" choices(3) = "Choice three" '----------------------------------------------------- ' Set prompt title, buttons and default '----------------------------------------------------- Buttons = PROMPT_OKCANCELCOMBO Title = "Select a value" Caption = "Choose one" Default = choices(1) result$ = w.Prompt (Buttons,Title,Caption,Default,Choices) If result$ <> "" Then Msgbox result$,, "You selected:" End If End Sub

 

ImplementationDynamic Example

In this second example, the code loops through the documents in a particular view and dynamically generates the prompt values by building a list based on a particular field. To implement this solution, insert a valid view name and field name.

Sub Click(Source As Button) Dim w As NotesUIWorkspace Dim s As NotesSession Dim db As NotesDatabase Dim doc As NotesDocument Dim view As NotesView Dim choices () As String Dim Buttons as Integer Dim Title as String Dim Caption as String Dim Default as String Dim Result as String Dim I as Integer '----------------------------------------------------- ' Set object values '----------------------------------------------------- Set w = New NotesUIWorkspace Set s = New NotesSession Set db = s.CurrentDatabase Set view = db.GetView("VIEW") '----------------------------------------------------- ' Loop through view to build choice selection '----------------------------------------------------- i=0 Set doc = view.GetFirstDocument While Not(doc Is Nothing) Redim Preserve choices(i) choices(i) = doc.FIELD(0) i = i + 1 Set doc = view.GetNextDocument(doc) Wend '----------------------------------------------------- ' Set prompt title, buttons and default '----------------------------------------------------- Buttons = PROMPT_OKCANCELCOMBO Title = "Select a value" Caption = "Choose one" Default = choices(1) result$ = w.Prompt (buttons,title,caption,default,choices) If result$ <> "" Then Msgbox result$,, "You selected: " End If End Sub

Note

This routine can produce duplicate values if the field values are not unique. Additional programming logic is required to manage duplicate values.

Категории