Archive for the 'Tips' Category



Finding all uses of a variable

Wednesday 10 March 2010 @ 5:01 pm

Starting with v11.5 Crystal has made it easy to find all uses of a field within the formulas of a report.  Just right click on the field  (database, formula, parameter, etc) and select “Find in formulas”.   Even for those of you using older versions of Crystal there is a workaround in my Expert Techniques vol. 1.

But finding where a variable is used is a bit trickier.  Unlike fields, there is (currently) no central list of all the variables used in a report.  But I just noticed a feature that must have been in the formula editor for at least 2 years.  Open a formula and click on Continue Reading »
Finding all uses of a variable




Superscript numbers in a Crystal Report

Monday 22 February 2010 @ 2:50 pm

One of my clients just sent me a formula that turns the numbers from 1 to 20 into superscript characters.    You could do the same thing with subscript characters if you wanted to, but you would need to look up all the Unicode values in a chart like this one.   Note that you must display this formula using a Unicode font (they usually say “Unicode” in the font name) or the characters will space and size inconsistently.

select  totext({Number.Field},0)
case "1" : ChrW (185)
case "2" : Chrw (178)
case "3" : Chrw (179)
case "4" : ChrW (8308)
case "5" : ChrW (8309)
case "6" : ChrW (8310)
case "7" : ChrW (8311)
case "8" : ChrW (8312)
case "9" : ChrW (8313)
case "10" : ChrW (185) + Chrw (8304)
case "11" : ChrW (185) + ChrW (185)
case "12" : Chrw (185) + Chrw (178)
case "13" : Chrw (185) + Chrw (179)
case "14" : ChrW (185) + ChrW (8308)
case "15" : ChrW (185) + ChrW (8309)
case "16" : ChrW (185) + ChrW (8310)
case "17" : ChrW (185) + ChrW (8311)
case "18" : ChrW (185) + ChrW (8312)
case "19" : ChrW (185) + ChrW (8313)
case "20" : ChrW (185) + Chrw (8304)

And thanks to Melody Mulligan of Crystal Clear Solutions for the tip.




Screen Problems in the Standard Report Wizard

Tuesday 16 February 2010 @ 9:59 pm

I like using the “report wizard”  to create the first draft of a new report.  It was even better back in v8.5 when you had the report expert and could loop through the steps several times.  But even now I find the wizard helpful.  Not only can you quickly assemble a simple report, but it automatically gives you a nice evenly spaced column layout.  And, it does a few things for you that you are very likely to do anyway – like adding a page number or today’s date.

Yesterday I was working with a customer in version 11 (XI) and we noticed a strange behavior in the wizard. We went one step further than we wanted to and hit the ‘back’ button in the wizard to go back a step.  We ended up losing part of the wizard window on the right and couldn’t get it back.  I ended up clicking “Finish” just so we could get out and we did the last steps through the normal menu.

I found out that this is a known issue in some builds of XI.  There is an article on the SAP/BO support site but fixing it involves a registry edit. If you have this issue and want to resolve it you can go to the NOTES section of the BO support site and look for article # 1246536 entitled:

“Standard Crystal Report creation wizard screen shrinks from right side when the ‘Back’ button is clicked”.




Reporting on the Database Schema

Tuesday 9 February 2010 @ 11:19 pm

Most databases are designed with special tables or views that are designed to store the structure of the database. Each database platform is different but the list below should be a start. To get a list of tables you can use a command object that says the following:

Oracle: SELECT table_name FROM all_tables

SQL Server: select name from sys.objects where type = ‘u’

MySQL: write a SQL command that says simply: SHOW TABLES
or  SELECT * FROM INFORMATION_SCHEMA.TABLES

For more on MySQL System tables you can use this link

MS Access : SELECT * FROM MSysObjects where type = 1
1) You have to set the Acess database options to “show System tables”
2) Then in CR options check off “show system tables”.

For more on MS Access system tables you can check out this link

