cancel
Showing results for 
Search instead for 
Did you mean: 

BDS 2006 and CR 12.0

Former Member
0 Kudos

We're using Delphi 2006 (Win32) and CR 12.0 (Windows XP).

We downloaded the VCL11 [VCL from BusinessObjects.com (crystalvcl11.zip)|http://ftp1.businessobjects.com/outgoing/products/vcl/crystalvcl11.zip]

and edited the VCL following the instructions in [Updating the VCL.pdf|https://forums.sdn.sap.com/servlet/JiveServlet/download/313-961595-5786667-580/Updating%20the%20CR%20XI%20VCL.pdf].

Doing this we didn' understand the following instructions (TCrpe.GetReportStyle and TCrpe.SetReportStyle):

4. UCrpe32.pas

This is the main unit file of the Crystal Reports VCL.

i. Update the version number check that occurs as the report engine and report document is being loaded. This is located in the TCrpe.LoadEngine, TCrpe.GetReportStyle and TCrpe.SetReportStyle.

ii. Update the About contents by updating the TCRPE_VERSION constant.

What version number in

procedure TCrpe.SetReportStyle(const Value: TCrReportStyle);
var
  wStyle : Word;
  xInt   : integer;
begin
  FReportStyle := Value;
  if IsStrEmpty(FReportName) then Exit;
  if not OpenPrintJob then Exit;

  wStyle := FCrpeEngine.PEGetReportStyle(FPrintJob);
  if wStyle > 10 then
  begin
    case GetErrorMsg(FPrintJob,errNoOption,errEngine,'',
        'SetReportStyle <PEGetReportStyle>') of
      errIgnore : Exit;
      errAbort  : Abort;
      errRaise  : raise ECrpeError.Create(FLastErrorNumber, FLastErrorString);
    end;
  end;

  xInt := wStyle;
  if Ord(FReportStyle) <> xInt then
  begin
    wStyle := Ord(FReportStyle);
    {Send in changes}
    if not FCrpeEngine.PESetReportStyle (FPrintJob, wStyle) then
    begin
      case GetErrorMsg(FPrintJob,errNoOption,errEngine,'',
          'SetReportStyle <PESetReportStyle>') of
        errIgnore : Exit;
        errAbort  : Abort;
        errRaise  : raise ECrpeError.Create(FLastErrorNumber, FLastErrorString);
      end;
    end;
  end;
end;

?

All other updates to the VCL where made.

We installed TCrpe and created a new Delphi project using this component.

Running the application, the follwing error appears:

ECrpeError mit der Meldung 'Error: 100 Error loading library: CRPE*".DLL'

The error occurs in:

function TCrpeEngine.PELoadCrpeDll(const CrpeLocation: string) : Bool;

Eventually missing pvlocale-1-0.dll (CRPE32.DLL was found)?

We also tried to use the viewer (package in crystalvcl11.zip).

Using this component leads to the error:

[Pascal Fehler] CrystalActiveXReportViewerLib12_TLB.pas(2906): E2160 Typ in einem OLE-Automatisierungsaufruf nicht erlaubt

occurred in the line

InterfaceVariant.ObjectPosition := pVal;

:

function TCRVSelectionItem.Set_ObjectPosition(pVal: tagRECT): HResult;
  { Warnung: Die EigenschaftObjectPosition hat einen Setter und eine Getter, deren
    Typen unterscheidlich sind. Delphi kann keine solche Eigenschaft generieren
    und verwendet deshalb eine Variante . }
var
  InterfaceVariant: OleVariant;
begin
  InterfaceVariant := DefaultInterface;
  InterfaceVariant.ObjectPosition := pVal;
  Result := S_OK;
end;

How can get Delphi 2006 (Win32) and CR 12 (CRPE and viewer) working together ?

Thanks for your help.

Rolf

Accepted Solutions (1)

Accepted Solutions (1)

former_member200290
Contributor
0 Kudos

So I have tried doing this on my side and in a simple scenerio I got it to work.

In tcrpe.loadEngine I changed if FVersion.FCrpe.FMajor <> 11 to be < 11

FVersion.FCrpe.FMajor < 11

And in GetCommonFilesPath I had to make sure that the regkey.OpenKey('..'); changed from looking at suite 11 to suite 12.

Then I started to get the same errors as you where it couldn't find the dll's. So basically for every dll it couldn't find I copied it from our directories and pasted them into system32, well actually because I was trying to hurry I copied all the crystal dlls from \program files\business objects\business objects enterprise 12.0\win32_x86 to the the c:\windows\system32.

At this point the crpe was able to run reports. However I was testing with Delphi 7 as I do not have BDS 2006 to test with so my results may be different then yours.

I know that this is not the most elegant however the VCL is depricated but available to be used "at your own risk" and the RDC and active x viewer is no longer available.

Trevor

Answers (8)

Answers (8)

Former Member
0 Kudos

Hi,

Just to update the list of required .dll's, as of CR2008 SP1 I also needed to add:

uf12manager.dll

Regards,

Peter.

former_member200290
Contributor
0 Kudos

Do I understand right? For Delphi native Win32 developers hence it would be better to remain at Crystal Reports XI in order to get feature rich interfaces between Delphi and CR?

If this is true, would it be possible to get XI for free having ordered 2008?

Yes you understand correctly; however I would suggest XI R2. I have previously stated Microsoft stopped stopped supporting COM and WIN32 based development tools (OK technically still possible with unmanaged C++) and and we are following their lead for their Operating Systems.

As for getting a free version of XI R2 for buying CR 2008 I personally would say that is not a problem, unfortunately I am not in sales so I have to direct you to their number:

http://www.businessobjects.com/company/contact_us/

1 866 681 3435 option #2

...it is said that version 2008 substitutes all different "flavors" of XI (so even "developer") i guessed that 2008 can do anything for developers that XI could - and even somewhat more...for Win32 development this seems not to be true - and I guess nowadays many (maybe most) developers are still working in native win32 Very sad to here that BI doesn't care of us anymore.

Again as Microsoft themselves have dropped COM and WIN32 development tools we are following their lead. The reality of the development landscape is that Microsoft Visual Studio and Java developers are by far the majority of the developers out there. If Microsoft chooses to abandon traditional Win32 dev for .NET framework the logical thing to do is follow suite. At one point we had SDKs for Win32 API, COM, Active X, VCL, .NET and our offerings for Windows developers simutaneously. It became impracticle to support, maintain and quite frankly our customers found it confusing to decide what to use.

Trevor

Former Member
0 Kudos

As far as I can say, the VCL is working in Delphi 6, too (loading and showing reports).

Does anybody know, why in UCrpe32.hlp (see VCL zip file) we can read

"This component is for use with ...snip... version 7 of Borland Delphi."?

former_member200290
Contributor
0 Kudos

Because it was written in and tested in Delphi 7, we did not test/QA it in other versions. As note we do have earlier versions of Delphi (back when Borland used to send us their product to test our SDKs with). It could have been that we were targetting Delphi 7 and higher originally and not older versions, though, Frank its developer, might have had a reason for it.

Trevor

Former Member
0 Kudos

"First Concerning the Active-X viewer"

I use craxdrt.dll and crviewer.dll. You mean these file are not of version 12?

If yes this means, new features of version 12 would not be printed out?

BTW, craxdrt.dll ist marked as version 12 (hint in Delphi):

// Typbib: C:\Program Files\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\craxddrt.dll (1)
// LIBID: {36E03FEC-8108-468D-A5EA-CAAD0886289A}
// Hilfe-String: Crystal Reports ActiveX Designer Design and Runtime Library 12.0

"The CRPE VCL cannot be passed to the Active X in any way"

Thanks for this information.

"Now typically unless you use two different database connection ..."

We only will use a connection to one database in most of all cases.

These will be Interbase and later MS SQL Server.

"However this created some issues where a developer would set an SQL query..."

IMO, this is done wrong:

Either set the datasource OR modify the WHERE clause in the SQL statement OR execute the query with new parameters.

So I don't see the neccessarity to hide this property only because it was used in a wrong way.

I worked with CR 8.5 for about 3 years and had never problems with setting the datasource.

"We recommend that you use the Selection Formula ..."

OK, I'll try this out.

Unfortunately data shown in a form has to be reloaded in reports.

Would be nice to use SetDataSource in future versions again.

"As for the errors when calling SetDataSource method ..."

Probably the 1. choice (Craxdrt.dll and crviewer.dll with version 11.5).

Choice 2 rather not. The preview is not very satisfying.

Choice 3 not yet. This will be the case probably in one year or more.

But I can't decide it at the moment (have to discuss it), I'll inform you next week.

Anyway, SetDataSource or somthing like OpenSQL in runtime really should be possible.

Thanks a lot for your helpful informations.

Regards, Rolf

former_member200290
Contributor
0 Kudos

Well if you are using an ADO RecordSet there is no reason to set the SQL query, and more then likely the selection formula because you have probably already filtered your data in the ADO Record Set.

As for crViewer and craxdrt dlls you may have found version 12 of them but they are not licensed for you to use as a developer, nor do you have any licensing to distribute them to other users. 11.5 and lower are A-OK version 12 you cannot use even if they are there. Because you are not supposed to use them we do not even include distributables for them. As a side note you are using craxddrt.dll which is for the embedded designer inside of the Visual Studio .NET IDE.

As for setting SQL Query I know this used to work for you, but even when used properly it ran into more issues for more customers then what it was worth.

So if you want to use version 11.5 I can test using the RDC and ADO in Delphi 7, or find a document/kbase article on it. If you want to use CR 2008 and the VCL I can try, but I cannot guarentee they will work, as the VCL is making all the old legacy non-unicode API calls and crpe32.dll from version 9 up is unicode.

Trevor

Former Member
0 Kudos

"Well if you are using an ADO RecordSet ..."

Exactly, in most of all cases. But we also will need to run a query with new parameters or to modify the WHERE clause.

"As for crViewer and craxdrt dlls you may have found version 12 ..."

OK, but I'm really interested now in who can tell me which dlls I'm allowed to use.

We have CR Developer 2008 and about 200 installations to make.

AFAIK, a msi package is on the CD for runtime installations. Is that correct?

Which files are in this msi file (means which files can I use)?

Are more files needed, when deploying applications developped in Visual Studio?

Using version 11.5 is not excluded but rather a no go (we would like to be up to date).

It would be the easiest way to use the two libraries:

CrystalActiveXReportViewerLib12_TLB.pas
// Typbib: C:\Program Files\Business Objects\Common\4.0\crystalreportviewers12\ActiveXControls\CRViewer.dll (1)
// LIBID: {E9DB983E-3879-4902-8162-947677DC197D}
// Hilfe-String: Crystal ActiveX Report Viewer Library 12.0
CRAXDDRT_TLB.pas
// Typbib: C:\Program Files\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\craxddrt.dll (1)
// LIBID: {36E03FEC-8108-468D-A5EA-CAAD0886289A}
// Hilfe-String: Crystal Reports ActiveX Designer Design and Runtime Library 12.0

Are we not allowed to?

What about when we use Visual Studio?

"As a side note you are using craxddrt.dll ..."

.NET? And is working well in Delphi Win 32? And is in the folder win32_x86?

"So if you want to use version 11.5 .."

Please wait with that, I first have to know, which dlls I am allowed to use.

I would like to use the newest preview (we would like to be up to date).

I would like to use all features of CR 2008 (we would like to be up to date).

I would like to have a simple runtime installation (200 installations to do).

I would like to be able to set the datasource in about 3 different ways (as mentioned above).

I would like to do all this in Delphi win32, using VB win32 would be possible, too.

Is this possible?

As I mentioned, the solution with VB and ADO ist working well (even setting the datasource).

BTW, why is SetDatasource working in VB while in Delphi it's read only?

Regards, Rolf

former_member200290
Contributor
0 Kudos

"I would like to use the newest preview (we would like to be up to date).

I would like to use all features of CR 2008 (we would like to be up to date).

I would like to do all this in Delphi win32, using VB win32 would be possible, too.

Is this possible?"

No it is not possible. We do not support Win32 development with Crystal 2008. We support .NET Framework and Java only.

""As a side note you are using craxddrt.dll ..."

.NET? And is working well in Delphi Win 32? And is in the folder win32_x86?"

This dll is a COM based dll that is used to present a Crystal Reports Designer Interface for Visual Studio.

The MSI reditributable file you are talking about will distribute all the dll's needed for .NET development, coincidentally these will also allow the CRPE32 VCL to work.

As for what you can distribute the MSI takes care of it and will not distribute the COM objects. Development against any of our Crystal Reports COM based objects (craxddrt and crviewer) is not allowed in version 2008. We do not ship help files, developer documentation nor redistributables with them.

Again if you are using .NET or Java you are fine. The Delphi VCL (tcrpe) is available as it makes use of the same back end as .NET however it is not officially supported and may not work in all cases. However if you plan to stay with unmanaged Win 32 development against CR 2008, Delphi and TCRPE is your only solution. VB, VC++, Foxpro, etc developers do not have any path but going to the .NET framework.

Delphi developers lucked out for two reasons with Crystal 2008 and TCRPE:

1 - Because the code to the VCL is completly open and you have it from an old version you could modify it yourself to try and get it to work. We even helped out with that.

2 - It was supposed to be removed in Version 9, however due to mis-documentation and such on our side it was inadvertantly kept alive.

Now don't get me wrong, I personally love Win 32 development, and I love Delphi. I have been using it since version 1, and for the last ~12 years I have been supporting TCRPE. I sat beside the developer who wrote it, and gave input to him as he needed help on it. I will aslo do my best to support it through the forums as best as I can in the state that it is in.

However due to our companies current direction we are getting to a point where version 11.5 is truly the last pure WIN 32 developer version we have, and CR 2008 is Frame Work or Java. This is a paradigm shift that we need to get used to.

Trevor

Former Member
0 Kudos

"No it is not possible. ...."

OK, I tried it with C# .NET, made a class COM visible by my own and used it in Delphi.

This works. Would that be allowed?

"Now don't get me wrong, ..."

We decided to use Delphi in 1996 and I think it was the right decision at that time.

Anyway, the problem is to find the time to migrate about 5 exe and 20 dll to .NET.

We will switch to .NET (Delphi or C#) probably in the next few years.

Regards, Rolf

Former Member
0 Kudos

We have the same problem, we use Delphi, and com32 and we are very happy with. I can't see one good reason to migrate to .NET, as we maily use services and exe's

Why abandon COM, it's working fine... and I don't think than making .NET mandatory will lead people to migrate to .NET, far away I prefer JAVA

former_member200290
Contributor
0 Kudos

OK, I tried it with C# .NET, made a class COM visible by my own and used it in Delphi.

This works. Would that be allowed?

Allowed yes, and it should work. I have seen developers do this before and for most it has worked, others that were doing some more complex stuff had issues. The problem is how supportable it is.

Basically our .NET objects consume a COM object. The COM object in turn loads an in-process RAS service. So now if you are calling this through your COM visible class, tyou have Delphi calling a COM object, which is going through an INTEROP to .NET, which will will go through COM INTEROP which will talk to the RAS service. Pusing any complex objects through two INTEROPS is always inviting trouble.

But like I said for some it worked and others it didn't and for those that didn't when the code was called through C# it worked fine so it was the interop causing the issue.

We decided to use Delphi in 1996 and I think it was the right decision at that time.

I have used at least 12 different development languages/IDEs and my favourite has been Delphi, and I like Win32 API over COM or .NET unfortunately the world is moving in a different direction.

Trevor

Former Member
0 Kudos

Finally we decided to use the VCL with CR 2008 (.NET has to wait some few years).

I also found that the report data can be replaced by (see example CrpeDSTest.dpr in the VCL zip file)

Crpe1.Tables[0].DataPointer := CrpeDS1.DataPointer;

Thanks for helping.

Regards, Rolf

Former Member
0 Kudos

Hello!

Do I understand right? For Delphi native Win32 developers hence it would be better to remain at Crystal Reports XI in order to get feature rich interfaces between Delphi and CR?

If this is true, would it be possible to get XI for free having ordered 2008?

Since on product presentation pages it is said that version 2008 substitutes all different "flavors" of XI (so even "developer") i guessed that 2008 can do anything for developers that XI could - and even somewhat more.

For Win32 development this seems not to be true - and I guess nowadays many (maybe most) developers are still working in native win32. Very sad to here that BI doesn't care of us anymore.

Regards,

Klaus

Former Member
0 Kudos

"OK you are not using the TCrpe component but using the Crystal Reports .NET SDK."

Nope, ...upsss, yep. I tried nearly everthing now.

I learned yesterday that the VCL has an integrated preview.

In other words, I got the VCL to work (but only with an old preview).

"The viewer you are using is not an Active-X control but a .NET SDK component,

the Active-X viewer is dead and does not ship with CR 12."

Eh? We use CR Developper 12, and I can find the file

"C:Program FilesBusiness ObjectsCommon4.0crystalreportviewers12ActiveXControlsCRViewer.dll".

Importing this file in BDS 2006 as type library the resulting component

TCrystalActiveXReportViewer is working well in a first step of tests

(means, it shows an explicitly loaded report correctly, but yet I can not manipulate the dataset data).

"As for the error you are getting I cannot tell ...."

This was my error, I probably tried to access to a non existing dataset object by loading a wrong report.

Unfortunately the error message didn't help very much.

Anyway I got this to work.

"... as I have been unable to get our .NET ..."

I'm not using .NET at the moment, but in BDS 2006 the type library import works for Win32.

So I cannot imagine any problems using Delphi .NET at the moment.

Later perhaps I have some time to try it out.

To share my result of several test and to show the worst problems a short summary

(using BDS 2006 and CR Developper 12):

1. Using the VCL of version 11

Works after updating and copying DLLs to system32. Unfortunately an old preview.

I didn't get it to work with the new preview TCrystalActiveXReportViewer by something like

CrystalActiveXReportViewer1.ReportSource := Crpe1.????

Probably I'm missing something here.

2. Using the type library import in BDS 2006

Works fine in a first step:

var aRepApp:IApplication; aDoc:IReport; 
  aRepApp:=CoApplication.Create;
  aDoc:=aRepApp.OpenReport('C:TEMPReport1.rpt', EmptyParam);
  CrystalActiveXReportViewer1.ReportSource :=  aDoc;
  CrystalActiveXReportViewer1.ViewReport;

The problem at the moment is to feed the loaded report with new data or to execute the SQL with new parameters.

In CR 8 I made this by (works also fine in Visual Studio)

var DSet OleVariant;
  DSet := OleVariant(AdoQuery1.RecordSet);
  aDoc.SetDataSource(DSet);

But doing this in Delphi with

aDoc.Database.Tables.Item[0].SetDataSource(DSet, EmptyParam);

leads to the error "Die Eigenschaft ist zurzeit schreibgeschützt und kann nicht geändert werden"

(something like "The property is read only at the moment and cannot be modified").

Eh? Read only? At the moment? What am I missing now?

The error even appears if I only try to read on aDoc.Database.Tables.Item[0] or

to execute aTab:=aDoc.Database.Tables.Get_Item(0).

Is it possible, that Database.Tables.Item[0] is declared as readonly?

If yes, could it be possible to change this to published?

If not, how can I refresh data in a loaded report?

I found aDoc.SQLQueryString, but how can I reload data like

aDoc.Param[0] := Param0;
aDoc.Param[1] := Param1;
aDoc.SQLOpen;

What I don't understand here is that I can find aDoc.SQLQueryString

while I'm missing aDoc.Database.Tables[0].SQLQueryString.

Can I add several SQL queries in a main report or in subreports?

If yes, what function does aDoc.SQLQueryString have?

If no, what function does aDoc.Database.Tables have?

3. Using a VB DLL written in Visual Sudio and called from Delphi

This works without problems (I suppose this also works in Delphi 6, but didn't try it yet).

In Delphi:

aRpt:= CoClassCrystalReport.Create;
aRpt.OpenReport('C:TempReport1.rpt');
ADOQuery1.Close;
ADOQuery1.Open;
DSet:= OleVariant(ADOQuery1.Recordset);
aRpt.SetDataset(DSet);
aRpt.ShowReport;

In VB

Function OpenReport(ByVal FileName As String) As Boolean
  aRpt = New CrystalDecisions.CrystalReports.Engine.ReportDocument
  aRpt.Load(FileName)
Function ShowReport() As Boolean
  aFrm = New Form1
  aFrm.CrystalReportViewer1.ReportSource = aRpt
  aFrm.ShowDialog()
Function SetDataset(ByRef DSet As Object) As Boolean
  aRpt.SetDataSource(DSet)

I know, it's not good solution, but at the moment the working one.

Unfortunately this will lead to lot of work if further functionalities should be implemented.

That's why I'm investing time to search for other solutions.

BTW, where can I get a object model description for learning how

- to access to report SQL statements?

- to feed reports with new data?

- to feed reports with new data without executing queries (using aDoc.SetDataSource)?

Thanks and regards, Rolf

former_member200290
Contributor
0 Kudos

Wow there is a lot of info here. Thank you for the thoroughness.

First Concerning the Active-X viewer I did not realize it shipped with Crystal 2008, it must be part of it as a shared runtime for Business Objects Enterprise. However it is not there for end developers anymore, actually I don't think there is licensing to use craxdrt.dll and crviewer.dll for Crystal 2008 for creating applications like there was in the past. The only components that are licensed for developers are the depricated VCL, .NET and Java SDKs.

The CRPE VCL cannot be passed to the Active X in any way. The Active X expects a COM based object from craxdrt.dll or Enterprise based objects, where as the CRPE runs from crpe32.dll and does not have access to any of the functions in this dll that would create a compatible report source, so this line:

CrystalActiveXReportViewer1.ReportSource := Crpe1.????

We cannot get to work. With the VCL you can only call the execute method and use the integrated viewer. However you can set the VCL's window parent to a panel on a form, or a child form and it would display there instead of its own window.

Now typically unless you use two different database connection (ie odbc data sources, or one MS SQL table and one Oracle table) Crystal will create only one single SQL query that is why it is at the report level and not table level. Previous to version 9 of Crystal we allowed the SQL statement and Selection Formula to be modified at runtime. However this created some issues where a developer would set an SQL query to a particular SQL string, then do something with the report that would require the engine to try and modify the SQL statement. This is where the problems came in, the engine would either override the set SQL statement or modify it in a way that caused other issues to occour. There were so many complaints about this that when we moved to Unicode support in version 9 we depricated the ability to set the SQL statement. It was left there for backward compatibility but not supported for new application. Basically if you were to run into an error when setting the SQL with version 9 and higher there was no escalation path.

We recommend that you use the Selection Formula wich will update the SQL Statement.

As for the errors when calling SetDataSource method to pass an ADO RecordSet to the report I can look into this but I need to know what you want to do:

1. Use Craxdrt.dll and crviewer.dll with version 11.5?

2. Use VCL with CR 2008 or 11.5?

3. Use .NET SDK with 11.5 or CR 2008?

In the case of 1 and 2 I can test this for you using Delphi 7 with number 3 I can give you information on how to do this with C#, like I said we have not had success with Delphi .NET's framework implementation.

Let me know what you want to do!

Trevor

Former Member
0 Kudos

By copying all DLLs to Windows\System32 I can create the TCrpe component without errors.

Thanks to Peter for evluating the DLLs needed.

But when I try to call TCrpe.Execute (or others like TCrpe.Export) I get the error:

Error: 997 Failed to Retrieve Error Message from Print Engine

Any ideas?

I also installed the ActiveX viewer component package (importing the component in Delphi).

But how can I show the loaded report (TCrpe) in the ActiveX component

as it can be done with 4 lines of code in Visual Studio:

Dim aRpt As CrystalDecisions.CrystalReports.Engine.ReportDocument
aRpt = New CrystalDecisions.CrystalReports.Engine.ReportDocument
aRpt.Load("C:\Test\Report1.rpt")
Me.CrystalReportViewer1.ReportSource = aRpt

Regards, Rolf

former_member200290
Contributor
0 Kudos

OK you are not using the TCrpe component but using the Crystal Reports .NET SDK. The viewer you are using is not an Active-X control but a .NET SDK component, the Active-X viewer is dead and does not ship with CR 12.

As for the error you are getting I cannot tell you how to solve it as I have been unable to get our .NET working in Borland Delphi. It keeps giving me tons of errors and we only have Delphi 7 and BDS 2005 to test with.

I have tried our components with other non-Microsoft .NET developer tools and they work fine there. It is my guess that the way Delphi is implementing the import of framework components is causing the error. But this is just a guess.

Trevor

Former Member
0 Kudos

I have found copying the following files from the C:\Program Files\Business Objects\BusinessObjects Enterprise 12.0\win32_x86 folder into the application folder (where crpe32.dll is also located for our application) solves the problems in our application:

cslibu-3-0.dll

cxlibw-4-0.dll

ebus-3-3-2-6.dll

etc-1-0-12-5.dll

fssl-1-2-1-3.dll

libOCAhelperw-4-0.dll

pvlocale-1-0.dll

ufmanager.dll

Xalan-C_1_10.dll

XalanMessages_1_10.dll

xerces-c_2_7.dll

Former Member
0 Kudos

I Hade to add also

boezlib.dll

Tracelog.dll

icuuc30.dll

icudt30.dll

icuin30.dll

so the complete list is for now:

boezlib.dll

Tracelog.dll

icuuc30.dll

icudt30.dll

icuin30.dll

cslibu-3-0.dll

cxlibw-4-0.dll

ebus-3-3-2-6.dll

etc-1-0-12-5.dll

fssl-1-2-1-3.dll

libOCAhelperw-4-0.dll

pvlocale-1-0.dll

ufmanager.dll

Xalan-C_1_10.dll

XalanMessages_1_10.dll

xerces-c_2_7.dll

Edited by: Jean-Philippe Golay on Sep 8, 2008 2:55 PM

Former Member
0 Kudos

Hello Trevor, thanks for your answer.

In TCrpe.LoadEngine I wrote "FVersion.FCrpe.FMajor <> 12" (in accordance to the original VCL version).

I also changed "GetCommonFilesPath" as you did (and others "Suite 11.0" -> "Suite 12.0").

In "TCrpe.LoadEngine" the original file was found (so I didn't have to copy those files elsewhere).

But the function "FCrpeEngine.PELoadCrpeDll(sCrpe)" delivered FALSE, leading to the DLL-Error 100 (in "TCrpe.LoadEngine").

Perhaps other DLLs were missing, I'll try this out, probably next week

(in Delphi 6 there is an other error message like "locale???.dll" not found).

So I still wonder what is ment in the instruction pdf file "Updating the VCL":

"Update the version number check that occurs as the report engine and report document is being loaded.

This is located in the TCrpe.LoadEngine, TCrpe.GetReportStyle and TCrpe.SetReportStyle."

Should "if wStyle > 10 then" (version 11.0) be changed to "if wStyle > 11 then" (version12).

Anyway, I tried it out, but this didn't help.

Thus, at the moment, I try to develop an VB-DLL in Visual Studio and call this DLL within Delphi 2006.

In a first step, I had success. But there will be a lot of further work to do.

BTW, do your CRPE32.DLL have a size of 9035KB and the date of 19.10.2007 03:47, too?

Regards, Rolf

former_member200290
Contributor
0 Kudos

My version of crpe32 is a little higher, however this should not make a difference in how it behaves with the VCL, most of the calls the VCL makes to crpe32.dll are depricated and only there for backwards compatibility, most of the changes in this dll are to the updated functions or back ground/hidden functions.

As for the "if wstyle > 10 then" line you can try changing it to 11 for XI, 11.5 for XI r2 and 12 for CR 2008. However I am not sure if this will really do much...

Kind Regards,

Trevor

Former Member
0 Kudos

We have the same problem impossible to load crpe32.dll even with all these changes I get an error :

CRPE32.DLL

Windows Error Number: 126 - The specified module could not be found

former_member200290
Contributor
0 Kudos

Well again this is the same errors I got but as I said earlier in the post:

"Then I started to get the same errors as you where it couldn't find the dll's. So basically for every dll it couldn't find I copied it from our directories and pasted them into system32, well actually because I was trying to hurry I copied all the crystal dlls from \program files\business objects\business objects enterprise 12.0\win32_x86 to the the c:\windows\system32."

Now this is not elegant but this is about the best I can offer right now. The alternative is to move to a .NET development language or Java and use our updated SDKs.

However I will warn you that I have been less then successfull getting Delphi .NET to work with our .NET SDK, I have downloaded other .NET development tools (other then Microsoft) and they worked but Delphi .NET seems to run into problems... however it could be something that we are doing wrong on our side.

Trevor

Former Member
0 Kudos

Ok, I understand, but why do we have to copy these dll to windows system32, isn't there a way to add the path somewhere?

Also can you indicate me links toward replacement .NET and Java sdk, there is so much SDK's that I am a little lost?

Thanks for your help

former_member200290
Contributor
0 Kudos

Why do we have to move all the files to the system32 directory? Not sure you have to, it was just the only way I got this working, there may be another solution and I haven't found it. Adding the runtime directory to the path was the first thing I tried, and it didn't work.

As for the .NET sdk this would be the place to start:

https://boc.sdn.sap.com/developer/library

If you are successfull in getting Delphi working with our .NET SDK we and the other Delphi users would love to hear from you as we have been less then successfull at it.

Trevor