GrafX Software  


What is ReportPro?

ReportPro is a full-featured banded report writer that allows you to create custom reports in virtually any format. With ReportPro, you can retrieve information from a variety of data sources and then sort, filter, and group the information as needed.

ReportPro’s data engine natively supports FoxPro® 2.5, CA-Clipper®, and dBase® 5 DBF and index file formats. You can even mix these file formats in the same report. ReportPro 3 ships with a native driver for the Jasmine® database and the data engine can access hundreds of SQL databases via ODBC.

The data engine can handle arbitrarily complex table relationships including parent, child, grandchild, and great-grandchild relationships. You can even define circular relationships; a table can be related back into itself. Tables and relationships are managed graphically making complex queries easy to understand.After you have specified and configured your data source, the process of creating a report is the same regardless of which data source(s) is used.ReportPro’s design interface is event driven and user centric making it easy to customize the report until the output looks just the way you like. Reports are created by drawing objects in the report design window. ReportPro supports line, rectangle, ellipse, text, field, image, graph, and embedded section objects. Report objects can be customized with borders, shading, colors, fonts, and shadows to create professional looking reports.Because ReportPro is a banded report writer, it provides incredible flexibility for formatting and grouping information. ReportPro provides a series of bands that allow you to control where and when information gets printed on your report. ReportPro also supports sections. Sections are essentially sub-reports that print within the context of the main report. Each section contains its own set of bands and report objects.ReportPro supports three (3) different report types: standard listing reports, columnar/label reports and cross-tab reports. Each report has a dedicated wizard that allows you to easily specify the information necessary to create a report.And finally, ReportPro comes with a royalty free runtime DLL and ActiveX control that developers can use to print, preview and export reports created with the ReportPro designer. The runtime DLL allows the developer to specify at runtime, numerous attributes that affect the output of the report. For example a developer can easily specify filtering and sorting, set the captions and messages of dialogs, and even set the values of user-defined variables.

 ReportPro 3 Enhancements and Improvements

Many new and exciting features have been added to ReportPro for version 3. Changes have been made throughout ReportPro to make it easier to use. Other changes were implemented to increase functionality and improve reporting speed. The key focus of ReportPro 3 was to create a fast, stable ActiveX version of our popular selling report writer. Doing so required us to port ReportPro over to ClassMate, our early-bound high performance class library. The porting process allowed us to revisit our user interface and provide many subtle improvements. The following is a list of some of the key improvements:

  • Design interface enhancements - The report wizards were rewritten to make them more user friendly. The filtering tab was one area of significant improvement. The functionality of this tab was expanded to allow the creation of complex filtering conditions.

