Workbench User Guide : Structuring an Application : How You Can Change Global Constants at Runtime : Selecting a Control Frame Style
 
Share this page          
Selecting a Control Frame Style
After opening the control frame, you must decide whether to open more active frames. There are many styles of control frame applications. A few common ones are described in the following sections.
Detail Frame Application
A detail frame application is the easiest application to develop. The control frame uses the callframe statement to open each of the detail frames. No communication between the frames is necessary because only one frame is active at a time. The control, or parent, frame is blocked by the detail, or child, frames.
You can use the callframe statement parameters to get information from the child frames back to the parent. To return to the control frame and select another task, the user must close the detail frame.
For more information about child-parent frame interaction, see the Programming Guide:
How Frames Access Child and Parent Frames
How You Can Pass Parameters Between an Active Child and a Closed Parent
How You Can Pass Parameters Between an Active Child and Inactive Parent
How You Can Return a Value from an Active Child to the Inactive Parent
Read-only Application with Concurrent Frames
Another simple model is the read-only application. A read-only application is one that opens several concurrent read-only frames from the control frame. This lets end users have several concurrent frames for display purposes.
To open each of the read-only frames, use the openframe statement from the control frame. Because end users are not changing information about the child frames, you need not worry about communicating with the parent frame. However, you may want the parent frame to track when each child frame is opened to ensure that end users do not open the same frame more than once.
Read/Write Application with Concurrent Frames
A more complex type of control frame application, the read/write application provides concurrent frames that let end users enter data in some frames and select data in other frames. For this type of application, you use the openframe statement to open each of the concurrent frames from the parent frame.
An application of this type is more difficult to develop because you must ensure that any changes in the child frames are reflected in the parent frame. One way to do this is to use the SendUserEvent method and a UserEvent event block to communicate between the frames.
For more information about communicating between frames, see the Programming Guide:
How You Can Communicate Between Open Frames
How You Can Communicate Between Frames with Database Events
How You Can Communicate Between Frames Using User Events
Data-driven Application
A data-driven application lets you provide different operational choices to different users from a single frame that can be used throughout several applications. The choices that appear on the menu are stored in a database table or a runtime array and are displayed selectively at runtime based on such information as the end user's login or group ID.
One menu frame can serve all applications, standardizing user interaction throughout an organization. In addition to facilitating standardization, this style minimizes the user frustration that arises from being presented with operations for which permissions are lacking.