"Crystal Print Engine Error 515 - Error in Formula" error when you print reports in Microsoft Dynamics SL

This article describes the reasons that you may receive the Crystal Print Engine Error 515 error message when you print reports in Microsoft Dynamics SL, and ways to resolve this problem.

Applies to:   Microsoft Dynamics SL
Original KB number:   873549

Symptoms

When you print reports in Microsoft Dynamics SL, you receive the following error message:

Crystal Print Engine Error 515 - Error in Formula

Resolution

Note

Before you follow the instructions in this article, make sure that you have a complete backup copy of the database that you can restore if a problem occurs.

Cause and resolution 1

This problem occurs when the record in the BATCH table contains blank values in one or both of the following fields:

  • BaseCuryID
  • CuryID

To resolve this problem, populate one or both of these fields. To do it, follow these steps:

  1. Use SQL Query Analyzer or SQL Server Management Studio to access the appropriate application database, and then run the following statement to identify the records in the BATCH table that have blank values in the BaseCuryID field or in the CuryID field:

    SELECT status,* from BATCH where BaseCuryID = '' or CuryID = ''
    

    Note

    • In this statement, you must use two pairs of single quotation marks.
    • Don't be concerned about any batches that this query generates if those batches have a status of "V" or of "D."
  2. Use the values in the BatNbr field to determine the batch numbers. Use the value in the Module field to determine the module. Determine whether the currency is the base currency or a foreign currency. The BaseCuryID field identifies the base currency, and the CuryID field identifies either the base currency or a foreign currency.

  3. Use the following statement to update the records in the BATCH table. Make sure that you include the appropriate currency ID for the BaseCuryID field and for the CuryID field:

    UPDATE BATCH SET BaseCuryID = 'BBB', CuryID = 'CCC' where BatNbr = 'XXXXXX' and Module = 'YY'
    

    Note

    In this statement, BBB represents the appropriate base currency ID, CCC represents the appropriate base or foreign currency ID, XXXXXX represents the appropriate batch number, and YY represents the appropriate two-letter module abbreviation.

Cause and resolution 2

This problem occurs when you print Order Management reports or Purchasing reports. To resolve this problem, run the Order Management Workstation Install process to verify that the Order Management workstation installation was completed. To do it, follow these steps:

  1. In the Modules list, select Order Management.
  2. In the Order Management pane, select OM Workstation Install under Processes.
  3. Select Begin.
  4. Repeat this process for all workstations.

Note

If you continue to receive the error message, see the Cause and resolution 6 section.

Cause and resolution 3

This problem occurs when you print invoices from the Invoices (40.680.00) screen and an incorrect version of the Crufladg.dll file is in the OM folder.

Verify that the version of the Crufladg.dll file in the OM folder is correct. To do it, follow these steps:

  1. Use Windows Explorer to locate all occurrences of the Crufladg.dll file. This file should be in the following three locations:

    • Solomon IV\OM
    • Winsys\Register
    • Winnt\System32 or Windows\System32
  2. Examine the dates, sizes, and versions of the Crufladg.dll files. All three Crufladg.dll files must have the same modified date, the same file size, and the same version number.

  3. If the Crufladg.dll file has a date of 5/21/99 or a version number of 4.01, replace this file with a later version of the file.

Cause and resolution 4

This problem occurs when the U2lsol4.dll file is missing, corrupted, or incorrect. To resolve this problem in Microsoft Solomon 5.5 and in earlier versions of Microsoft Solomon, copy the U2lsol4.dll file to the Winnt\Crystal folder or to the Windows\Crystal folder. To do it, follow these steps:

  1. Verify that all reports produce the Error 515 error message.
  2. Rename the existing U2lsol4.dll files in the Winnt\Crystal folder or in the Windows\Crystal folder to U2lsol4.old.
  3. Copy the U2lsol4.dll file from the Solomon\Wrkstn\Windows\Crystal folder to the local Winnt\Crystal folder or to the local Windows\Crystal folder.
  4. Try to print a report again. If the issue persists, copy the U2lsol4.dll file from the Winnt\Crystal folder or from the Windows\Crystal folder to the Winnt\System32 folder or to the \Windows\System32 folder.

Note

This resolution applies only to Microsoft Solomon 5.5 and to earlier versions of Microsoft Solomon.

Cause and resolution 5

This problem occurs when you try to print a record or to print preview a record in the Purchase Orders (04.600.00) report if the CuryID field or the BaseCuryID field is blank in one of the following tables:

  • PURCHORD
  • PURORDDET
  • POREQHDR
  • POREQDET