Also thanks to ClassMate 200, OLE drag-and-drop functionality was implemented throughout ReportPro. In most dialogs, you can now drag fields between list boxes and rearrange fields in list boxes using this technology.

  • Native Driver for Jasmine Database - ReportPro 3 ships with a native driver for the Jasmine database. This driver allows the report creator to connect to a Jasmine database, create an ODQL query, and generate a report based on the results of the query.

  • Parameters in SQL and ODQL Queries - The SQL and ODQL query builders have been improved to allow parameters to be included in the SQL and ODQL queries. This feature makes using SQL and ODQL queries in triggered sections significantly more efficient.

  • Cross-Tab Enhancements - ReportPro’s cross-tab engine has been completely rewritten to make it significantly faster. Additional functionality has been added to allow the end user to control whether or not the summary rows and columns are printed. Also, a new "display" expression was added for the columns and rows. This feature allows the data that is collected and sorted for the cross-tab to be different than the data that is printed in the column and row headers.

  • Faster performance, almost 100% early bound - ReportPro 3 has been completely rewritten to provide the highest level of performance. With very few exceptions, all methods, access and assigns within ReportPro are early bound. Most non-networked DBF reports will execute in half the time it took them to run in ReportPro 2.X.

  • Built using ClassMate! - ReportPro 3 was built using our ClassMate 200 foundation class library. Since this library is almost completely early bound, ReportPro executes more efficiently, uses less resources, and is significantly more stable than ReportPro 2.

  • ActiveX Control - The ReportPro runtime now comes as an ActiveX control so you can use ReportPro from your favorite development language.

  • Dynamically loaded Data Source DLLs - The SQL and Jasmine data source DLLs are dynamically loaded as needed so you do not have to distribute them unless they are used.

  • Smaller footprint - The sample application that uses the ReportPro 3 runtime is 100K smaller than the sample application that uses the ReportPro 2 runtime and the ReportPro 3 designer uses 37% less memory than the ReportPro 2 designer.

  • Multi-page print preview - The new multi-page preview can preview two pages at the same time. Each page can be zoomed independent of the other. The preview is also significantly faster in ReportPro 3 than it was in ReportPro 2. Moving backward through the pages is now instantaneous.

  • Improved Expression Builder – The new expression builder is easier to work with and provides more area to display field, variable, and function names.

  • Improved Runtime API – The new runtime API allows the developer to retrieve more information from the report and makes it easier to set report, section, and table level attributes.

  • Distributable Designer DLL - The distributable designer DLL has been improve to support a simplistic data dictionary. The data dictionary allows table names, index names, and field names to be aliased making it easier for the end user to create reports.   Please note that the distributable designer DLL can only be used in conjunction with ClassMate.  It is not compatible with the CA-Visual Objects 2.5 GUI class library.


The ReportPro Design Interface

At the top of the shell window is the title bar which contains the text "ReportPro 3". Directly below the title bar is ReportPro’s main menu. The menu is used to access the various options available in ReportPro. Underneath the main menu is ReportPro’s toolbar. The toolbar allows quick access to frequently used ReportPro menu options.At the top of the work window is another title bar. This title bar shows the file name of the report that is open in the work window. When you create a new report and have not saved it yet, the text "[New]" is displayed in the title bar.Below the work window title bar is the ruler. The ruler indicates where on the report surface you are drawing or editing. The ruler can be displayed in either inches or centimeters and corresponds to the location that objects will print from the left edge of the paper.

The white area below the ruler is the report surface. On this surface you will place the objects which constitute the report. The light gray area on the left side of the report surface represents the left margin of the report. A similar shaded area exists for the right margin, but it is not shown in the figure above due to the paper width. ReportPro also manages the top and bottom margins, but they are not shown in the work window. The margin sizes are configurable, and you can always place objects in the margin area if desired.


Each report contains one or more sections. ReportPro supports Title, Standard, Label/Column, Cross-Tab and Summary sections. A section essentially is a report in and of itself. Each section (except Title and Summary sections) has its own data source that is independent of the data sources in other sections. Each section can also have its own page layout and printer setup information.

At the bottom of the report work window is the Section Tab Bar. The tab bar displays one tab for each section in the report. By default a report has one section, but as you add sections to your report, additional tabs will appear on the tab bar. You select a section by clicking its tab. When you do so, the current section is hidden and the selected section is shown.


Each section is divided into Bands. Bands determine where objects print in the section. ReportPro supports seven types of bands: Background, Page Header, Group Header, Page Body, Group Footer, Page Footer and Summary. Each section in your report will have its own set of bands. Some sections support all band types while others, like the Title Section, only support the Page Body and Background bands.

The Background, Page Header, Page Body, Page Footer and Summary bands are created automatically when you create a new section. The Group Header and Footer bands are created when you define a grouping.

Background Band

The Background band prints on each page of a report and is always the same size as the printable paper area (paper height - top margin - bottom margin). Objects on the Background band print behind objects in other band types.Only sections that have Page Header and Page Footer bands support Background bands. During printing, sections that do not have Page Header and Page Footer bands inherit the Background band from the most recently printed section that has a Background band.

