| **Navigation:**  [[welcome to my product .htm|User's Guide and Tutorials]] > The Dictionary > Dictionary Editor >====== Lesson 8 - Advanced Features of the Dictionary Editor ====== | [[lesson 7 sql odbc and ado imports.htm|{{btn_prev_n.gif|Previous page}}]][[welcome to my product .htm|{{btn_home_n.gif|Return to chapter overview}}]][[windows design issues.htm|{{btn_next_n.gif|Next page}}]] | | || **Overview** If you could only create tables, columns, keys and relationships, the Clarion Dictionary Editor would still be a useful and powerful tool. However, Clarion takes Application Development technology to the next level by providing additional options in the dictionary that help to set values and control types. This can determine how the application is generated (and even behaves). A majority of these design "gems" are located back in the Column properties window. Let's examine a few of these options. **Validity Checks - The Heart of Data Validation** In the Column Properties window, the Validity Checks Tab option is chosen to establish rules for the entry of valid data into a control. The Application Generator uses information defined here when creating and maintaining controls. Here is a typical data validity scenario. When the user completes the column and shifts focus to another control, the application will sound a warning beep and set focus back to the control if the data is not valid. The validity checks window contains a number of radio buttons that allow you to specify a particular data validation method. Here is a brief description of each: **No Checks** Selecting this option indicates that no data validation should be performed for this control. **Cannot Be Zero Or Blank** Specifies that some type of information must be entered for this control (The data is required). **Must Be In Numeric Range** A numeric value must be entered in the control and the value entered must be between the Lowest and Highest value specified, inclusively. **Must Be True Or False** Used to create a checkbox control. If a checkbox is selected (check mark is displayed) the value in the control associated with the checkbox is 1 (true). If the checkbox is not selected, the value in the control would be 0 (false). **Must Be In Table** Specifies that the value entered into the control must exist in another table. In other words, the value entered is "checked" against a master list of valid values. Validating state abbreviations is a common use of this option. **Table relationships must exist before this option may be selected**. **Must Be In List** If this option is selected, a list of valid values for this control is entered in the Choices column. This option is intended for use with controls that have a limited number (5 or less are recommended) of possible values. For example, if a control called TITLE is being defined, possible choices might be: Mr. Mrs. Ms. Dr.; valid choices are separated with a vertical bar. The Application Generator will create Radio Buttons or a Drop Box for the choices entered. **Fine Tuning Your Dictionary** There are a couple of other areas to explore before completing this lesson. In the **Help** tab of the //Column Properties// window, there are three options for each column that directly affect the levels of help you wish to make available in your applications: ·For external help tables that you create for your programs, a **HelpID** can be assigned here to reference a selected column. ·For custom messages to be displayed on a Windows Status Bar, type an appropriate message in the **Message** entry dialog. ·To create custom "bubble help" for each column in your program, type an appropriate help message in the **Tool Tip **entry dialog. Finally, the Window and Report tabs in the Column Properties window controls the default population of the Application Generator. In other words, the appearance //and// characteristics of a column or control can be "pre-set" when populated on a window or report structure by accessing or modifying certain options. An example of using this option would be to designate an auto-populate, unique column as a STRING column (instead of the default ENTRY column) to prevent a user from modifying its contents. **Next:** [[application generator intro.htm|The Application Generator]]