Communicating with Users

There are many different ways to communicate and interact with the user. Virtually all applications communicate with the user by displaying information, prompting for information, or displaying a custom dialog window. These interactions control the flow of information into the software application as well as force the user to make decisions that affect the database information. For example, you can display a message"Document Saved"or confirm an action"Are you sure you want to delete these documents?"

This section will describe some of the more common commandsMessagebox, Dialogbox, Inputbox, and Print. You'll find that these statements are frequently used in the LotusScript programming language.

Messagebox Statement

The Messagebox statement is probably the most commonly used statement for communicating with users. This command offers many robust options that can be used to interface with the end-user community. The following describes the syntax for this command.

MessageBox message, options, title

message Any text string (including variables, constants, or reference objects).

options Used to configure the button, icon, display mode, and default "selected" button.

These parameters are optional.

title Used to set the popup window title. This parameter is optional.

In the simplest form, this statement is used to display a popup message to the user (see Figure 6.3). For example, the following displays a text string along with the current date and time.

Figure 6.3. Sample Messagebox

Messagebox "The current date and time is: " + Now

However, the statement also has many additional parameters that enable you to customize the display of the popup message window. Before we get to the display options, you can add a title to the popup message window. The window title is the third parameter and must be a text string value that does not exceed 128 characters. You'll notice that in Figure 6.4, the second parameter is omitted, which is the reason for the two commas in the sample code.

Figure 6.4. Sample Messagebox with optional parameters

Messagebox "The date and time is: " + Now , , "Today's Date"

Next, you can add graphics, modify the buttons, and set a default button for the message window. This is accomplished via the second parameter, which must equate to a valid value. Adding one or more values together determines the values for the Messagebox statement to display.

Value

Constant

Description of Button to Be Displayed

0

MB_OK

OK

1

MB_OKCANCEL

OK and Cancel

2

MB_ABORTRETRYIGNORE

Abort, Retry, and Ignore

3

MB_YESNOCANCEL

Yes, No, and Cancel

4

MB_YESNO

Yes and No

5

MB_RETRYCANCEL

Retry and Cancel

Value

Constant

Description of Icon to Be Displayed

16

MB_ICONSTOP

Stop sign icon

32

MB_ICONQUESTION

Question mark icon

48

MB_ICONEXCLAMATION

Exclamation point icon

64

MB_ICONINFORMATION

Information icon

Value

Constant

Description

0

MB_DEFBUTTON1

Set button 1 as the default button

256

MB_DEFBUTTON2

Set button 2 as the default button

512

MB_DEFBUTTON3

Set button 3 as the default button

0

MB_APPLMODAL

This options stops the current application until the end-user responds to the message.

4,096

MB_SYSTEMMODAL

This options stops all applications until the end-user responds to the message.

For example, the following illustrates four example Messagebox statements. The first illustrates a message with no parameters. The second prompts the user to select Yes or No and includes the question mark icon. This message also includes a window title"Caution". The third example includes the Abort, Retry, and Cancel buttons. Using the 256 value, the Retry button is set to the default button. Finally, the last example illustrates the use of the LotusScript constant library, which references MB_OKCANCEL, or a value of 1.

' Display an informational message Messagebox "Document saved." ' Display YES/NO buttons and Question mark icon Messagebox "Do you want to continue?", 4 + 32, "Caution" ' Display Abort/Retry/Cancel buttons, stop sign icon and ' make the second button (abort) the default Messagebox "Unable to open file", 2 + 16 + 256, "Warning" ' Display the OK/Cancel Button. Must add %Include "LSCONST.LSS" ' in the (Options) section of the Globals values. Messagebox "Unable to open file", MB_OKCANCEL, "Warning"

Note

To utilize constant strings (such as MB_OKCANCEL) to manage the messagebox display settings, you must add the following statement to the (Options) section:

%include "LSCONST.LSS"

This statement is used to reference a LotusScript file that contains default constants. Refer to the Domino Designer help for a complete listing of constant files and their uses.

Finally, messagebox can be called as a function that returns a value that corresponds to the selected button. The following shows the syntax for a messagebox function call.

MessageBox (message, options, title)

When called in this fashion, the function will return one of the following values.

Value

Constant

Description

1

IDOK

Return value when the OK button is clicked.

2

IDCANCEL

Return value when the Cancel button is clicked.

3

IDABORT

Return value when the Abort button is clicked.

4

IDRETRY

Return value when the Retry button is clicked.

5

IDIGNORE

Return value when the Ignore button is clicked.

6

IDYES

Return value when the Yes button is clicked.

7

IDNO

Return value when the No button is clicked.

For example, the following illustrates how to capture the result of the messagebox window.

