Omnis Technical Note TNPR0003

Printing ranges of pages

For Omnis Studio version 1.2
By Michael Monschau

What goes on when specifying ranges of pages?


Printing and ejecting
Page ranges and devices (The screen report field and Possible ranges)

Printing and ejecting

When specifying a range of pages, only the ejection of pages is effected. The report engine and print manager will generate all pages of the report as normal. These pages are buffered on disk until the last page of the report is completed. Only then are the specified pages ejected. Even calling $ejectpage from notation will have no effect until the print job is finished.

This is different to when no page ranges are specified (all pages are to be ejected). The print manager
will eject pages as soon as they are complete if auto ejection is enabled.

Page ranges and devices

Some devices (report destinations) do NOT support page ranges. These devices will always print or display all pages of a print job. The screen and page preview devices are currently the only devices which do NOT support page ranges. How ever page ranges can be specified in the job setup dialog
when printing from a screen report to printer. The screen report field The screen report field implements the $redirect method which can be called to send the report to another device. The $root.$prefs.$pages can be used to specify the range of pages to be redirected.

  ##### Method 'sendToPrinter' #####
  No. Method text
1 Calculate $cdevice as kDevPrinter
2 Calculate $prefs.$pages as "20-1"
3 Do $cobj.$redirect(kFalse)
4 Calculate $prefs.$pages as ""

Page ranges can be specified in the job setup dialog or using the notation $root.$prefs.$pages or
$cinst.$pages where $cinst is a report instance. Here is listing of all possible ways you can specify pages to be printed.

"1,3,5,2,4" Print the specified individual pages in the order they are specified.
"1-10,30-35" Print pages 1 to 10 then print pages 30 to 35.
"o1-10,e1-10" Print all odd pages in range 1 to 10, then print all even pages in range 1 to 10.
"30-1" Print pages 1 to 30 in reverse order.
"C" Print the currently visible page (when using $redirect of the screen report field).

Any combination of the above. If a page appears more then once it will be printed more then once.

Download RTF Document