Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Contains the total number of pages in a report.
You can use _PAGETOTAL to set up "Page X of Y" numbering in reports. _PAGETOTAL is supported in both development and run-time versions of Visual FoxPro and in all reporting operations, including REPORT FORM...TO FILE...ASCII and with optional arguments such as RANGE.
_PAGETOTAL [ = nValue ]
Parameters
- nValue
Specifies a positive number representing the total number of pages in a report.
Remarks
You can set _PAGETOTAL at any time. Visual FoxPro evaluates and updates _PAGETOTAL only when a report operation such as REPORT FORM occurs. At the beginning of the report operation, Visual FoxPro initializes _PAGETOTAL to a value of 0, regardless of whether _PAGETOTAL is used on the report.
If you include _PAGETOTAL anywhere in a Visual FoxPro report, Visual FoxPro performs two passes through the report. The first pass is not visible or printed and calculates the _PAGETOTAL variable. During the first pass, _PAGETOTAL is set to a value of -1.
For performance reasons, you can suppress a two-pass report by not calling _PAGETOTAL in a print preview using an expression such as the following:
TRANS(_PAGENO) + IIF(SYS(2040)="1", "", " OF " + TRANS(_PAGETOTAL))
If you do not include a reference to _PAGETOTAL in the report, Visual FoxPro sets the value of _PAGETOTAL to the total number of pages at the end of printing and performs only one pass through the report.
You can force a second pass through the report using an expression such as the following:
IIF( _PAGETOTAL = 0, "","" )
Initiating another pass allows for additional operations using report variables such as reporting % of the total number of pages.
Tip
For a second pass to occur, in previous versions of Visual FoxPro, you needed a reference to _PAGETOTAL in the report layout. In Visual FoxPro 9.0, you can also use a ReportListener reference on your REPORT FORM command. By setting the ReportListener's TwoPassProcess property to .T
. before a report run, you can force the report to perform two passes, even if you have not used _PAGETOTAL in any expressions in the report. For more information, see TwoPassProcess Property.
The value of _PAGETOTAL should equal the value of _PAGENO at the end of printing a report, regardless whether the report includes _PAGETOTAL.
Example
The following example illustrates how to include "Page X of Y" numbering in your report by using the _PAGETOTAL system variable and adding the following expression in the report textbox:
"Page " + TRANS(_PAGENO) + " of " + TRANS( _PAGETOTAL)
See Also
Reference
System Variables Overview
_PAGENO System Variable
ReportListener Object Properties, Methods, and Events
REPORT FORM Command