Stream I/O vs. screen I/O
- Last Updated: January 17, 2024
- 2 minute read
- OpenEdge
- Version 12.8
- Documentation
Stream I/O vs. screen I/O
When you compile a procedure, ABL automatically lays out the frames as appropriate for the current screen display. The layout differs across user interfaces because some fields have special decoration. The font also affects the size, and therefore the layout, of fields.
However, when you are displaying a frame to a file or printer rather than the screen, you do not want ABL to design the frame for screen display. You want ABL to lay out the field for a character display using a fixed font and fields without decorations. Otherwise, output written to a printer or operating system file may be unattractive or even partially unreadable. You also want ABL to represent all data fields as text, not as graphical widgets such as editors or sliders.
ABL provides two mechanisms to deal with these issues:
- The
STREAM–IOoption of theCOMPILEstatement - The
STREAM–IOandSCREEN–IOoptions of the Frame phrase
If all output from a procedure is to printers or operating system
files, you can use the STREAM–IO option of the COMPILE statement.
This forces ABL to lay out all frames using a standard fixed font
and to display all data fields as simple text fields. The following
widget types are converted to text:
- Editors
- Selection lists
- Sliders
- Radio sets
- Toggle boxes
If you only write a few frames to a printer or file in your procedure,
you can use the STREAM–IO frame option to mark
those frames. This forces ABL to lay out only those specific frames
for output to a printer or file. If you do not specify STREAM–IO in
the COMPILE statement, then all other frames are
designed for screen display.
If only a few screens in your procedure are displayed to a screen,
you use the SCREEN–IO frame option to mark those
frames. Then compile with STREAM–IO so that all
other frames are laid out for display to a printer or file.