Interactive Scripts: Intermediate Error Trapping When requesting user input, it is imperative that the users enter the data in the desired format. Dropdown, radio buttons, and check boxes provide the user with limited options. The Edit Box and ACCEPT() Commands, however, allow the users to enter data in a free flow manner. Entering invalid data can cause the script to crash or produce invalid results. In order to avoid this, users should engage in a practice known as Error Trapping. The Error Trapping Principle The way an error trap works is that it will repeat a script until the conditions for acceptable data are met. This generally means: 1) Define a flag to monitor the conditions. 2) Execute a subscript so long as the conditions are not met. 3) At the end of the subscript, check to see if the conditions are met. If they are, then change the flag ending the script. Example 1: While writing a script, you wish to ask the user for a minimum dollar amount. You only want numerics, a maximum of one period, and negative signs. Script ASSIGN v_flag = F DO subscript WHILE v_flag = F Subscript V_flag = T ACCEPT "Enter minimum amount" TO v_minimum COM If the value entered contains anything other than a COM numeric/negative sign/period then the flag will be set to zero COM causing the subscript to be rerun and the script to pause with a COM message to the user explaining what the problem is. IF EXCLUDE(v_minimum, "0123456789- .") <> " " and OCCURS(v_minimum, ". ")<=1 ASSIGN v_flag = F IF v_flag = F PAUSE “Please use only numbers, periods, and negative signs.” Lists Using one of the methods described above, you’ve created a list. Using this list, you want to plug it into a dropdown box asking the user to select a value. This is very easy to accomplish. As dialogue boxes can be complex to write, it is often easiest to use the ACL Dialogue Wizard to write the skeleton for your script. Dialogue script list: DIALOG (DIALOG TITLE "User Dialog" WIDTH 494 HEIGHT 159 ) (BUTTONSET TITLE "&OK;&Cancel" AT 370 12 DEFAULT 1 ) (DROPDOWN TITLE "variable1;variable2;variable3" TO "DROPDOWN1" AT 24 84 DEFAULT 2 ) (TEXT TITLE "test" AT 24 52 ) Dialog Command broken down: • DIALOG ---Invokes the Dialog Command • (DIALOG TITLE "User Dialog" WIDTH 494 HEIGHT 159 ) ---Defines the width and height of dialog box. • (BUTTONSET TITLE "&OK;&Cancel" AT 370 12 DEFAULT 1 ) --Positions the “OK/Cancel” button at position over 370 spaces and down 12. • (DROPDOWN TITLE "variable1;variable2;variable3" ---this is the list of items within the dropdown list. • TO "DROPDOWN1" ---The default variable name assigned by ACL. • AT 24 84 ---Locates the drop down at 24 over and 84 down. • DEFAULT 2 ) ---Defines the default value as the second value in the list. A field does not require a DEFAULT value. • (TEXT TITLE "test" AT 24 52 ) ---Locates text at position 24 over and 52 down. Dialog Script project item • DIALOG ---Invokes the Dialog Command • (DIALOG TITLE "User Dialog" WIDTH 459 HEIGHT 159 ) ---Defines the width and height of dialog box. • (BUTTONSET TITLE "&OK;&Cancel" AT 370 12 DEFAULT 1 ) --Positions the “OK/Cancel” button at position over 370 spaces and down 12. • (ITEM TITLE "NCD" ---NCD indicates that the dropdown box will include “N”umerics, “C”haracter” and “D”ate fields. • TO "ITEM1" ---Item1 is the default variable name assigned by ACL. • AT 48 60 WIDTH 255 ---The dropdown will appear 48 spaces over and 60 down with a width of 255. • DEFAULT "test" ) ---The default value will be “test.” Data Normalization When using interactive scripts, it is often necessary to normalize the data to ensure accurate data analysis. This can concern both the data contained within the field and the description of the field itself. Modifying Data in Fields Often times in order to perform an analysis, the data must be normalized within the fields themselves. The use of functions such as UPPER() or ALLTRIM() commands is much more important with interactive scripts than it is with noninteractive scripts.