Try OpenEdge Now
skip to main content
ABL Reference
ABL Syntax Reference : VIEW statement

VIEW statement

Displays a widget (sets its VISIBLE attribute to TRUE).
Note: Does not apply to SpeedScript programming.


[ STREAM stream | STREAM-HANDLE handle ]
[ widget-phrase ]
[ IN WINDOW window ]
STREAM stream
Specifies the name of a stream. If you do not name a stream, the AVM uses the unnamed stream.
Specifies the handle to a stream. If handle it is not a valid handle to a stream, the AVM generates a run-time error. Note that stream handles are not valid for the unnamed streams. See the chapter on alternate I/O sources in OpenEdge Development: Programming Interfaces for more information on streams and stream handles.
Specifies the widget you want to view. You can view windows, frames, and field-level widgets. You cannot view menus. If you do not use this option, VIEW sets the VISIBLE attribute for the default frame for the current block.
IN WINDOW window
Specifies the window in which to view the widget.


The r-view2.p procedure displays information on a sales representative and then displays all the Customers belonging to that sales representative. Each new sales representative is displayed on a new page. In addition, if the information for a sales representative takes up more than one page, a separate FORM statement describes a continuation header for that sales representative. The VIEW statement for the PAGE-TOP frame hdr2, activates the header for subsequent page breaks.

FORM HEADER "Sales rep report" "Page" AT 60 PAGE-NUMBER FORMAT ">>>9".

DISPLAY SKIP(1) SalesRep.SalesRep SalesRep.RepName SalesRep.Region

FORM HEADER "Sales rep report" SalesRep.SalesRep "(continued)"
"Page" AT 60 PAGE-NUMBER FORMAT ">>>9" SKIP(1)
  VIEW FRAME hdr2.

FOR EACH Customer OF SalesRep NO-LOCK:
DISPLAY Customer.CustNum Customer.Name Customer.Address Customer.City


*If the widget is already visible, the VIEW statement has no effect.
*Viewing a widget does not, by itself, show any of its data. To view data in a widget, you must use a data display statement (such as DISPLAY) or assign the data directly to the widget's SCREEN-VALUE attribute.
*When you view a window, its frames and their descendant widgets are not displayed, unless you explicitly view or display them.
*When you view a widget, the AVM displays that widget unless its parent window or an ancestor window has its HIDDEN attribute set to TRUE.
*When you view a widget that has its HIDDEN attribute set to TRUE, the AVM sets the widget's HIDDEN attribute to FALSE.
*When you view a widget contained by a window that is invisible (VISIBLE attribute is FALSE), that widget and the containing window is displayed unless the containing window's HIDDEN attribute is set to TRUE.
*When you view a widget contained by one or more ancestor frames that are invisible, the VISIBLE attribute is set to TRUE and the HIDDEN attribute is set to FALSE for both the viewed widget and all its ancestor frames. However, if the containing window or an ancestor window has its HIDDEN attribute set to TRUE, neither the viewed widget nor its ancestor frames are displayed.
*When you view a frame, that frame and all widgets contained within it are displayed except those widgets whose HIDDEN attributes are set to TRUE.
*When you view a window, the AVM displays that window and any ancestor windows only if no ancestor window has its HIDDEN attribute set to TRUE. If the AVM displays the window, it also views any descendant windows down to, but not including, the first descendant window that has its HIDDEN attribute set to TRUE.
*If you are displaying a root frame and there is not enough room in the window for the new root frame to display, the AVM removes other root frames, starting from the bottom of the window, until there is room for the new root frame.
*In the case of a PAGE-TOP or PAGE-BOTTOM frame, the VIEW statement activates the frame for display at the beginning or end of each page.

See also

DEFINE STREAM statement, HIDE statement, Widget phrase, Stream object handle