How to protect RPT files from being seen in design mode

Hi everybody

I have Crystal Reports 9 SP 3, Windows NT, VB 6. I've created a number of reports in CR and a report viewer using VB. I would like to be able to provide the viewer, the RPT files and the corresponding DB as a demo, but I am interested in protecting the RPT files regarding the design aspect. Does CR 9 provide a mechanism for this and how does it work? If not, is it available in newer CR versions? If not, could I get some suggestions for an alternative?

Thanks,

cmanase
cmanaseAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

GJParkerCommented:
Anyone who has a copy of Crystal Reports can open the CR reports you have designed and there is ultimately no way of stopping this.

You could start by changing the properties of each file and making them Read Only, maybe not a perfect solution but at ;east a start.

HTH

Gary
Mike McCrackenSenior ConsultantCommented:
Agree.  Making the read-only will still allow them ot open the report in the designer but they cannot change it.

What is your purpose in doing this?

mlmcc
cmanaseAuthor Commented:
The purpose is to protect the IP, not the RPT file from being changed. In fact I don't consider the latter to be an issue at all: if the RPT files get modified by mistake or otherwise by the receiver of the demo, the originals can always be recovered from the CD, e-mail or whatever was used to send the demo in the first place.

I appreciate your help, mlmcc and Gary. However, I am looking for a little more than just write-protect the files. I would like them to not be seen in design mode - the way, for instance, Microsoft provided mde files that you could produce out of the mdb, to protect the code inside.

cmanase
Become a Microsoft Certified Solutions Expert

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

GJParkerCommented:
Then unfortunately the first line in my reply holds true, and this can't be done.

Gary
Mike McCrackenSenior ConsultantCommented:
Agree.  Once they have the rpt files and the Crystal designer, they will be able to view/modify the report as a designer.

How does the IP enter into this?  Are they running the report from your database and you are concerned they will have access to it?

If so it probably wouldn't take much to change the report to run from an ACCESS or other PC database and include a limited copy of the databse with the demo then run from it.

mlmcc

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
cmanaseAuthor Commented:
"How does the IP enter into this?  Are they running the report from your database and you are concerned they will have access to it?"

The IP is in the code embedded in the report plus the structure of tables used that is also accessible in design mode (btw the db won't need to be sent, I could save the data with the report).

The report is not run from the database. It is run by the viewer.

"If so it probably wouldn't take much to change the report to run from an ACCESS or other PC database..."

Let me put it this way: it would take me less time to alter the structure of an RPT file such that it would only be loaded by my viewer, than it would take me to rewrite those reports in Access.

And that is also an answer to Gary. My original question asked for an alternative in case CR 9 or newer versions did not have a mechanism of their own to protect RPTs. To say that it "can't be done" sounds a bit extreme, unless you only referred to CR's abilities - in which case it's an incomplete answer. In fact it appears it has already been done (e.g. Millet Software). I was hoping for an easier/quicker alternative, but it becomes clearer now that there's little chance for that.

To be fair, changing the report to run from Access does qualify as an alternative, although costly, and definitely not to follow, at least in my case.

Thank you, guys. I do appreciate the time that you put into this. I will probably do a split even though it may not be of the full amount.

cmanase
GJParkerCommented:
<< it would take me less time to alter the structure of an RPT file such that it would only be loaded by my viewer>>

I for one would be interested to know how you would go about doing this.

<< In fact it appears it has already been done (e.g. Millet Software).  >>

Which of Ido's products allows you to encrypt Crystal reports ?

Gary
cmanaseAuthor Commented:
Hi Gary

By answering your questions I think we're slightly diverging from the true role of this thread: for me to get a solution to my problem. But I would still like to do it out of courtesy and hopefully to convince you that I truly value the time that you, mlmcc and anyone else spends to solve my problem. If my answers upset you in any way, I apologise.

Here are the answers:

1. Crystal Reports is a relatively new item for me. I am a C++ programmer for more than 10 years. Anyone who knows C can tell you that reading and writing a binary file, tweaking some bits inside (and un-tweaking them to "decode") is a non-issue. I don't think it would be a big effort to make an RPT unreadable by CR by tweaking a few bits in the file. (maybe I should have kept that for a patent :-))

2. Here's one of the "Key Benefits" of the DataLink Viewer, as presented on Millet Software site and available for everbody to see:

"Protect & Hide Report Designs by converting your rpt files into rpz files. Your users can run the resulting rpz files in DataLink Viewer, but cannot view or modify them in Crystal.  To completely protect report designs, DataLink Viewer blocks exporting of rpz files to rpt or report definition files."

Cheers,

cmanase
GJParkerCommented:
Thanks for your response, no offense was taken or meant by any of the replies posted here.

I must admit it has been so long since i used Datlink viewer, I had forgotten about the abiltiy to convert rpt files.

I was genuinely interested in how you would go about encrypting the rpt files. I have dabbled with programming in VB in the past but have never used C++ and was unaware of this ability. thanks again for the insight.

Gary
Mike McCrackenSenior ConsultantCommented:
I was not implying that you should convert the reports to Access reports.  I didn't fully understand your concern with the user being able to open the report.  I was suggesting sending the reports (modified to use an Access database) to eliminate the need for the IP and protect the database the reports will really use.  I didn't consider using the SAVE DATA feature so you wouldn't even need a database.

Interesting idea to "encrypt" or corrupt the report file to prevent the user from displaying the report design.

mlmcc
Mike McCrackenSenior ConsultantCommented:
Glad i could help

mlmcc
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Crystal Reports

From novice to tech pro — start learning today.