To resolve this problem Microsoft Solomon 5.5 and earlier, update the table that has the blank CuryID field or the blank BaseCuryID field. To do it, follow these steps:

  1. Use SQL Query Analyzer or SQL Server Management Studio to access the appropriate application database, and then run the following statements to determine whether the CuryID field is blank in one or more of the four tables that are listed earlier in this section:

    SELECT CuryID, BaseCuryID, PONbr, * from PURCHORD where CuryID in ('', '2345') or BaseCuryID in ('', '2345')
    SELECT CuryID, BaseCuryID, PONbr, * from PURORDDET where CuryID in ('', '2345') or BaseCuryID in ('', '2345')
    SELECT CuryID, BaseCuryID, ReqNbr, * from POREQDET where CuryID in ('', '2345') or BaseCuryID in ('', '2345')
    SELECT CuryID, BaseCuryID, ReqNbr, * from POREQHDR where CuryID in ('', '2345') or BaseCuryID in ('', '2345')
    

    Note

    In each of these statements, you must use two pairs of single quotation marks.

  2. If records are returned, use the following update statements to populate the CuryID field:

    UPDATE PURCHORD SET CuryID = 'YYY', BaseCuryID = ('ZZZ') where (CuryID in ('', '2345') or BaseCuryID in ('', '2345')) and PONbr = 'XXXXXX'
    UPDATE PURORDDET SET CuryID = 'YYY', BaseCuryID = ('ZZZ') where (CuryID in ('', '2345') or BaseCuryID in ('', '2345')) and PONbr = 'XXXXXX'
    UPDATE POREQDET SET CuryID = 'YYY', BaseCuryID = ('ZZZ') where (CuryID in ('', '2345') or BaseCuryID in ('', '2345')) and ReqNbr = 'XXXXXX'
    UPDATE POREQHDR SET CuryID = 'YYY', BaseCuryID = ('ZZZ') where (CuryID in ('', '2345') or BaseCuryID in ('', '2345')) and ReqNbr = 'XXXXXX'
    

    Note

    • In each of these statements, you must use two pairs of single quotation marks.
    • In each of these statements, YYY represents the correct foreign currency ID, ZZZ represents the correct base currency ID, and XXXXXX represents the appropriate purchase order number of the record to be updated that you identified in step 1.

To resolve this problem Microsoft Solomon 6.0 and later, update the table that has the blank CuryID field. To do it, follow these steps:

  1. Use SQL Query Analyzer or SQL Server Management Studio to access the appropriate application database, and then run the following statements to determine whether the CuryID field is blank in one or more of the four tables that are listed earlier in this section:

    SELECT CuryID, PONbr, * from PURCHORD where (CuryID in ('', '2345')
    SELECT CuryID, PONbr, * from PURORDDET where (CuryID in ('', '2345')
    SELECT CuryID, ReqNbr, * from POREQDET where (CuryID in ('', '2345')
    SELECT CuryID, ReqNbr, * from POREQHDR where (CuryID in ('', '2345')
    

    Note

    In each of these statements, you must use two pairs of single quotation marks.

  2. If records are returned, use the following update statements to populate the CuryID field:

    UPDATE PURCHORD SET CuryID = 'YYY' where (CuryID in ('', '2345')
    UPDATE PURORDDET SET CuryID = 'YYY' where (CuryID in ('', '2345')
    UPDATE POREQDET SET CuryID = 'YYY' where (CuryID in ('', '2345')
    UPDATE POREQHDR SET CuryID = 'YYY' where (CuryID in ('', '2345')
    

    Note

    In each of these statements, you must use two pairs of single quotation marks.

Cause and resolution 6

This problem occurs when the Crufladg.dll file isn't registered. To resolve this problem, manually register the Crufladg.dll file. To do it, follow these steps:

  1. Use Windows Explorer to locate the Crufladg.dll file on the workstation.
  2. Right-click the file, point to Open With, and then select Other.
  3. Look through the local drive. Which is typically drive C. Select either Regsvr32.exe in the \Winnt\System32 folder or Regsvr.exe in the \Windows\System folder.
  4. Select Open.
  5. Select OK. A message indicates whether the file was successfully registered.

Cause and resolution 7

This problem occurs when you print reports from a specific workstation. To resolve this problem in Microsoft Solomon 5.5 and in earlier versions of Microsoft Solomon, follow these steps:

  1. Use Add or Remove Programs in Control Panel to uninstall the Microsoft Solomon IV Client program.
  2. Rename the Winnt\Crystal folder.
  3. Reinstall the Microsoft Solomon IV Client program.

Note

This resolution applies only to Microsoft Solomon 5.5 and to earlier versions of Microsoft Solomon.

Cause and resolution 8

This problem occurs when the printer name is too long. To resolve this problem, change the default printer name so that it contains fewer than 25 characters.

Cause and resolution 9

This problem occurs when you upgrade from Microsoft Solomon IV 4.21 with Crystal Reports 6.0 to Microsoft Solomon 5.5 with Crystal Reports 8.5. In this case, the error message references the RT totaling function. To resolve this problem, follow these steps:

  1. Use the totaling functions that are included with Crystal Reports 8.5 to revise the formula box.
  2. Follow the directions in article c2002613 in the Crystal Knowledge Base to install the correct DLL files.

Microsoft provides third-party contact information to help you find technical support. This contact information may change without notice. Microsoft doesn't guarantee the accuracy of this third-party contact information.

Cause and resolution 10

This problem occurs when files are missing from the local Crystal folder. To resolve this problem in Microsoft Solomon 5.5 and in earlier versions of Microsoft Solomon, determine the number of files in the local Crystal folder, and then replace the folder if you must. To do it, follow these steps:

  1. Use Windows Explorer or My Computer to locate the local Winnt folder or the local Windows folder.
  2. Right-click the Crystal folder, and then select Properties.
  3. Note the number of files in this folder. For Microsoft Solomon 5.5, if the folder contains fewer than 129 files, rename or delete the Crystal folder.
  4. On the server, locate the Solomon installation folder.
  5. Open the Wrkstn\Windows folder, and then copy the Crystal folder to the local Winnt or Windows folder.

Note

  • This resolution applies only to Microsoft Solomon 5.5 and to earlier versions of Microsoft Solomon.
  • If the error persists, see the Cause and resolution 7 section.

More Information

The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.