Older databases like early versions of Dbase, FoxPro or Btrieve store each table as a separate file in the Windows file system.  Since you can use CR to read the files in a Windows folder you can generate a list of tables using the files.  You can also report on the file size and the last time it was changed, which are not as easy in the others.

And thanks to William Chadbourne of OIT-DEP in Maine for correcting my original Oracle command.




Vanishing data in Btrieve

Thursday 28 January 2010 @ 9:38 pm

Last week a customer called me after they did an upgrade of PeachTree Accounting.  It seems that the records in the report that used to sort were now appearing in random order.  As soon as I added the sort back in and refreshed the report, all the records disappeared.  Fortunately I had seen this before because I work quite a bit with PeachTree and PeachTree uses Btrieve as a database engine.

This week I had another Btrieve customer (not PeachTree) who wanted to add a parameter to select a part number.  We added the rule in the selection formula and, again, all the records disappeared.  Same problem same solution.

Apparently when Crystal sends a query to a Btrieve engine, Btrieve tries to ‘help out’ by Continue Reading »
Vanishing data in Btrieve




“ALT” key temporarily releases guidelines and grid

Saturday 2 January 2010 @ 8:27 am

I have come to depend on Crystal’s Guidelines for aligning objects. I find them much more useful then the “Snap to Grid” feature, although I do use both from time to time. But there are often cases where the object needs to be somewhere in between. It can be frustrating to try and position an object while it jumps up or down because it is trying to snap to a grid point or a guideline.

If you run into this problem there is a handy solution. Hold down the “ALT” key while you are moving or sizing the object. The “ALT” key temporarily turns off both snap to grid and guidelines, without making any permanent changes to your settings.




Using unlinked tables (cross joins)

Monday 28 December 2009 @ 11:56 am

Normally if there is an unlinked table in one of my reports it is there by mistake.  However, I have recently been reminded of some of the neat things you can do with unlinked tables, as long as you are careful.  The official name for having unlinked tables is a ‘cross join’.  The data that is returned from a cross join is known as a Cartesian product, which means every possible combination of records between the two tables. That is why you have to be careful.

So say you have a customer table with 100 customers in it and you use that table to create a report listing just the customer name.  Without adding any filters you would get all 100 records in the report.  But then you add a second table that doesn’t link directly to the first, something like the master list of products.  If this table has 25 products in it then Continue Reading »
Using unlinked tables (cross joins)




Using negative subscripts

Tuesday 8 December 2009 @ 5:19 pm

If you need to pull a single character out of a character string, or a single item out of an array, you can use a subscript to identify the position you want like this:

{Customer.Customer Name} [3]

This example starts counting from the left to identify the third character or element.  Over the years I have had people tell me you could use a negative number Continue Reading »
Using negative subscripts




Buying older versions of Crystal Reports

Friday 4 December 2009 @ 7:39 am

If you need to buy an older version of Crystal Reports, all the way back to v8.5, you can now download them directly from BO (for $595).  This link includes all versions from 8.5 forward.

If you want to save a few bucks you can check on Ebay, where I regularly find older versions for sale.  Just make sure you know what you are purchasing.  In 2002 I wrote an article about what to look for when buying CR on Ebay.  That article still applies, although some of the product codes listed might be different in newer versions.

Or check with me.  I sometimes know of extra copies that are available.




Using Crystal Reports in VB.NET Express Edition

Friday 13 November 2009 @ 11:19 pm

I recently wrote a blog post to remind developers that you can’t integrate CR into a VB.NET application if you are using the .NET Express Edition.   So I was surprised when a developer wrote to me that he was using the Express Edition to run my sample apps.  These are simple apps that I created for my guide to Crystal Reports in VB.NET.  He said VB wouldn’t let him add a the CrystalReportViewer control onto a form, but if the control was already there he could use it.  He then used the free runtime files Continue Reading »
Using Crystal Reports in VB.NET Express Edition




«« Previous Posts