Archive for September, 2022
You use Crystal Reports to create, change and run reports. But what if you have users who just need to refresh/view/print/export? Do they need copies of Crystal Reports? Do you need to configure an expensive web server?
The most cost-effective method for letting a user run reports is to install a third-party client-based viewer. These are offered by ten different vendors. Don’t get sidetracked by the official SAP “viewer” because that tool won’t refresh reports. Every viewer in my list allows you to refresh reports.
Every September I update the features of these viewers. The comparison page provides a brief introduction to each product including what sets it apart. There is also a detailed feature matrix (xls) that shows some of the specifics for comparison, like prices. I have even included a glossary of features in case you aren’t familiar with the terminology. There are a couple of new features added to this year’s matrix which are marked in blue.
There are 10 active products in this year’s review and 4 “ghost” products that are mentioned as warnings. A ghost product has a web site but it hasn’t changed in years and no one responds to requests for information.
The active vendors are:
Crystal Corral by Groff Automation
rptView by Pursuit Technology
CR Dispatch by APB Reports
cView by Chelsea Technologies
ViewerFX by Origin Software
CrystalKiwi Viewer by CrystalKiwi
Logicity Pro by SaberLogic
Report Runner Viewer by Known Keep
RTag Report Viewer by RTag
DataLink Viewer by Millet SW
If you have feedback to provide on any of these products, I would love to know what you think.
This week I had to do something new in SQL. I needed to take a list of multiple route records for each driver and append the routes into single string for that driver. This is relatively simple in a Crystal report, but not so simple in a SQL Query. After I realized how complex this would be in a normal SQL query I searched to see if there was a simpler way. What I found was that several databases have a function specifically designed for this task.
In SQL Server and Postgre SQL it is called String_Agg().
In Oracle and DB2 it is called ListAgg().
In MySQL it is called Group_Concat().
Even though SQL is considered a “standard” language, some function names and syntax will vary from one database to another. That is why I created a “cheat sheet” a few years ago that lists the most common SQL functions (with their correct syntax) for the 8 SQL flavors I encounter the most:
-
-
- SQL Server
- MySQL
- Oracle
- MS Access
- Pervasive
- Progress
- PostgeSQL
- DB2
-
Today I added these “aggregate” functions to the cheat sheet along with a few other updates. The cheat sheet is now also available on the library page of my web site.