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


Summary


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. This article also describes ways to resolve this problem.

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 this, 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 = ''
    Notes
    • In this statement, you must use two pairs of single quotation marks.
    • Do not 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, XXXXXXrepresents the appropriate batch number, and YYrepresents 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 this, follow these steps:
  1. In the Modules list, click Order Management.
  2. In the Order Management pane, click
    OM Workstation Install under
    Processes.
  3. Click 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 this, 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 this, 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 this, 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'
    Notes
    • 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 this, 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')
    Notes
    • 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 is not registered. To resolve this problem, manually register the Crufladg.dll file. To do this, 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 click Other.
  3. Look through the local drive. This is typically drive C. Click either Regsvr32.exe in the \Winnt\System32 folder or
    Regsvr.exe in the \Windows\System folder.
  4. Click Open.
  5. Click 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. To do this, visit the following Business Objects Web site:Note Although this Crystal Knowledge Base article refers to Crystal Reports 7.0, the steps can also be used for Crystal Reports 8.5.
Microsoft provides third-party contact information to help you find technical support. This contact information may change without notice. Microsoft does not 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 this, 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 click
    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.
Notes
  • 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.