Symptom
- Error when refreshing some reports.
- Was able to refresh the report before in Crystal Reports.
- After migrating from a very old product version, like Crystal Reports 8.5, to a newer version, the report fails to refresh and displays the error:
"UFL 'u2ltdate.dll' that implements this function is missing in Crystal Reports"
Environment
- SAP Crystal Reports 2011
- SAP Crystal Reports 2013
- SAP Crystal Reports 2016
- SAP Crystal Reports 2020
Reproducing the Issue
- In Crystal Reports, open a report.
- When refreshing the report, it fails with the error:
"UFL 'u2ltdate.dll' that implements this function is missing in Crystal Reports"
Cause
- This error occurs if the report contains a formula that uses the function: NumberToDate
- This function is not part of Crystal Reports standard functions.
- It is an additional function added by a User Function Library (UFL) created by Seagate Software.
- The UFL that implement this additional function, U2ltdate.dll, is not install on the computer, and this is why the report fails to refresh.
Resolution
- To be able to refresh the report successfully, perform one of the following:
- For Crystal Reports 2011, 2013, and 2016, copy the UFL to the SAP BusinessObjects folder:
- On the computer where the report was refreshing successfully, locate the file: u2ltdate.dll,
and copy it to the following directory on the computer where the report is failing to refresh:
C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86
Then close, and re-open Crystal Reports.
- Important Note: Crystal Reports 2020 is a 64bit application. Any User Function Library (UFL) that were created for Crystal Reports 2016 and below are 32bit UFL, and will not work with Crystal Reports 2020, for the UFL to work, you need to contact the provider of the UFL to request it to be updated and compiled in 64bit to work.
OR
- For Crystal Reports 2011, 2013, 2016, and 2020, create a formula, or a Custom Function:
- Modify the formula that uses the function: NumberToDate, and replace the function by code that converts a number to a date.
Since the function NumberToDate converts a Numeric value in the format YYMMDD to a date, then the updated formula will be like:
Local NumberVar myNumericDate := <INSERT YOUR NUMERIC DATE FIELD HERE>;
Local StringVar myTempDate := ToText(myNumericDate,0,"");
If Length(myTempDate) = 6 Then
(
Local NumberVar myYear := ToNumber(myTempDate[1 to 2]);
myYear := If myYear < 50 then myYear + 2000 else myYear + 1900;
Local NumberVar myMonth := ToNumber(myTempDate[3 to 4]);
myMonth := If myMonth in 1 to 12 Then myMonth Else 0;
Local NumberVar myDay := ToNumber(myTempDate[5 to 6]);
myDay := If myDay in 1 to 31 Then myDay Else 0;
Date(MyYear,MyMonth,MyDay)
)
Else Date(0,0,0) - Notes:
- The above formula is only provided as an example, on how to convert a numeric date in the format YYMMDD to a date.
- If the functions is used on many reports, you can create a Custom Function called NumberToDate, store it in the SAP BusinessObjects Repository, and add it to any reports that uses the function to convert a number to date.
For information on how to create a Custom Function, search for "Custom Function" in Crystal Reports Help.
And for information on how to add a Custom Function, see the Crystal Reports User's Guide:
Adding a Custom function to a report
See Also
CR, Seagate Softare UFL
Keywords
UFL 'u2ltdate.dll' that implements this function is missing, u2ltdate.dll,crystal reports. , KBA , BI-RA-CR , Crystal Reports designer or Business View Manager , Problem
Product
SAP Crystal Reports 2011 ; SAP Crystal Reports 2013 ; SAP Crystal Reports 2016 ; SAP Crystal Reports 2020