The end of Crystal Dashboard Design

Tuesday 3 July 2018 @ 11:26 am

I just read an interesting blog post from Andrew Baines entitled “Farewell Xcelsius/BOB Dashboards/Crystal Dashboards“.

Apparently, SAP will stop supporting their dashboard tool some time next year, and they have dropped it from the price list. I also just checked the SAP “30-day trial” page and the listing for “SAP Crystal Dashboard Design” is no longer listed there.

I can’t say that I will miss this tool, since it never really fit with what I did. You can read my approach to dashboards here. But if you are using this software it is time to start looking for something else.





Set Datasource Location from tables to an SP

Saturday 30 June 2018 @ 11:14 pm

A customer had a report that read a handful of tables. He decided to write a stored procedure to return the same data as the tables. He planned to use “Set Datasource Location” to point the tables to the stored procedure, but soon realized that it wouldn’t work.

He could set the location of any ONE of the tables to the SP, but not all of them. If he tried to set the location of the second table to the same SP, Crystal would create a second instance of the SP and link it to the first, matching the links used in the original tables. I have never found a way to to set the location of several tables to a single query/view/SP.

So what is the best solution if you have to do this? Identify the table that provides the most fields to the report, and set the location of that table to the SP. That will map the largest group of fields automatically. The other tables will have to be removed and their fields added manually.

Another thing to keep in mind is that it is usually easier to change formulas than it is to delete and replace database fields on the report. So if one table is used primarily in formulas while another table provides raw fields for display, you might want to set the location of the table that provides the raw fields. Jamie Wiseman wrote an article years ago about creating reports that could be easily set to a new datasource. His method was to create a simple formula field for every database field used, then use those formulas for everything else in the report.  I sometimes do this, and I call these “feeder” formulas.  With Jamie’s method you can delete and add tables and then simply update the feeder formulas as needed.





Review Crystal Reports and earn a $25 Amazon gift card

Friday 22 June 2018 @ 5:38 pm

The SAP Vancouver office celebrated the 25th anniversary of Crystal Reports last fall. They even sent me a commemorative pin as part of the celebration.

Now, in keeping with the ’25’ theme, they have asked TrustRadius to collect independent user reviews of Crystal Reports and Crystal Server. If you complete the process you get a $25 Amazon Gift Certificate.

Note that these reviews are structured and very detailed. I wrote a review of Crystal Reports, both to support the product and so that I could write about the process for my readers. It took me about an hour to complete. There are 9 different sections to the review and many of the sections ‘recommend’ at least 50 words. The sections are:

  • Use Case
  • Pros
  • Cons
  • Rating
  • Alternatives
  • Features
  • Data Sources
  • Data Sharing
  • Context

You can read my review here.

A few other notes.
1) TrustRadius is independent of SAP and SAP doesn’t see the reviews before they are published. However TrustRadius has to approve and publish your review before you get your gift card. It can take up to a week after your review is published to get the card.
2) Before you can start the process, you have to sign into TrustRadius using your LinkedIn account.

If you decide to write a review you can use this link. If you encounter any problems, let me know.





Crystal Reports new features by version

Friday 15 June 2018 @ 11:25 am

My customers use a wide variety of Crystal Reports versions.  Just this past week I fixed a report for a customer using CRv8.5, which was released somewhere around 2001. There have been 8 newer releases since then and most have included new design features. Sometimes I forget which versions are needed to do certain things. Often I have tried to update a report for a customer, only to realize that my Plan A won’t work in their version. Whenever I need to check when a specific feature was introduced, I refer to the front page of my site which has links to my reviews for each new Crystal release. These articles include the list of new features for each version. But, this still means scrolling through through several pages to find each feature.

To make the process simpler I have created a grid that lists all of the new features added in the past 15 years, roughly 50. For each of the features I show when it was introduced, and which versions that support that feature.  Not only will this help me identify which features I can use for specific customers, it will also help me answer questions about the value of upgrading. I can point a customer to the grid and they can quickly see all the features that have been added since their version.  They can then decide if those features are worth the cost of the upgrade.

You can check out the grid on my site.  The features listed in blue are the ones I use the most.





Another free method for comparing rpt files

Friday 8 June 2018 @ 4:56 pm

One of my readers, Jiri Bus, needed a thesis project.  He decided to write an application that performed a detailed comparison between two reports and showed all the differences. He calls it rpt_diff and released it under the MIT open source license. I recently wrote up a simple method that relies on the features included in the “Report Definition” export.  Jiri’s project takes a deeper dive into the object model and includes many more features for comparison.
His application is free but it takes a few extra steps to deploy and use. Here is what you need to do to use rpt_diff:

1) Download and install the 32-bit Crystal Reports runtime for .net.
2) Download and install KDiff or another equivalent program for comparing text files.
3) Create a new folder for the rpt_diff application file and associated files.
4) Download the (already compiled) rpt_diff.exe and place it in the new folder (no need to install it).
5) Place the two reports you want to compare into that same new folder.
6) Right click on my sample batch file and download it in the same new folder:

sample batch file

(Note – if you just click on the file link the file will open in the browser rather than downloading.)

7) Edit the batch file so that it has the correct path to KDiff and the correct names of the two rpt files to compare.
8) Save the modified batch file, close the file and then run it by double-clicking on it.

You should see two XML files open in KDiff, with all their differences color coded.

Any time you want to compare another pair of files, just copy them to this folder and put their names into the batch file.

And thanks again to Jiri Bus for sharing his work.





Server-based scheduler comparison (2018)

Monday 28 May 2018 @ 10:41 pm

