CPCS Reporting Tools for CW 2.X and C4 - Creative PC Solutions

By Tom Hebenstreit

Posted March 1 1998

Printer-friendly version

Reports occupy a strange place in the world of application development. Unlike designing a slick user interface or coming up with a super efficient algorithm, there's nothing particularly glamorous about placing fields on paper (over and over and over). To many developers, reports are their least favorite part of creating applications, and it is not at all uncommon in my experience to find the newest member of a team 'stuck' with creating many of the reports for a project.

To the user, though, reports are arguably the most important part of your apps. Reports are where they finally get to see all that data they have been entering laid out and summarized - transformed, in essence, from raw data to real information which they can easily grasp and use. In many applications, it is not unusual for report procedures to outnumber forms and browses by a large margin as users request more and more ways of looking at their data.

Ok, so reports are BBC (Boring But Critical), but Clarion makes creating them easy, right? Well... not really. The Report Formatter is probably the weakest area of the CW development environment (IDE), and to top it off, the built-in Report Previewer is, to put it kindly, just adequate. Reports with any degree of complexity require both handcode AND a thorough understanding of what the standard Report template is doing in order to avoid having your code and template code stepping all over each other. Common business needs like mailing labels and envelopes must be designed from scratch - the stock Clarion Report template hasn't a clue about them.

So, reports are critical, you have to create loads of them, and CW just really isn't it's usual helpful self when it comes to doing this. What's the answer to this dilemma? If you ask most Clarion developers, they'll come up with the same answer: The CPCS Reporting Tools.

Written by Larry Teames of Creative PC Solutions (CPCS), this template set has been around since the early days of Clarion for Windows. It has grown over the years in both features and price (currently $299 US) until it has become one of the heavyweights of Clarion third party products.

In this review, we'll take a look at the newest versions: v2.25 (for CW 2.003) and v4.02 (for Clarion 4, both ABC and Clarion template chains). Let's get started...

Major Features

Where to begin? A basic summary includes:

  • A flexible Wizard that allows you create reports ranging from a simple list to one with a complex custom View, sort order, filters and multiple break levels.
  • Over a dozen preformatted default report styles to choose from, including legal sized (portrait and landscape), labels, envelopes and more.
  • A robust report Print Preview module that can be either incorporated directly into your EXE (for one-piece programs) or shared among multiple programs as a DLL. Various options are included for controlling how and when the Previewer is used.
  • The ability to easily create Clarion Views that can JOIN just about any combination of files - related or not. If there is a common data field, you can Join the files. (See your Clarion documentation for details on Views, Joins and how they form the basis of most reports, browses and processes.)
  • Support for up to nine break levels, with associated Formulas and Source Embeds available for each level.
  • A template that makes it easy to loop through and print associated child records for a parent record without requiring a dictionary relationship. This template can be also be nested multiple times (and ways) to create reports that print children of children of children, and so forth.
  • The ability to report from a queue instead of a file. Additionally, this feature can be used multiple times, and used in conjunction with files. For example, the report could loop through a queue and print associated records from a file. Conversely, the report could loop through a file and print records from a queue.
  • Using the 'Handcode' option, you can turn off the standard report record loop and print handling and do it all yourself while still taking advantage of the normal file handling and preview features.
  • A Control template to add a 'Print this record' button to Forms or Browses. For a Form you can print the current record. For Browses, the currently selected record.
  • Templates to create a 'Pick List' and then filter the report so that it prints only the chosen items.
  • A template to automatically suppress blank lines in up to six lines of text (in an address label, for example). This template can be used multiple times in a report.
  • 'DynaLabel' support. This feature adds support for user definable labels, and includes Browse and Form procedures that can be imported into your app to handle the selection and definition of labels. Using this, a single report can handle multiple types and sizes of labels for one particular set of fields.
  • A set of related templates for manipulating images - storing, displaying and printing.
  • A 'Universal Process' procedure template which allows you to use many of the View and file handling features of the Universal Report template for a Process.
  • Extensive support for querying printer capabilities.
  • The ability to internationalize the Print Preview module via an INI file.

Other capabilities include printing reports to ASCII files, support for fast printing to Dot Matrix printers, selectively printing pages (single, groups, and ranges) from the Previewer, multi-column reports and a whole lot more.

Installation

The product is delivered in the form of a self-contained Windows based install program that does a really nice job of walking you through the installation process.

Installation was painless for v2.25 (CW 2.x) and positively brainless for v4.02 (C4). In both cases the installation program correctly located my Clarion directories (which reside on an E drive) and offered to install the product there. For the C4 version, it even offered to automatically register the templates for me (both Clarion and ABC). Very nice indeed.

It should be noted, though, that the CPCS Report Tools do modify the Clarion standard templates in order to enable them to provide some of their advanced filtering capabilities. This applies to both the CW 2.x templates and the C4 Clarion Template chain. No modifications are necessary for the C4 ABC template chain. A utility is also provided which can make the required modification on demand. This is useful if you have installed a CW/C4 upgrade or patch which contains new (unmodified) templates, since the utility can re-apply the change without having to re-install the entire CPCS package.

