cancel
Showing results for 
Search instead for 
Did you mean: 

API to Migrate crystal dictionary(dc5) to xml schema

Former Member
0 Kudos

Hi Experts,

I want to make a tool which will convert Crystal 8.5 dictionary file(dc5) to xml schema.

Is there any API available in Crystal SDK, if available then what is the methods and how to call it?

Regards,

Amit

Accepted Solutions (1)

Accepted Solutions (1)

former_member184995
Active Contributor
0 Kudos

Hi Amit,

Unfortunately there are no APIs for use with Dictionaries.

Jason

Former Member
0 Kudos

Jason,

I discover the following code which returns the tables and fields information from report which is having dc5 file as a data source.

CRAXDRT.Application app = new CRAXDRT.Application();

IReport rpt = app.OpenReport(@"C:\abc\test.rpt", 1);

DatabaseTables databaseTables = rpt.Database.Tables;

Unfortunately following code doesn't return links from dictionary file. It always shows 0 links thouth there are relationships in dc5 file.

CRAXDRT.TableLinks links = rpt.Database.Links;

Can you please look into this.

Regards,

Amit

former_member183750
Active Contributor
0 Kudos

Amit, you've been posting this all over the place and the answer remains the same. This can not be done. No matter what SDK you use. Please see your post here:

All that you have done here is moved to anothe technology, that being the SDK. As per the post above, even using the Print Engine WIN API SDK that was more powerful than COM (RDC) we simply return all DB links as Advanced and we canu2019t get the SQL from the report either, itu2019s an empty string. We looked at the Print Engine header files and do not see any hint of help there. You really are out of luck.

Ludek

Former Member
0 Kudos

Ludek

Thanks for very helpful reply.

You are talking abount more adavance API then RDC which will return advanced linking information between tables so I would like to know what advanced information it can show with enhanced SDK.

Thanks,

Amit

former_member183750
Active Contributor
0 Kudos

The return value is simply "Advanced". E.G.; you could have right outer, left outer, all you get is "Advanced" as the string.

Ludek

0 Kudos

Hi Amit,

There are a few threads about this same issue. There is ABSOLUTELY NO WAY to get the linking info in any of our report engines new and old.

Here's why:

We were well aware of the limitations to get the info from our Dictionaries at the time they were deprecated using our SDK's but it was determined it was simply easier to re-build the reports than to create a conversion tool and a new set of API's. The reason is the Dictionary Designer was simply a View designer and could be considered a stand alone application. CR had no direct interaction with the SQL the DD created, we simply waited for the result set to be returned.

What CR would have to do is create look up tables for ALL databases so we could map their tables and functions to our SQL generator. Of course this would have been a VERY LARGE project which would create all sorts of issues in the future. If the DB driver changed the functionality of the SQL generated we would have to follow. Way too much to manage and impossible to maintain.

The DIRECT replacement for using DC5's is using the Command Object in CR Designer, again it's a way to directly enter in SQL and CR simply passes that SQL directly to the server to process. Unforetunately for the reason I stated above we have no field and table mapping functions built into CR when using Command objects either if you want to change the report to use the tables directly, so there is no mapping functionality and the reports would have to be re-built.

Knowing this the Developers did add the ability to copy and paste report objects from one report designer/report to another one that's open.

Thank you

Don

Answers (0)