LINE-COUNTER function
Returns the current line number of paged output as an INTEGER value.
The initial value of LINE-COUNTER is 1. At the completion of each DISPLAY statement, the AVM increments LINE-COUNTER by the number of lines that were output in that DISPLAY statement. LINE-COUNTER continues to increase until after at least one line has been printed on a new page.
LINE-COUNTER returns a 0 if the output is not paged.
Syntax
stream
Specifies the name of a stream. If you do not name a stream, the AVM uses the unnamed stream. For more information on streams, see this book’s DEFINE STREAM statement reference entry and OpenEdge Development: Programming Interfaces.STREAM-HANDLEhandle
Specifies the handle to a stream. Ifhandle
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.ExampleThis procedure prints a Customer report, categorized by
State
. At the end of eachState
category, it tests to see if there are at least four lines left on the page. The LINE-COUNTER function returns the current line number of output. If that number plus four is greater than the total number of lines on the page (returned by the PAGE-SIZE function), then the procedure starts the new page. If there are four or more lines left, the procedure skips a line before printing the next customer record.
Notes
- When output is sent to a device other than the terminal screen, the AVM defers displaying a frame until another frame is displayed. That way, if you display the same frame several times consecutively, the AVM performs all those displays at once. Because of this optimization, if the last display fills the page, the value returned by the LINE-COUNTER function can be larger than the page size, even though the next frame is displayed at the start of the new page.
- Use a procedure like this one to verify that output is positioned on the first non-header line of a new page:
See also
OpenEdge Release 10.2B
|