To access the Background band, press the Background button on the lower left corner of the work window. This button toggles the work window display between the foreground and background modes.

Page Header Band

The Page Header band is used to print objects at the top of each page of the report. The Page Header band prints just below the top margin of the report. This is a convenient location to place the report title as well as the page number and date.

Group Header Band

This band is printed when a report grouping starts. The grouping must contain data or the header will not print. This feature prevents a Group Header / Group Footer combination from printing unless a Page Body band prints.Group Header bands are useful for placing sub-title information. For example, if you were creating an invoice listing report that was sorted and grouped by customer, you would probably want to place the customer name in the Group Header band so you could easily identify whom the invoices belong to.

If you create a report that has multiple levels of grouping, you’ll get a Group Header/Group Footer band combination for each grouping you define.

Page Body Band

This band is printed for each record in the data source that satisfies the section’s filter criteria. The Page Body band is where you place the report objects that print the body of the report. For example if you were creating a customer listing report, you might place field objects to print the customer name and mailing address in this band.

Group Footer Band

This band is printed after a grouping ends. It is useful for printing totals based on information in the grouping.

Page Footer Band

The Page Footer band is used to print objects that appear at the bottom of each page of the report. The Page Footer band prints the height of the band above the bottom margin. For example, if the bottom margin is one inch and the band height is ½ inch, the band would start printing 1½ inches from the bottom of the page. The Page Footer band is a convenient location to place your company name and report page number.

Summary Band

The Summary band prints after all data associated with its section has been printed. It prints after the Page Body and Group Footer bands but before the last Page Footer band. The Summary band is designed to allow you to print totals and summary information for the data in the section.

The Expression Builder

The Expression Builder is an important part of ReportPro’s design interface, and you will encounter it frequently as you create reports. ReportPro uses expressions extensively for a variety of purposes such as retrieving information from a data source and making decisions during the printing process. Think of an expression as a series of commands that instruct ReportPro how to perform a task.


The Expression Builder window consists of a series of tabs across the top of the window and a large edit control at the bottom. Each tab contains a different piece of information that can be used to build an expression. The Fields tab (shown above) contains a list of all the database fields that are available in the current section. The Functions tab contains a list of the functions that are supported by ReportPro. The Variables tab contains the list of user defined variables. You build an expression by combining information from these three tabs in the edit control at the bottom. There are two ways to copy information from the tabs to the edit control. The first is to double-click the desired piece of information. Doing so places the piece of text that you double clicked in the edit control at the location where the edit control cursor (the flashing vertical bar) is located. If there is highlighted text in the edit control, it is replaced with the text that you clicked on. The other method for copying information is to click the desired piece of information with the left mouse button and drag it into the edit control.Between the tabbed windows at the top of the Expression Builder and the edit control at the bottom is a series of speed buttons that can be pressed to quickly enter text into your expression. These buttons serve no other purpose than to provide a shortcut for typing common pieces of text.In the bottom right corner of the Expression Builder are several additional buttons. The Test button provides a way for you to test your expression as you build it. If you are building a complex expression, it is a good idea to test the expression as you go. A simple expression is much easier to debug than a large complex one. The Clear button simply deletes all the text in the Expression Builder edit control. When you have finished building your expression, press the OK button to save your new expression. ReportPro will automatically test your expression to make sure that it is valid. If ReportPro detects an error, you will be informed of the error and given the option of fixing it before you leave the Expression Builder. Pressing the Cancel button will return you back to the ReportPro work window without saving any changes.

The Fields tab contains two additional controls that can help you build your expressions. The first control, which is located at the bottom left of the Fields tab, is the Field Browser button. When pressed, this button will display a dialog that shows sample data for the field that is highlighted in the Fields tab. This feature is useful because it is not always easy to remember the data type of all fields in a database. The other control is a combo box on the bottom right side of the Field tab. It contains a list of the database tables that are being used by the current section. When a table is selected in this control, the Fields tab is refreshed to show only those fields from the selected table. This feature is very useful when your report contains many tables.

