I have an application that is still running Crystal 8.5 Reports.
I periodically get the following error:
Error: 544 error in file unknown.rpt.
Access to report file denied. Another program may be using it.
Open print job <PEOpenPrintJob>.
There does not seem to be any consistency to when it happens.
The reports reside on a server and the runtime application uses a.rpt on a shared directory.
I can identify the last user to successfully print the report, have them logout of the application and the error goes away for a while. Different users can continue to print using the same .rpt. Then the problem comes back a little while later.
It only appears to happen to one of the reports
If I reboot the server the problem goes away for a couple of days. Then it comes back again.
I have verified and reverified the report and all seems to be OK.
Any suggestions are appreciated.
Moved to Legacy Developer forum
On your open method try adding the AsTempCopy option. this way the report uses a copy of the original and it doesn't get locked by the OS. You'll have to download any patch, it was about the same time Microsoft changes the way files opened so CR added a new member to use the temp copy.
To verify try opening any file more than 20 times and it will be locked by the OS.
Also a word of warning. As of CR 9 crpe32.dll is no longer supported nor is anyone licensed to use it as a report engine. Your best option is to upgrade to CR 2008 and move to Visual Studio .NET 2008.
To find all patches click on businessObjects tab above and then Downloads and CR link in the middle of the page and filter on your version.
I'm sure that is the problem.
I am using Delphi 7 and creating the Crpe Object during runtime by using the procedure to follow.
Can you tell me how I would set the AsTempCopy option during runtime?
Also, my entire application is using crpe32.dll to run reports. Are you saying I can no longer do this?
We have purchased and tested crystal XI with my application I have just put off implementation in favor of other priority projects. Are there many enhancements to Crystal 2008 or can I save on the upgrade right now and implement XI?
procedure TfrmPOPrint.btnPrintClick(Sender: TObject);
var x: integer;
cr := TCrpe.Create(nil);
cr.WindowButtonBar.PrintSetupBtn := True;
cr.OnWindowClose := crWindowClose;
if (Sender as TButton).Tag = 0 then
cr.Output := toPrinter
cr.Output := toWindow;
cr.ReportName := '';
cr.ReportName := fcrReportPath + fcrReportName;
while x < cr.ParamFields.Count do
if (UpperCase((cr.ParamFields[x].Name)) = 'USERNAME')then
cr.ParamFields[x].CurrentValue := Username;
Correct, no one is licensed to use crpe32 as of CR 9. Delphi has a new .NET plug in you can use also, I believe it's the next version and it integrates into VS .NET quite nicely. A Rep here is using it and producing samples which should be published soon.
Thank you again
I will make the conversion to Crystal XI a priority.
However, it will take time to change my development environment and setup a rollout strategy.
Is there anyway you can suggest to solve my immediate problem?
Also, do I assume correctly that once I implement the Crystal XI vcl this problem will go away?