One other modification is made, and that is that the install process makes changes relative to your DEFAULTS.CLW. "What the heck is that?", I hear you say...

DEFAULTS.CLW is a text file containing the source code for the default window and report structures that provide the lists you see when you click on the Report or Window button the first time in a new Window or Report procedure. For example, in the standard Report template the stock CW DEFAULTS.CLW offers the choice of a landscape or portrait style report.

CPCS installs a new DEFAULTS.CLW file containing over a dozen new default report types as well as the stock Clarion window types. The original file is left intact - the installation process changes your redirection file so that CW looks for the CPCS modified file in a new location. This becomes important if you have made changes to your DEFAULTS.CLW file before you installed CPCS, since you will need to redo the changes in the new file. If you have never changed the DEFAULTS.CLW file, you'll never know the difference.

Implementation

[Note: There are way too many features in the Report Tools to detail here, so I will simply try and demonstrate some of the range of the product.]
Adding the CPCS Report Tools to an application is very straightforward. First, a simple global extension template must be added to your app via the 'Global->Extensions' button. The extension only has a few items on it, and can simply be accepted as is 99% of the time. Once that is done, it's time to create a report. Since most people will use the provided Report Wizard, we'll begin there as well.

Wiz-ing along

Like the standard Clarion Browse, Form and Report wizards, the CPCS Report Tools Wizard automatically pops up whenever you choose to create a new procedure using the Universal Report template (assuming, of course, the 'Use procedure wizard' option is on).

For my first simple tests with the wizard I pretty much just filled in the prompts for the Procedure name and description, chose a file and key, and then accepted the defaults the rest of the way. I placed the fields on the detail band of the report, compiled, and had a decent report which used the CPCS Print Preview.

Delving deeper, I created another report with the wizard which used a custom View to Join together three files that had no formal relationships in the dictionary. Specifying which fields joined which files was a simple process of pointing and clicking on lists of fields and keys from the files I was using. One Join used a key, while the other linked up two non-key fields that contained the same codes. Moving on, I chose two of the files to create report break levels on. Again, all point and click.

R_TH0301.GIF

the CPCS Report Wizard.)

After finishing the wizard and placing fields from the three files on the appropriate headers, footers and details it had automatically created for me, I crossed my fingers, compiled, and then smiled a big smile as the report worked exactly as I wanted it to. Next I added some formulas to create totals on my breaks, and they worked without a hitch as well.

Now, there are two important points to keep in mind regarding the report I just described:

  1. No hand code, etc., was involved using CPCS. It was all point and click.
  2. Given the lack of formal relationships and keys, it is basically impossible to create this report using the standard CW Report template, much less create it by simply clicking your way through a wizard. The standard templates simply don't give you the option to 'roll your own' Views and breaks like CPCS does.

Final note on the wizard: Unlike the standard CW Report Wizard, the CPCS Wizard doesn't place fields on the report - that's left up to you. Personally, I'll gladly trade that option for the vastly increased power the CPCS Wizard places in your hands.

Total Control

In another test, I went to the opposite extreme (all hand code, no wizard). I needed to convert a very complex hand coded report which had originally been developed in Clarion for DOS (CFD) to CW. This report manipulated multiple files and queues, formatting and printing many kinds of data using a single detail line over which various group structures were overlaid (I told you it was complicated). Since all of the file and field manipulation logic worked fine; what I wanted to do was basically just copy it into a Windows report. This had already proved problematic using a standard Clarion Report, as it generated all sorts of code to manipulate the files itself - code that was completely unnecessary in this case.

So, I created a new Universal Report procedure (not using the Wizard), and checked the 'Handcode Procedure' option. Using this option, the template basically just becomes a shell which handles all the tedious details like opening and closing files, invoking the Print Preview and so forth. Everything else is left up to you (just the way I wanted it).

After using the report formatter to re-create the look of the DOS report, I simply cut and pasted blocks of code from CFD to the specially marked 'handcode' embeds within the Universal Report template. Doing this, I was able to reuse the existing code, eliminate the generation of redundant code and recreate this report in much less time than I anticipated.

Lots of features, little room

I tried quite a few other features of these templates, including printing from queues, looping through associated files, blank line suppression, the Universal Process template and more. Everything worked as advertised. Do yourself a favor and download the demo if you'd like to see them all in action.

Compatibility

I tested CPCS with a variety of other third party products such as the Toolcraft Query Wizard and Boxsoft's Super Tagging templates to see how their report filtering capabilities worked with the Universal Report template. In all cases, everything worked with no problems whatsoever. Records were filtered as expected with Query Wizard and only tagged records were printed with Super Tagging.

I also tested using Lodestar Software's Report Presentation Manager (RPM) as a replacement for the CPCS Print Preview. As RPM provides direct support for integrating with CPCS, the combination worked flawlessly together (and it is an absolutely killer combination, in my opinion - the creme-de-la-creme of reporting power).

