Add A new ACE in the reporting game


One of the things that annoyed me in the first version of Delphi was Reportsmith. It was even worse than the BDE: 8 additional disks to ship with your product, an external program that communicated via DDE and a nightmare in creating reports. At that time the early versions of Quickreport (still freeware at that time) were a great relief. You got native VCL components, worked in the IDE and had little overhead in your compiled program.

I really appreciated Borland's move to integrate Quickreport into Delphi 2 and even upgraded to the Pro version. I only occasionally experienced problems with Quickreport despite all the evidence to the contrary you can find on the Internet.

However things have changed. Quickreport 3 which was shipped with Delphi 4 appeared to be even less reliable than Delphi 4 itself. And even though Inprise has released a patch for Delphi 4, Qusoft cannot provide more than a prerelease of Quickreport 3 Pro.

As a consequence of this debacle I decided to look at other reporting tools which are VCL based and integrate into the Delphi IDE. One very popular tool for reporting is ACE Reporter. Similar to Quickreport it is VCL based, works in a band-oriented manner and integrates seamlessly into the IDE.

However at this point the similarities end. As soon as you put your first ACE report on your form you will see the five most common bands (ReportHeader, Pageheader, DetailBand, PageFooter, ReportFooter) and a number of buttons, which help you in getting your report set up.

Before you can start to put your data fields on the report you have to connect it to a datasource. This is done through TSctGroupPage, a component that is automatically created when you put the report on your form. You can either access this component through the dropdown list in the objectinspector or by pressing the button with the eyeglass icon.

From there it is easy to populate the report by using the FAST button. This button will open the FAST label utility and display all the available fields in your table or query plus variables for page number, date and time. You can simply drag-and-drop them to the band (individually or several at once) where you want to place them.

One of the features I liked very much was the ability to repeat headers on the next page by simply checking the respective checkbox of the band. This is a great feature if you think of all the hassles and workarounds this requires in Quickreport. You also have one checkbox to toggle visibility of the band and another one that determines whether the band should start on a new page. All this makes it very easy to customize the appearance of your report.

All the standard features like grouping and master-detail-reports are readily available. The BAND button lets you access the band manager. From there it just requires a click with the right mouse button to get the menu which allows you to add subbands or group levels. For groups you specify the variable on which the grouping should be performed in the lower portion of the band manager.

Another great feature is the ReserveSpace property. In grouped or master-detail-reports you may want your group to start on the next page if there is not enough space for at least x number of lines on the current page. ACE makes handling this situation incredibly easy. First you expand the ReserveSpace property of the band that contains the header of your group. In its Bands subproperty you specify the band for which you want the space reserved and in the BandCount the number of lines you want as a minimum on your page. That is it.

ACE also helps you even more in handling your data. The DATA button on the report give you access to the data control center. It shows you all the available variables (the ACE synonym for the fields of your datasource). In addition you can create an expression by right-clicking in the expression area. It will automatically inform you whether you still need to write the event to populate the expression or which event you attached to the expression variable. Overall ACE makes it easy to manage the different parts of your report. The implemented tools are very helpful and you will not get lost in the jungle of properties and unreliable expression builders.

There are a couple more things I found helpful. As you could see in picture 1 there is also a diagnostics button. This button will give you a quick overview about severe or minor problems with your report and makes it easy to track down problems. The overview button gives you a little analysis of settings you used in your report. The RUN button shows you a preview of your report. It has the usual shortcoming that it cannot execute code you have written in the event handlers.

You have the option of using the standard preview provided by ACE or designing your own custom preview. ACE gives you components like the progressmeter which is part of the standard preview and which works very nicely. It is easy to export the preview to a file and print this file after loading it from another application that uses ACE reporter.

Finally (and most important) you get very good, extensive documentation with nice, useful tutorials. It even includes a comparative table of the ACE components and the similar Quickreport components which makes the change from Quickreport to ACE Reporter a fairly easy process.

Overall ACE Reporter adds about 300KB to your application (if you do not use the packages) and is very fast. I tried it with the BDE and the Diamond Access BDE replacement which I recently reviewed and did not detect any problems with either of them.

I did not find any major flaws in ACE, everything seems to work as advertised. Some parts of the documentation have not been updated for Delphi 4, but as the differences between Delphi 3 and 4 are marginal with respect to ACE this is really a minor detail. A little more unusual was that the wheel of my Logitech mouse did not work in the preview window and the overview window.

There are two things I really missed. One is the absence of an end-user report designer. Whether this is a good or a bad thing you have to judge for yourself. It always adds overhead to a program and in most cases users will not need it. Most of the time I prefer to implement a working report (if requested) rather than having users playing around with a report designer. The other item I wish ACE Reporter would include is the possibility of exporting the report to HTML format. As databases are becoming more and more the source of web documents this should be implemented in a future version. In this day and age, HTML export should be a standard feature.

Overall I would recommend ACE Reporter as a real enhancement to Delphi. It gives you a reliable and stable reporting tool which is easy to use and very powerful in maintaining your reports.
GJB
Related Discussions
  • I NEED A E-MAIL ADDRESS TO BORLAND/INPRISE (2001-01-11 04:12:35)
    Cut'nPaste from www.inprise.com Borland is revamping its bug reporting process. As part of this effort we will be reviewing the best ways to...
  • IF ANYBODY TRIED THE LIERO -GAME... (2001-01-24 12:35:14)
    Hi... maybe I'm late but there are already programs that can do it...www.hem1.passagen.se/otterud/wormhole...there are all sorts of programs with...
  • HOW A SCREENBUFFER WORKS (2001-01-23 02:08:08)
    It's very simple to use a screen buffer. Create an Image in memory, draw or copy all your graphics on it and copy the hole canvas to your form....
  • BLOOD ACCOUNT... (2001-01-29 14:31:44)
    Contact the author of that program, maybe he will give you some tips as I do not even know what this game is.
  • INVOKING DELPHI APP FROM WEB PAGE WITH INPUT PARMS (2001-02-02 14:38:30)
    Many thank for persevering. The IE Browser does allow local PC exes to be started - as you probably know - it offers a download or run-as-is...
  • HOW TO GET THE NAME OF THE CURRENTLY FOCUSED/RUNNING APPLICATION ? (2001-02-08 07:10:15)
    delphi offers no native function for the purpose. Of course, this doesn't mean it can't be done; you just need to resort to the Windows API -...
  • HOW TO READ/WRITE/CHANGE/WATHEVER MEMORY VALUES? (2001-03-04 06:37:14)
    1st -> I don't want just write, but also read 2nd -> I already have the text file from where you cut and paste your ""help"".And by the way, that...
  • TRANSPARENT COMPONENTS (2001-05-14 13:55:38)
    Till the end of May 2001 you can register cool components: Greatis Form Skin only for $19.95 instead of regular price $29.95....
  • IS THERE ANY WAY TO CHANGE THE RESOLUTION TO 1024*768. (2001-02-26 02:21:21)
    Have a look at these two articles: http://www.delphi3000.com/articles/article_1602.asp http://www.delphipages.com/tips/thread.cfm?ID=43
  • HOW CAN LOOK FOR A TEXT IN A FILE? (2002-07-31 11:58:38)
    Came up with something a little easier to use. Since you ARE using text files, you can copy the stream to a TStringStream and use the Pos...
Latest News
Submit News Form Past News
Latest Forum Entries