How to Move a Macola Crystal Report to Print in WiSys Agility

Thinking about moving a Macola Crystal Report to print in WiSys Agility? We recommend starting with a sample WiSys Crystal report and modifying.

If that is not an option, here are the guidelines to follow to make your Macola Crystal report work within WiSys:

1. RDO Connection 

An RDO connection using the instruction in this link must be used. This is not a trusted connection. It is a specific call to the SQL Db using the security suggested in this link. If a report is not connected this way it may or may not run from Agility.

2. No External Functions

No external functions should be used in formulas in the report. An example of an external function would be macolanumbertodate() or IDAutomation_Code128(). These functions will throw you for a loop every time. They may print on one workstation but not on another. They must be removed for seamless use.

Barcodes should be formatted using a Code 128 barcode font using the Basic Syntax formula found in this link.

3. No External References

All Macola references, literals, and formulas must be changed to not use external reference.

Changing an ODBC connection on these reports leaves a fully qualified database reference in the SQL query. For Example: Data_001.dbo. This then requires re-pointing each table in the connection to a new database when moving the report from one database to another. Using our connection setup on a new report allows seamless movement to any database.

To determine if a report has the external functions listed above, you can export the report using the Report Definition Format. This format creates a text file that has all the sections and fields in the report, including sub reports. You can search this text file to find the section and field where the formula is used in the report.

No conditional formatting can be used in record selection formulas. A selection formula should look something like this:

{wsPkg.Shipment_no} = {?Shipment}

It should not look like this:

{wsPkg.Shipment_no} = Val({?Shipment}) or trim({wsPkg.Shipment_no}) = trim({?Shipment})

Any condition formulas will not render in SQL through the Crystal runtime and SQL will run the query without any conditions. So the conditional query above would select all data from wsPkg and let the report filter data. This will lead to extreme overhead to SQL and the time it takes to run the report and very well could lead to locking of records.

4. Check Page Setup Options

There is an option in Page Setup in Crystal for “No Printer optimize for screen output”. Do not check this box.

5. Printer Driver and Report Design

Try to design the report using the closest print driver you can find to the printer it will typically be printed to. This is important because any data or fields that extend into the margins can cause the report to print improperly. It is also important to understand the orientation of the report for the report to print properly. When extra pages are being printed or when the report is printing incorrectly, it is almost always the result of the print driver and report design.