answer% = Messagebox("Are you sure?", 36, "Continue?") If answer% = 6 Then Messagebox ("Update complete.") Else Messagebox ("Transaction canceled.") Exit Sub End If

Tip

There are two ways to call this statementMessagebox or Msgbox. Both are valid and equivalent statements.

 

Print Statement

The Print statement is another way to communicate with the user. However, instead of displaying messages in a popup window, the text string is displayed in the Status Bar located at the bottom of the Lotus Notes client. The syntax for this command is

Print string

string Any text string, variable, date, time, or list of values separated by semicolons, colons, or spaces.

Print "The current date and time is: " + Now

The Print and Messagebox statements can help debug or track the execution of a LotusScript routine. You can periodically add Print statements to determine variable values or track conditional branches as the program executes. For example, the following illustrates how the value of the variable could be displayed. By periodically inserting a print or messagebox statement, you can view the object value as the program executes.

Print "The current value is: " + doc.Status(0) Msgbox "The current value is: " + doc.Status(0)

A.6.2

In this second example, you can track the path that the user selects.

answer% = Messagebox("Are you sure?", 36, "Continue?") If answer% = 6 Then Print "The user selected YES" Else Print "The user selected NO" End If

 

Inputbox Statement

The Inputbox is used to display a popup window where the end-user can specify a value. This value is subsequently returned to the LotusScript routine where it can be processed or stored. The syntax for this function is as follows.

Inputbox (prompt, title, default, position)

prompt A text string expression that describes the input box.

title Optional. Used to describe the title of the window.

default Optional. The default to be displayed in the input field.

position Optional. The x and y coordinates for the window separated by a comma.

For example, the following prompts the user to provide his or her name. When the input box window is displayed, the input field defaults to "John Doe" and the title displays at the top of the window (see Figure 6.5). The answer is subsequently displayed in the Status Bar at the bottom of the Lotus Notes client.

Figure 6.5. Sample Inputbox

Dim result As String result = Inputbox("What is your name?", "Question", "John Doe") Print "Your name is: " + result

 

Dialogbox Statement

The Dialogbox method is used to display the current document or a specified form in a popup dialog window. Using this method, you can pass field values between the popup and the underlying form. The following describes the syntax for this method.

flag = notesUIWorkspace.Dialogbox (form, options) Call notesUIWorkspace.Dialogbox (form, options)

The following describes the various options associated with this method, which are listed in chronological order. To use the default value, simply insert a comma as a placeholder for the parameter. All of the following are optional parameters.

Option

Description

1. AutoHorzFit

Automatically size the dialog box horizontally to fit the first layout region or table on the form. This value must be a boolean value of either trUE or FALSE.

2. AutoVertFit

Automatically size the dialog box vertically to fit the first lay out region or table on the form. This value must be a boolean value of either TRUE or FALSE.

3. NoCancel

Do not display the Cancel button. This value must be a boolean value of either trUE or FALSE.

4. NoNewFields

By default, any field that contains a value on the dialog form but that does not exist in the underlying document is automatically created. This optional parameter enables or disables the creation of new fields on the underlying document. This value must be a boolean value of either trUE or FALSE.

5. NoFieldUpdate

Used to disable field updates between the dialog window and the underlying document. This value must be a boolean value of either trUE or FALSE.

6. ReadOnly

This value displays the dialog box in "readonly" mode when set to TRUE. Otherwise, by default, the window is displayed in read-write mode. This value must be a boolean value of either trUE or FALSE.

7. Title

The title for the dialog window.

8. NotesDocument

Used to display an alternate document instead of the currently selected document.

9. SizeToTable

Used to automatically size the dialog based on the first table in the form. This value must be a boolean value of either trUE or FALSE.

10. NoOkCancel

Removes the OK button from the dialog window. This value must be a boolean value of either trUE or FALSE.

11. OkCancelAtBottom

By default, the OK and Cancel buttons are displayed to the right of the window. When set to trUE, this option displays the button along the bottom of the window. This value must be a boolean value of either trUE or FALSE.

For example, let's say you have a conference room form that includes a button called Recurring Event. This button contains the following code that, when clicked, displays a form named (RepeatReservation) in a dialog window. Using this dialog, the user can enter the parameters of the recurring conference room reservation.

When the user clicks OK, the field values are passed from the dialog window back to the corresponding fields on the underlying document. In this scenario, the form in the dialog must contain the same field names as the main form in order for the values to be passed from the DialogBox to the document. If the fields do not exist on the underlying document, they are automatically created.

Dim w As New NotesUIWorkspace Dim uidoc As NotesUIDocument Dim doc As NotesDocument Set uidoc = w.CurrentDocument Set doc = uidoc.Document Call w.DialogBox("(RepeatReservation)", True, True,,,,, "Repeat")

Категории