Add Field Validation to a Form

Field validation is often added to forms to enforce consistency of data across the application or as input criteria for other data processing within the database. This can be accomplished by adding data checks in the "Input Validation" event for each individual field or alternatively in the QuerySave event.

Although either approach will produce the same result, you will most likely find that the QuerySave event option provides a consolidated location for all field validation. Using this approach, all data checks are in a common location, which allows all invalid data fields to be displayed in a single message.



How It Works

Form validation occurs when the user attempts to save the document. When this occurs, the validation in the QuerySave event is triggered. A text message field (MsgText) is used to track all warning messages to be displayed. At the start of the routine, this field is set to an empty value. A series of IF statements is then used to compare the field values with a set of validation criteria. If the field does not meet the specified criteria, a warning message is appended to the text string. The Chr$(13) statement is used to separate each warning message by forcing a new line character. After all validation has occurred, the routine checks the state of the text message field. If this field is empty, all validation is successful and the QuerySave continues. Otherwise, a message box is displayed to the user.


To implement this solution, insert the following LotusScript code in the QuerySave event of the form. Replace the FIELDA and FIELDB values with valid field names and set the validation criteria. In the following example, both fields must contain a non-blank value. If either field is blank, a message is appended to a text message field, and the message string is displayed to the user upon completion of the field checks (see Figure 13.13).

Sub Querysave(Source As Notesuidocument, Continue As Variant)
 Dim s As NotesSession
 Dim w As NotesUIWorkspace
 Dim uidoc As NotesUIDocument
 Dim doc As NotesDocument
 Dim db As NotesDatabase
 Dim MsgText As String

 Set s = New NotesSession
 Set w = New NotesUIWorkspace
 Set db = s.CurrentDatabase
 Set uidoc = w.CurrentDocument
 Set doc = uidoc.Document

 ' Begin validation
 Continue = True
 MsgText = ""
 If doc.FIELDA(0) = "" Then
 MsgText=MsgText + "Specify a value for field A." + Chr$(13)
 End If

 If doc.FIELDB(0) = "" Then
 MsgText=MsgText + "Specify a value for field B." + Chr$(13)
 End If

 If MsgText <> "" Then
 Msgbox MsgText, 16, "Required Fields."
 Continue = False
 End If
End Sub

Figure 13.13. Example message produced by a field validation routine

An Introduction to the Lotus Domino Tool Suite

Getting Started with Designer

Navigating the Domino Designer Workspace

Domino Design Elements

An Introduction to Formula Language

An Introduction to LotusScript

Fundamentals of a Notes Application

Calendar Applications

Collaborative Applications

Reference Library Applications

Workflow Applications

Web Applications

Design Enhancements Using LotusScript

Design Enhancements Using Formula Language

View Enhancements

Sample Agents

Miscellaneous Enhancements and Tips for Domino Databases

Data Management


Application Deployment and Maintenance


Appendix A. Online Project Files and Sample Applications

Appendix B. IBM® Lotus® Notes® and Domino®Whats Next?

Lotus Notes Developer's Toolbox(c) Tips for Rapid and Successful Deployment
Lotus Notes Developers Toolbox: Tips for Rapid and Successful Deployment
ISBN: 0132214482
EAN: 2147483647
Year: N/A
Pages: 293
Authors: Mark Elliott © 2008-2020.
If you may any questions please contact us: