For some data-entry processes, you'll need a multi-table form to hold all the data for records. In Paradox, it's easy to develop forms that link records from multiple tables. To design a multi-table form, you design a form for each of the tables; then make one of the forms the "master" form, and embed the other forms onto it.
Multi-table forms offer many powerful features, but there are limitations. When I hear people discussing the limitations, I find that they often don't realize how easily they can be overcome with a little PAL programming.
In this article I'll present a four-page multi-table form and, with some table-linking and PAL procedures, show you how to get over some of the obstacles these forms pose as a result of their relationships.
[TABULAR DATA OMITTED]
The four-page form
Fig. 1 is a form for tracking students and their classes, set in a four-page multi-table form. As I describe how the form works, you'll notice a number of features that Paradox supposedly doesn't support.
The first page of the form is a list of students, resembling a Paradox "table view." When you scroll the cursor to a particular student and switch to the form's second page, you'll see the full student record, and a "one-to-many" list of that student's classes (See Fig. 2).
On this page, as you scroll from record to record in the multi-record region, the box at the bottom displays a description of the class named in that record. For example, when you move the cursor to the LIT-102 line item, "English Literature II" appears at the bottom of the screen.
The third page is a table of all the classes offered at our mythical university (Fig. 3).
By moving to a class record and proceeding to the fourth page, you'll see more information about the class (Fig. 4). This page shows the full class record, a list of students enrolled in that class, and the test scores for each student. By moving the cursor to Line 00005 in the scrolling region on the left side, you see on the right side that Student 00005 is Keith Bowers, and a list of all of Keith's test scores in the LIT-102 class. Moving the cursor down to the other student calls up their test scores.
The fourth page shows a "one-to-many-to-many" (1-M-M) relationship. The relationship between the class and student enrollment tables is a one-to-many (1-M), and the relationship between the enrollment and test score tables is also 1-M.
[TABULAR DATA OMITTED]
As I promised, this four-page form illustrates many features supposedly not supported by Paradox. Yet with a little inventiveness, and a little PAL code, they're pretty easy. Here's a checklist of the "impossible" features:
* Pages 1 and 3 appear to be Paradox "table views" rather than "form views." But they are forms.
* The student table appears to be embedded on the form twice, on …