Using Macola Progression Standard Integrated Crystal Reports in WiSys Agility

When creating a packing list, receiver, or any other report not in WiSys default documents, the temptation is to use a standard ICR Macola Progression report. Although these reports are convenient and lessen development time, some very unique problems can occur when using these reports in WiSys Agility Explorer’s Document management. Without some modification, the reports may not run at all.

Data Connection

The first thing that must be changed in a Macola Progression standard report is the data connection. You must use an RDO connection using wisysuser and the wisysuser password. Directions on how to do this can be found here.

Macola ERS Functions

The next thing that all standard Macola reports have is a formula called DefaultFileName. This has a default .ini file name in it. The report then also has several other formulas used as literals on their report. The literal formulas are designed to look in the ini file for a marker, and then return the text from that marker. Macola’s ability to pass data to this ini file, and then use it in the report is helpful in Macola, but not in WiSys, or any other external software. It is recommended to remove all reference to DefaultFileName in all formulas.

The example below is the NumberofDecimals formula (also in all Macola reports):

beforereadingrecords;
(If MACOLADefaultFileExists ({@DefaultFileName})
Then
If MACOLADefaultFileValue ({@DefaultFileName},”Literals” ,”NumberOfDecimals”) > “”
Then MACOLADefaultFileValue ({@DefaultFileName},”Literals” ,”NumberOfDecimals”)
Else “4”
Else “4”)

To correct this formula, remove all text so that the formula is empty (all the above text) and place “4” (or the number of decimals you wish your report to use) in the formula. This particular literal is checking to see if the default file in DefaultFileName exists. If it does then the number of decimals literal in the ini file will be used, otherwise it will report as 4. The above formula could easily be “4”, or any other number of decimals you would like your report to use.

It is recommended to find any other formulas that use this same MacolaDefaultFile function, and modify it in the same way. The formula must remain because it is being used throughout the report, but the literal inside the formula cannot use the MacolaDefaultFile function.

Another example below is the TitleLit formula for the Macola Pick Ticket.

Before ChangeBeforeReadingRecords;
If MACOLADefaultFileValue ({@DefaultFileName},”Literals” ,”TitleLit”) > “” then MACOLADefaultFileValue
({@DefaultFileName},”Literals” ,”TitleLit”)
Else
“PICK TICKET”;

To correct this formula, remove all text so that the formula is empty (all above text) and place “PICK TICKET” in the formula. This field is the literal at the top of the page.

All formulas using this Macola function can be corrected by removing all text and replacing the formula with just the text you want to use for that literal.

Barcode Fonts

Barcoding is often requested on new reports. Using the IdAutomation Fonts functions is another quick way to get a barcode. It is however recommended to use the Basic Syntax formula listed here.

Intent

The intent of all the recommendations made here is to create a report that is not at all dependent on external dll’s to render. By removing all MacolaDefaultFile and IDAutomation functions from all formulas makes the report accountable for the majority of the processing. There are other functions that Macola uses that can also pose issues such as:

TermString – This function is for Macola ES language conversion

MacolaRemoveZeros – Removes leading zeros from orders etc.(typically Progression)

MacolaNumberToDate – Changes a Macola number date to a date. Typically Progression and a number of workarounds available.

To view other Macola functions, look under the Functions section in the Crystal Formula Workshop/Additional Functions/Visual Basic UFLs(u2lcomm.dll)

It is not completely necessary to remove all of these functions and some are helpful, but the ones listed above have been known to pose an issue between crystal runtimes.

If all connections are placed properly, and all formulas are free of external functions, your success in implementing the report should be seamless.

Comments