Drawing Tools

With the exception of the Pointer Tool, ReportPro’s Drawing Tools are used to create the report objects that generate the printed output of your report. ReportPro provides several different drawing tools, one for each report object type. To select a drawing tool, use the Tools, Drawing Tools menu, or select the tool directly from ReportPro’s toolbar.A report object is created by selecting the desired drawing tool and using the tool to draw the object on the report surface. The object is drawn by pressing the left mouse button at the desired origin of the object, and while holding down the left mouse button, dragging the mouse until the desired object size is reached. When the left mouse button is released, the object is created at the location and size you specified.

In some cases, ReportPro will prompt you for additional information before the object is created. For example, when you create a field object, ReportPro prompts for the expression used by the field object to extract data from the data source.

Pointer Tool

The Pointer Tool allows you to manipulate report objects. The following table lists the tasks that can be performed with the pointer tool. Also provided is a brief description on how to perform the task.

Function Description
Selecting an Object To select an object, point at the object with the mouse and click the left mouse button.
Selecting Multiple Objects To select multiple objects, first select a single object, then select additional objects by holding down the Shift key and clicking the desired object with the left mouse button.

Multiple objects can also be selected by drawing a rectangle area with the pointer. All objects touched by the rectangle will be selected.

Moving Objects To move an object, point the pointer tool at the object and drag the object while holding down the left mouse button. It is also possible to move multiple objects.
Sizing Objects To size an object, first select the object you wish to size, then point the pointer tool at the sizing boxes located along the object's bounding box. Stretch the object to the new size while holding down the left mouse button.


Line Tool

The Line tool is used to add straight lines to the report.

Rectangle Tool

Use the Rectangle tool to add squares and rectangles to your reports.

Ellipse Tool

Use the Ellipse tool to add circles and ellipses to your reports.

Field Tool

Use the Field tool to create objects that retrieve information from your data source. You can also use the field objects to access user-defined variables or perform an arithmetic operation that is then printed on the report.

After you draw the field object on your report, the Expression Builder will appear. Before the field object is created, you must define an expression that is used to retrieve or calculate the information that is printed by the field object. If you cancel out of the Expression Builder, the field object will not be created.

Text Tool

To add text to a report, use the Text Tool. After you draw the text box, the text object will be displayed in the Edit mode. Type the desired text into the text object. When you select a menu option or another report object, the text object will exit the edit mode. To return to the edit mode, select the Text Tool, point the mouse pointer at the text object and click the left mouse button.

Picture Tool

To add images to your report, use the Picture Tool. After you draw the picture object, you are presented with the Picture Style dialog where you specify the source of the image. ReportPro can retrieve images from several different sources:

Image Source Description
Directly From File This option allows you to specify a file name to retrieve the image from.
File Name returned from an Expression With this option, you specify an expression that returns file names. This feature is useful if the file name of the image is stored in the data source. If you place the image in the Page Body band, this would result in a different image being printed for each row in the data source.

Image returned from an Expression

The feature allows you to display images that are stored in a database.


ReportPro supports a variety of image formats including BMP, PCX, PNG, JPG and TGA.

Depending on the Picture Source you choose, you must either specify the file name where the image is located or an expression that returns the image file name or the entire image.

Embedded Section Tool

This tool allows you to create an Embedded section. An Embedded section is a section that prints inside a rectangular area in another section. Embedded sections are useful for placing information from another unrelated data source inside of a section. After you draw the bounding box of the Embedded section, you will be prompted to specify information about the data source that will be used by the Embedded section.

After you specify the section information, the section will be created on the report surface. A new section tab is also added to the work window’s section tab bar. You cannot edit the Embedded section object from the parent section. You must first select the Embedded section by clicking on its tab on the Section Tab Bar. Once the section is selected, you can manipulate the section like any other report section.