I have just updated my comparison of server-based scheduling tools for 2018. These tools are similar to the desktop-based scheduling tools I write about every March, but these are designed to be run on server. This allows multiple people to schedule reports for automated delivery by Email, FTP or network folder.

There are 11 products on the list this year (one dropped and one new) and a few few feature updates and price changes. The blog page provides a brief overview of each product. It also has a link to the feature matrix that compares roughly 70 features of these tools. There is even a feature glossary that defines all the terms. So if you need a short course in automating Crystal Reports delivery, this is a pretty good place to start.





Adding static and dynamic images to Crystal Reports.

Wednesday 23 May 2018 @ 11:30 pm

There are two ways to put images into reports.

1) A static image stored in the RPT.
2) A dynamic image read from a path [formula] at runtime.

If the report always uses the same image, like a company logo, then option 1 is the simplest. Use the menu options
“Insert > Picture ” and select any of the supported file types. Once the file is placed on the report, the image can be resized as needed.

If the image periodically changes then you need option 2. For example, if different users want to be able to assign a different logo image file to the report without changing the report.  Or if the image is based on a a file name name stored in the database like the image of a specific part.  This method was added over 10 years ago with the release of CR XI (v11) so it will be available in most modern versions of CR.

To use option 2 you start by insert any image as a placeholder in the appropriate spot. Then you use the menu options:
“Format > Graphic > [picture tab]” and click the formula button to the right of the word “Graphic”.  Here you can enter a file path or a URL to any of the Crystal supported image file types. The best part is that this path/URL can be a calculated string. This is how you can change the path or the file name based on values coming from the database.  For instance, if the you have a folder called “PartsPix” and each part has a JPG image named as the part number, your ‘graphic’ formula could be something like this:

“z:\partspix\” & {Parts.Partno} & “.jpg”

The path will be different on each record, and so the image shown will change accordingly. Note if the image files are different sizes then the images shown will also vary in size.





Listing all formula changes with Notepad++

Monday 14 May 2018 @ 12:09 pm

I have written several articles about the usefulness of Notepad++. I often use it to write or test complex formulas and SQL commands. I have also used it to see the affect of a logic change, by comparing the output (text) of the report before and after a change. I have even created a custom language interpreter so that Crystal formulas written in Notepad++ look better than they do in Crystal’s formula editor.

This week I found a new use that I should have seen before. A customer sent me two different versions of a complex report and we weren’t sure which one to use. We needed to see the differences between the formulas in the two reports. So I exported both reports to the format “Report Definition”.  This export creates a text file that lists all of the major settings of the report, lists the objects in each section, and includes the text of all the formula fields that are actively being used by the report.

Once I had the two Report Definitions, I opened them up in Notepad++ and used the “Compare” add-in. This took me straight to the handful of formula differences. It was easy to show these differences to the customer to see which version he wanted to use.

If you want to try out the Notepad++ with the Compare plug-in you will need to start by downloading Notepad++ version 7.4.2.  This is the latest version that includes the plug-in manager.  Once you have Notepadd++ installed you can use the plug-in manager to install the Compare plug-in.  After that you can update to the latest version of Notepad++.





Column headings for cross-tabs

Tuesday 8 May 2018 @ 9:23 pm

I recently shared a method for adding a Title to a Cross-tab that spill onto horizontal pages. One of my readers shared a similar method that he had written up for his team.  This method allows you to add column headings over the row grouping fields.  He even includes a description of how to have these headings repeat on horizontal pages.   The approach combines two separate section settings.

See this PDF for a detailed explanation of the steps.

And, thanks to Ralph Wahlert of Catholic Health Services in Long Island for sharing his approach.





Using a “display string” turns off HTML interpretation

Sunday 29 April 2018 @ 11:59 pm

A customer was deploying my calendar report for multi-day events when he noticed an issue in CR that I had never noticed. This particular calendar report takes advantage of several less commonly used features of CR.  It appears that two of those don’t play nicely together:
1) The Display String property (overrides the current value and displays something else)
2) HTML Interpretation (applies any HTML formatting codes found within the field value).

The customer told me that if he tried to change any of the formatting properties he would lose the HTML interpretation. Also, the entire paragraph tab would disappear so that he could not re-activate HTML interpretation. So I did some testing and found the following related to these two properties:

1) Whenever you format an object and add or change the display string formula (“common” tab) Crystal will reset the HTML interpretation property back to ‘none’. It will also no longer show you the “paragraph” tab which prevents you from re-activating HTML interpretation.

2) You can comment out the display string and save it. This brings back the paragraph tab. You can then re-activate HTML interpretation. Finally, you can go back to the Display String formula and take out the comment marks. This will give you both features at the same time.

3) But the next time you then change ANY formatting property (other than adding or deleting the comment marks in the display string) Crystal will again reset the HTML interpretation back to ‘none’. You have to make your formatting changes, save them, then go back in and comment out the display string so you can re-activate the HTML interpretation.

4) If you comment out the display string formula and save it, but then switch to the paragraph tab without clicking the OK to exit the “Format Field” dialogue, the paragraph tab is not only reset but it won’t even display default values. Where you normally see zeros the boxes will be blank. And the radio buttons for “Reading Order” will both be blank. However if you click OK, and then use Format > Field to get back to the paragraph tab, it will show all of the default values.

5) If you select multiple fields, and use “format object” to format them all together, the behaviors described above do not appear.  You can still see the ‘paragraph’ tab even after changing the display string. The HTML interpretation doesn’t get reset.  Thanks to Guillaume Boucher of W3COM.fr for pointing this out to me.  This explains why I was able to develop all 3 calendar report variations and never notice this issue.

Very strange.





«« Previous Posts
Jeff-Net
Recrystallize Pro

The Expert Series