Form Elements List |
Top Previous Next |
A list of Form Elements appears on the Edit Form Definition dialog, as well as on the Edit Form Element dialog if the element is a Region. It operates the same way in either place, since a Region element is essentially a Form-within-a-Form.
Form elements are actually "Element" records linked to the Form (or region element), so this list shows those linked element records. As with most places where record lists are manipulated, the typical functions are available to Add, Insert, Edit, Copy, Delete, and Move elements in the list. In addition, there are a few special functions as described below.
The element list contains the Condition and Text of the elements, but depending on the element there's no guarantee that either one of these will be filled in. So putting in good Notes for the elements can help later. Also note that the Text column may show different things, e.g. the Expression for data elements or the file name for Bitmap elements.
Note that the Condition and the Text columns may be truncated (with "..." at the end). This is done automatically to limit the column widths and keep long text from making the other columns hard to find. (Even if the columns or the whole dialog is enlarged, it won't show these fields any longer here.)
Form Element Order
When a Form is processed, the elements are processed one after another in the order they appear in this list. Any Region elements are "recursively" processed -- that is, all of a region's sub-elements are processed before moving on to the next element at the same level (more is explained about "levels" below). While this in itself doesn't always make a difference, the order of elements in a Form is actually very important for at least two reasons.
First of all, it's possible for elements to overlap. Think of an element as "painting" on the page. If one element overlaps another, it's painted on top if it and can potentially cover up the previous element. (Regions can partially prevent this for text and data elements, since they clip the text and act like a "cage" for anything written in the region.)
Secondly and possibly more importantly, it's very common to use relative positioning of elements instead of absolute page positioning. For instance, one element can "follow" another so it's placed on the page relative to where the previous element started or stopped. This way you don't always have to figure out exact page positions -- just arrange the elements in the order you want them to appear on the page. Obviously if the order of these is changed, then it will affect their eventual position on the page (or worse, result in an error due to an unknown "previous" position).
Expand Regions
As mentioned above, Region elements are like a Form within a Form. As such, a region has a list of elements of its own that are relative to that region. This can include another region, and so forth, resulting in multiple "levels" of regions, each with their own list of elements.
By default, the Edit Form dialog or Edit Element dialog for a region will only show the elements linked directly to it -- i.e. the current "level" of elements. As you may see in some of the examples, it's common to define an entire Form inside a region (so the margins can be changes easily), and then have various areas of the Form defined as regions inside that.
The is good organizational practice, but makes it a little more difficult to "explore" the regions to find a particular data or text element -- the top level (the Edit Form dialog) may have just one Region element, then you would need to Edit that region element to see the elements inside it. which may just be a few more sub-regions, and so forth. It may take 3 or 4 levels of "Editing" to get to the actual data and text elements of the Form.
However if you check the Expand Regions box, all regions at or below the current level are expanded into a tree-like list. This allows you to see all elements in the entire Form (or current region) in a single list. To make it easier to read, each level will have a "--->" prefix and will be indented according to the depth, like a tree view. Also, each level will be shaded differently.
You'll notice that some list functions are not available in expanded mode. You can't Insert or Move elements, because it can't handle the multiple-level complexities of this. However you can Copy elements from any level (the new copies will always be placed in the current level). You can also Edit an element from any level, which is the primary reason for expanding the list -- you can quickly locate the element of interest and edit it directly without going through each region above that. (Don't forget that double-clicking an element in the list also does the same thing as Edit).
Import and Export Elements
These functions will import or export any selected elements to a CSV (text) file. The main purpose of this is to copy the elements to a different Form or to a different level (region) of the Form. You can also export commonly used sets of elements for importing to Forms you create later. Basically it's like doing a copy/paste of elements, but going through a file instead of just the clipboard. Note that it's not the same as the import/export function for a complete Form -- it's strictly for copying or moving selected elements. However if an element is a Region, then all of the elements contained in that region are also exported (recursively to any level), and of course they would be imported intact the same way.
When exporting, any elements visible in the list can be exported (even if Expanded as described above), but they must all be of the same expansion level. You cannot select some elements in one level and some elements in another level to be exported at the same time.
When importing, all elements imported are placed in the current level (regardless of expansion). For instance if you're editing a region, then all imported elements are added to that region. If you're editing the Form (the top level), they are added to the Form. Careful manipulation of importing and exporting elements allows you to move elements around between levels, for instance to move some elements to a higher or lower region level.
Additional Topics:
Importing and Editing Sample Forms
Advanced Customizations Overview & other topics