The following guidelines apply to various resources in your application.
If a field has a unique purpose, create a separate data type for it. This allows the characteristics of the field to be easily modified without affecting other fields in the application.
Provide common formats in your application so Report Writer and Modifier users won’t have to create them.
When possible, use global fields only for data stored in tables. For fields that appear only on windows, use local fields. Local fields are stored with the form. This helps encapsulate a form, making it more portable and easier to transfer to another Dexterity application.
Consider supplying extra fields in your tables. Extra string, long integer and currency fields in the table auto-linked to a window allow Modifier users to add fields to the window. Be sure you use the copy from and copy to statements to move data between the window and the table buffer. This ensures that the data in the extra fields will automatically be saved in and retrieved from the table.
Provide common table relationships for related tables in your application, even if you don’t use them for reports you include with your application. One of the more difficult aspects of the Report Writer is creating table relationships. Users will find it convenient to use common table relationships that have already been created.
Design your forms to be “portable.” Portable forms can be easily transferred into another and work with little or no modification. Portable forms allow you to easily re-use your form in another dictionary. To make forms portable, follow these guidelines:
Consider supplying additional data through report legends, even if you don’t use them in the reports you provide with your application. Report Writer users may find the values supplied in legends useful on reports. Be sure to document any legends that you supply for reports.
When possible, use pictures instead of native pictures. Pictures are platform independent, so you don’t need to create separate pictures for each platform.
Minimize the use of global variables in your application. Because of their global nature, system variables are prone to causing application errors. Errors can occur when one portion of an application changes the value of a system variable without taking into account the effects on other portions of the application.
Document any global variables used in your application. Report Writer users may find the global variables useful on reports they create.