VPE+ employs a banded style of reporting. Bands are implemented within frame components which provide a structure and flow to report generation. Unrestricted nesting of frames permits complex report designs. By the same token, frames are by no means obligatory.
A positional (x, y) cursor moves in synchrony with output, typically obviating the need for explicit coordinates, but not precluding them. Indeed, you can easily address output to any part of any page at any time with versatile single line and multi-line output methods, including horizontal tabbed printing and column style output.
The Concept Behind VPE+
Fundamentally, of course, VPE+ is a code-based reporting system. You write code to output text and other objects to a page. VPE+ balances automation with low level flexibility.
Central to VPE+ is the reporting interface encapsulated by TReportInterface. This non-visual component is so-called because it links the underlying Virtual Print Engine (VPE) both with the code-based framework of VPE+ and the GUI requirements of reporting within an application.
When a report is executed, you begin with a blank "page canvas". This behaves like a (single) default band to which you can target output.
Frame components (TPageFrame, TMasterFrame, TDetailFrame, TLabelFrame and TColumnFrame) introduce fixed and dynamic bands (page headers and footers, group headers and footers, report body bands, mailing labels etc etc) which demarcate specific zones on the page. Theyprovide cyclic flow and control mechanisms to structure a report and navigate datasets and master/detail type data structures.
Print functions (PrintPos, PrintTab, PrintLine, PrintHeight, PrintLines etc) allow you to write text elements to the page. You can pre-render text to assess space requirements and wrapping behaviour before actual output.
Both plain text and RTF output can be handled using versatile TTextBlock and TRTFBlock objects. VPE supports "RTF-on-the-fly", allowing you to readily compile comprehensive RTF strings and output the resulting formatted text.
The page text cursor can be readily manipulated to align text with respect to another object or the font metric of another text element anywhere on the page. Positionally, VPE+ is very precise.
Drawing functions (DrawBox, DrawEllipse, DrawLine, DrawImage, DrawArrow, DrawTabBox etc) allow you to draw shapes and images.
There are many other VPE+ features in the toolbox, to say nothing of the extensive functionality of the core VPE. By way of a much more detailed indication of the scope and functionality of VPE+, you can browse the User Guide & Notes.