Graph Tool

The Graph tool allows you to create graphs on your report. After you create a graph object, the Graph Wizard is displayed. The Graph Wizard is a tabbed dialog that allows you to specify all the attributes of a graph.

Printing Your Report

After you have created a report and customized it to meet your needs, you will want to send the output to the printer.  ReportPro’s Print Preview provides a great way to get a sneak preview of how your report will look when it is printed. You can use the Print Preview throughout the report creation process to see how changes made to the report will look when they are printed. To display the Preview window, select the File, Print Preview menu option from ReportPro’s main menu. You can also access the Print Preview via the report work window toolbar by clicking the button.



The Print Preview supports both single page and dual page modes. The figure above shows a dual page preview with both pages displayed in the Full Page zoom mode. The Print Preview supports three zoom levels and each page can be zoomed independent of the other page. The three zoom levels are:

Zoom Mode


Full Page

The page is scaled to fit entirely in the preview window.

Page Width

The page is scaled so that it is the same width as the preview window (or ½ the preview window width if the preview is in the dual page mode). Depending on the length of the paper your report is using, vertical scrollbars may appear to allow you to scroll the page vertically.

No Zoom

In this mode, the page is shown without any scaling. Here you get the best representation of what the printed output will look like. Unless you are printing on very small paper, you will not be able to see the entire page. If necessary, vertical and horizontal scrollbars will appear allowing you to scroll across the page.


To change the zoom mode of a preview page, place the mouse pointer over the desired page and click either the left or right mouse button. The left mouse button will zoom in (reduce scaling) and the right mouse button will zoom out (increase scaling).

When the preview is in the dual page mode, you also have the option of sizing the preview pages. To enable this feature, first make sure that the page auto size option is disabled. The auto size option is disabled when the button on the Print Preview toolbar is not pressed. After verifying that the auto size feature is disabled, click the left mouse button over the preview sizing bar and while holding down the left mouse button, drag the bar to the new position. When you release the mouse button, the preview pages will resize.

Inportant Upgrade Information...

Please read this section before you upgrade from ReportPro 2.  This section contains important information that may affect your decision to upgrade.ReportPro 3 has been completely rewritten using ClassMate.  Because of this, you may be required to make significant changes to your application when upgrading from ReportPro 2.  Additionally, you may loose functionality depending on how you are currently using ReportPro.  Please read the bullets below carefully to determine how you will be affected.

  • The ReportPro 3 runtime and designer DLLs and are not compatible with applications developed using the CA-Visual Objects® GUI classes.  Applications developed with the CA-Visual Objects® GUI must use the ReportPro 3 ActiveX control.  The ReportPro 3 ActiveX control provides the ability to print reports from an application but does not provide support for the distributable designer or for hard coding reports.

  • The distributable designer DLL can only be used in a ClassMate™ application.

  • The ReportPro 3 runtime API has been substantially modified and extended to support the ReportPro ActiveX control.  As such, the ReportPro 2 and ReportPro 3 class libraries are very different and will require that you make coding changes if you upgrade.

  • ReportPro 3 does not support hard coded reports.  The functionality supplied by the RpPrinter and PtrDevice classes in ReportPro 2 is now supplied by the ClassMate GUI library.

If any of these changes adversely affects your application, then we recommend that you continue using ReportPro 2.

Item Price Quantity
Report Pro 2.17 Upgrade for VO 2.8 SP4 No Designer & PDF Output Support $99.00
Report Pro 2.17 Upgrade for VO 2.8 SP4 With Designer & PDF Output Support $149.00
Report Pro 3.0 Upgrade from 2.0x $179.00
Report Pro 3.0 Full Product(New License) $269.00
Report Pro 3.0 Bundled with ClassMate200 $369.00

INT.gif (3958 bytes)

This button will add all items on this page with
a quantity greater than "0" to your shopping cart.



GrafX Software