The various test applications used either the standard Clarion Templates or the Moseley Group's Dictionary Enhancement Templates (DET). Once again, no problems were encountered. Reports were printed both to laser printers and directly to WinFax Pro for faxing.

Performance

In action, the Report Tools do what you expect them to. Various options let you control how things appear to the user: Progress bars; the displaying of spinners, record counts or animated icons (cool!); asking, forcing or suppressing Print Previewing and so on.

The Print Previewer itself is not the flashiest one around (RPM holds that honor), but it is a solid step up from the stock CW Print Preview. Its real power lies in the code underneath it that adds many desirable capabilities, like printing page ranges and being able to change the destination printer while previewing.

 Figure 2: The CPCS Print Preview screen
The CPCS Print Preview screen

Documentation

A tool this deep requires good documentation but, unfortunately, this is the weakest area of an otherwise stellar product.

A standard Windows Help file is provided which details how to implement each of the features of the product. A handy Questions and Answers section covers many common questions and a few of the quirks of the CW report engine. Also on the plus side, a comprehensive demo application is provided which demonstrates how to use virtually every feature so, between the demo and the help, you should be able to figure out how to do just about anything you need to do.

On the minus side, the Help is not context sensitive (it always pops up on the table of contents), it could be clearer, and the table of contents a bit better organized. Also, it would be nice to have some of the terms and concepts that are used more clearly defined. After all, it doesn't do a new user much good to know that they can create up to nine break levels if they aren't quite sure what the heck a break level is!

The biggest problem, though, is printed (or printable) documentation. Basically, there is none. An RTF (Rich Text Format) file is provided, but it is simply the source document for the Help file. It has no page numbers, no usable table of contents and is sprinkled with strange characters used in the formatting of the file for the WinHelp compiler. It prints, but it is not a pretty picture.

Picky, you say? Perhaps, but a product in this price range should provide every possible assistance in helping you to get up to speed with it, and in my mind that means having decent printed (or printable) documentation. It is much more difficult to try to follow a ten step process in a Help file, bouncing back and forth between it and your app, than it is to have it all laid out on your desk while you simply fill in the prompts.

Technical Support

Back to the good stuff. Technical support is, in a word, superb. Larry, a long time member of Team TopSpeed, answered all questions quickly and thoroughly (and has done so for a number of years). He has always been willing to look at problem code to see what is going on, and any problems with CPCS are usually resolved within days (or less). For example, I discovered a small problem in the C4 ABC version of the demo program, and a corrected version was posted on the CPCS website within 24 hours.

Support is available through email and on the TopSpeed Compuserve forum, where Larry is quite rightly regarded as the 'Grand Guru of Reports'.

V2.25 (CW 2.x) versus V4.02 (Clarion 4) Clarion/ABC

The templates pretty much provide exactly the same features in both the CW 2.x and C4 versions. The only real exceptions are:

  • v4.02 (C4) supports INNER JOINS in a view (an INNER JOIN eliminates parent records which have no child records). This is a new feature in C4 itself, and so cannot be implemented in the CW 2.x version.
  • v4.02 includes one additional template - an enhanced version of the standard Clarion 'Look Up Non-related Record' template. It gives more control over the lookup process, provides for saving the lookup values into local variables, lets you call a lookup procedure and more.

Summary

With good reason, the CPCS Reporting Tools have become one of the most popular and, indeed, indispensable template sets available for Clarion users. They are certainly not cheap, but if you need to do anything other than basic reports, they will pay for themselves many times over in the increased efficiency and flexibility that they bring to this important area of Clarion application development.

Category

Product Score

Ability to do the task

Excellent

Ease of use

Very Good

Ease of Installation

Excellent

Documentation

Fair

Technical Support

Excellent

Modifies Shipping Templates

Yes*

Black-Box DLLs/LIBs

Yes**

* See the Installation section for details on the modifications.

** Source code is not provided for the Print Previewer or the various functions that query printer capabilities, etc. All other features use standard template generated code.

The CPCS Report Tools list for $299 US and can be purchased through the TopSpeed Accessories program (1-800-354-5444). Upgrade pricing is available for registered owners of previous versions. For more information contact Larry Teames at 73150.104@compuserve.com or visit the CPCS web site at http://www.psn.net/~cpcs.

A demo of the CPCS Report Tools can be downloaded from the CPCS web site. It can also be found on the C4 CD (final, not beta) in the \THRDPTY\CPCS directory.

A longtime Clarion user, Tom Hebenstreit is an admitted tool junkie who refuses to go straight and code without his arsenal of third party products. During those rare moments when he isn't either using or writing about Clarion, he indulges his twin passions for blues and beer by performing around Southern California in a variety of totally-obscure-but-famous-any-day-now rock and blues bands.

Article comments

Post a comment

You must be logged on to post comments.

Clarion Roadmap

Try the roadmap (beta)

Search ClarionMag

 

Advanced search

From the archives

Superfiles and NAME

9/14/2009 12:00:00 AM

Having covered Superfiles in the previous episode, Steve Parker tackles the intricacies of how to set arbitrary names for the tables inside Superfiles.