phone: (540)338-0194
email: ken@kenhamady.com


Individual Instruction by Ken Hamady

The Crystal Reports Underground News - October 2001

an independent source for Crystal Reports Information
by Ken Hamady, MS

This month's contents:
** New Bugs in Crystal Reports v8.5
 Inability to link Goldmine (Xbase) Tables
 Linking subreports using existing parameters
** "Free" Crystal Decisions Tech Support for 60 days
** Save $50 on the CrystalDesk Scheduler Program
** Hot tips for the month of October 
            Default settings you should change
            Mystery DLL Names in Crystal
            Dates in QRY files

** Getting expert on-site training or consulting
** Public Crystal Reports class schedule
** Getting trained or getting help by phone.
** My Quick Reference to Crystal Reports in Visual Basic

New Bugs in Crystal v8.5:

I have been running v8.5 through it's paces and have come up with 2 new bugs, both of which have been confirmed by the team at Seagate.

1) Error Reading Goldmine Tables.
The Xbase DLL (P2Bxbse.dll) is incompatible with some Xbase formats, specifically those used by Goldmine 5.0.  The bug appears whenever you try to link tables in a one-to-many relationship, going from "one" to "many".  This worked fine in V8, but doesn't with V8.5. You get a message that says:

 Xbase Error: Bad User Specified Key Expression

The workaround is to use the old V8 dll file.  First rename the V8.5 dll and then put the V8 dll in the same directory.  If you do an Windows Explorer search for this file name you may find both versions already on your PC in different directories.  I did.  Crystal Tech support also suggested using a HotFix for their Export Dlls, saying that this 'might' fix the problem.  I didn't bother with the Hotfix once I got the V8 dll to work.  If you want the HotFix and the latest export dlls, contact Crystal Tech Support.

2) Linked Subreports.
If you have used linked subreports, you know that you can either have CR add the parameter to the subreport, or you can create the parameter in the subreport first and then select it from the container at the time you make the link.  I prefer the second option, which allows you to name the parameter as you wish.  However in V8.5 the ability to select an existing parameter is hidden by a bug.  When you drop down the list of parameters it will only show you the new, automatically created, parameter.  It appears that you can only select this option.  However, if you look closely below the drop down arrow, you will notice two tiny "smushed" arrows to the right of the drop down.  If you click the lower of these arrows it will scroll down through the list to show you the existing parameters in the subreport.  They made the drop-down window the wrong size, and have plans to correct this in a maintenance release.
 

Free Support from Crystal Decisions:

I mentioned last month that Seagate Support is still available, but very expensive (almost $200 per incident).  Of course you get 60 days of free support when you register your product.  Keep in mind that you can't use the Toll-Free number to get this free support.  When you dial the (604) phone number, remember that this is a Vancouver area code.  That means an international call for all of us in the US.  I tried it yesterday, and spent 1/2 hour on hold before getting a technician.  However, I got good answers when I did get through.

You can also Email them a question through the Crystal Decisions web site.   They have streamlined the process of submitting a question, however these questions are prioritized based on your support plan.  That means that free support Email questions could take a while to get a response.   I submitted 3 questions yesterday and I will tell you next month how long it takes to receive an answer.
 

The CrystalDesk Report Scheduler program:

I don't sell ads, but I have spoken to a number of customers that need to be able to schedule reports.  Last month I mentioned the "Compile" feature within CR.  The Compile feature has a limited ability to schedule reports.  But when using the built in "Compile" feature you can't enter parameters until the reports actually run.  They pop up at the scheduled time.

CrystalDesk is different.  It is a third party scheduler that will allow you to schedule the report WITH its parameters.  I have tried it out and found it easy to use.  You can download the full application for free with a limited time license and try it yourself.  You buy a key to remove the time limit.  The regular price for Crystal Desk is $199, but for the month of October Gary (the developer) has agreed to give my readers 25% off this price.  Download the demo at:

 http://www.crystaldesk.com
 

Hot tips for October:

1) Changes you should make to the default settings in Crystal Reports:

 http://kenhamady.com/otherlinks/settings.shtml

2) Mystery DLL names.
If you have used the Crystal feature "Convert Database Driver..." you will notice a list of DLL files in the pull down list.  However, if you were to try to find these drivers on your PC, you would search for a long time.  The reason is that the list of driver names hasn't been updated.  These are the names of the DLL files used in the original 16bit version of the Crystal.  To get the equivalent 32 bit file names, replace the first 2 letters "PD" with the "P2".   So PDSODBC.dll becomes P2SODBC.dll.  This is a file that you will actually find on your PC.  These old file names also show up in error messages, so it helps to know how to decode them.

3) Dates in QRY files.
The SQL designer is great feature for extracting a portable data set.  It also allows more sophisticated SQL than the report designer.  One weakness is that it converts DateTime values into Strings.  This will still sort correctly in the report, but will not allow you to do any date math in formulas.  The workaround is to use the DTSToDateTime() function to convert this field to a DateTime value which can be formatted as a date.  If you want to convert it to a Date instead of a DateTime you have to use the following two functions together:

 DateTimetoDate ( DTSToDateTime ( {Query.OrderDate} ) )

There is another Crystal function that SHOULD do this in one step, the DTSToDate() function.  Unfortunately, this function does not work.
 

Getting Expert On-Site Training or Consulting:

I have personally taught over 1500 satisfied students in more than 30 states.  On-site training is my specialty, and I charge about half of the "List Price" for Crystal Training.

Do I know my stuff?  Go to Tek-Tips.com and you will find me listed as the all-time top rated Crystal Reports expert out of 30,000 members in the General Crystal Forum. 

Do I teach a good class?   Ask to speak to a recent customer as a reference.  Call for more information at (540) 338-0194.
 

Public Crystal Reports classes:

Click the "Public Classes" Button above for dates.
Call for more information at (540) 338-0194.

Telephone training available:

If you don't want to sit in class, you can get the same training one-on-one over the phone.  You can often cover the same material, for about the same cost as coming to class.  Or you can buy a small block of time to use in emergencies, to solve a particular problem, or have me simply write your reports for you.  All levels of instruction are available when you need it.  Call for more information at (540) 338-0194.

VB Quick Reference Guide:

If you plan on incorporating Crystal Reports into a VB application, you should get my Quick Reference Guide.  It gives an overview of the different integration methods, and gives syntax examples for the most common commands in the 3 most common methods.  It is only $16 and can be downloaded immediately.  Follow the link below for more details:

Copyright 2001 by Ken Hamady
All rights reserved - Republishing this material requires written permission