Terry Cunningham and the Cunningham Group originated the software in 1984.[2] Crystal Services Inc. marketed the product[3] (originally called "Quik Reports") when they could not find a suitable commercial report writer for an accounting software they developed add-on products for, which was ACCPAC Plus for DOS (later acquired by Sage).[4] After producing versions 1.0 through 3.0, Crystal Services was acquired by Seagate Technology in 1994.[5] Crystal Services was combined with Holistic Systems to form the Information Management Group of Seagate Software, which later rebranded as Crystal Decisions and produced versions 4.0 through 9.0. Crystal Decisions was acquired in December 2003 by BusinessObjects, which produced versions 10, 11 (XI) and version 12 (2008).
The file extension for Crystal Reports' proprietary file format is .rpt. The design file can be saved without data, or with data for later viewing or sharing. Introduced with the release of Crystal Reports 2011 (version 14.0), the read-only .rptr file extension option allows for viewing, but cannot be modified once exported.[6]
Several other applications, including Microsoft Visual Studio versions 2003 through 2008, and Borland Delphi, at one time bundled an OEM version of Crystal Reports as a general purpose reporting tool.[7] Microsoft discontinued this practice and later released their own competing reporting tool, SQL Server Reporting Services (SSRS).[8][verification needed]
In dealing with a recent post about an upgrade to Crystal XI R2 mixing badly with an old VS 2003 project ( ), I've been attempting a few things to get past the issues with missing parameters and so on. I found that I actually was using a parameter in the report I was trying to run, so I assigned the proper value to said parameter, ran the report, and lo and behold all was well. The data was coming back correctly, no errors, everything seemed fine.
Then I checked the results against the production environment of this application, hosted on a remote server, and was disappointed to find that the reports were now coming back blank. After some deeper investigation, it turned out that the data it was retrieving was coming from my development server and not the production server like it had in the past. As far as I can tell, it is completely ignoring the dataset that I'm assigning to the report object (which is filling with the correct data) and just running the query built into the report, which is connected via ODBC to my development server database. I have no idea what this is going to do when the application is run from the production environment itself, as in, my customers running the application from their desktops, and I have no way of testing this.
I will fully admit that the report may be poorly designed, because then and surely enough now I'm no crystal expert, but as I said in my previous thread, this all worked fine until I upgraded to XI R2 for another project. Essentially what I want is for the report to accept the dataset and display ONLY that data, and not run a query against the ODBC connection. Is there some way to force this behavior? Here's a sample of my code, if it helps:
I've tried to reassign the report's connection to the currently connected database (code snippet below) but every time I end up getting a logon failed error message, even when I know for sure the login data is correct, and even when I'm just connecting to my local development server.
I ran that after loading the report, but received a failed login error every time. Any suggestions on how to proceed with this? I'm at a loss because up until now I've never had a problem like this with a crystal report, they always just took the datasets I gave them without ever running anything else.
Renamed the datasource and tried it again, this time it crashed with a Logon Failed error. I uncommented the logoninfo code I linked earlier and got the same thing. It seems to still be trying to use the original ODBC, and because it can't find it it throws logon failed.
Ok. Now I want you to go over [this =/pub/wlg/13270] [original link is broken] [original link is broken] [original link is broken]; blog. It takes you through troubleshooting issues with datasets and Crystal Reports. The fact that you get db logon request, tells me that there is something wrong with the dataset (or the report does not understand it). Thus, if the original datasource is available the report connects to it once it fails with the dataset.
After attempting quite a few of the proposed solutions, nothing seemed to be working. Due to the limited usage and number of reports in my application, I decided to try recreating them from scratch (there are only 3 and 2 are nearly identical) using only the crystal 9 integrated designer in VS2003. My initial testing has been successful, even using the same base query that the failing reports were using.
Dropping everything and recreating all of ones reports is not the greatest solution, but at worst it's a few hours of tweaking, as opposed to days of frustration messing around trying to get the "corrupted" reports to work again. Thank you again for your assistance.
Thanks for the suggestion, but unfortunately the result was the same as before, report came back with data from the wrong source. Also, the ReportDocument object I'm using did not have a VerifyDatabase function, so I was unable to try that.
I've got an .rpt file that I did not write and can find no documentation about. I want to be able to review the SQL that is generated from this report so that I can figure out, well, what data it was pulling and what WHERE clause parameters were used.
I can open it up and see the report layout. But when I select DatabaseShow SQL Query... the report tries to connect to the data source. The problem is, the data source being used is unknown to me, probably an ODBC connection used by whoever wrote the query. All I can do at that stage is 'Cancel' and I'm back to looking at the report designer.
Although they now have the database/application they don't have access to crystal reports, so we can't just send them the old report that we used to run. Likewise we can't run it as we don't even have the database set up anywhere.... So instead our plan was just to extract the SQL code generated by the report and forward that on.
We experienced the same problem, but the solution is actually pretty simple.If you don't have access to the original data source, just create a new 'blank' datasource (such as an ODBC connection). As long as the connection to the datasource works (i.e. it is some kind of valid datasource this it works fine). When running the 'Show SQL' option point the report to this datasource. As long as you don't try to actually run the report (and only show the SQL) the operation wont fail. This worked for our situation anyway. (Crystal Reports 2008)
It's not ideal, but you could go to Database > Visual Linking Expert to at least see the tables and how they are joined, and the go to the Record Selection Formula Editor and see what the custom WHERE statements are.
As well as enabling you to change the datasource location, this should show you some information about the current datasource, such as which type of datasource is being used, and possibly (dependant on the type of driver) the name of the database. It is likely to be less helpful if (as you surmise) the datasource is ODBC, but if it uses a native driver there may be something useful.
There are times you have just the report file, but not the associated database structure that the report uses.This is common when dealing with example reports of functionality you wish to mimic.This is a workaround ONLY to allow you to see the SQL of a Command that a Crystal Report is based on, when you don't have the underlying database connection that the report is based on.In essence, the dialog box has to be satisfied before it will show the SQL, so we fool it with a legitimate Data Source, just not one that would work with the SQL that is actually in the SQL Command.
Why does a report use a command? Doesn't Crystal Reports have the ability to link tables?When a Crystal Report is based on a record set that is too complex for the table linking functionality within Crystal Reports, the report can instead be based on a SQL Query, usually developed/tested in another editor tool and pasted into the command. This allows advanced SQL functions to be utilized.
A simple Microsoft Access .mdb file saved in a simple location will suffice.I placed mine with the path C:\A_test\test.mdb to make it easy to find.If you don't have one, google for a sample mdb file and download it, saving it with a name and location you can remember. (You won't ever actually open this file, but just connect to it.)Once you have the file saved, open the ODBC Administrator and create a New Data Source.(you can get to the ODBC Administrator quickly from Start > type ODBC in the Search)On the User DSN tab, click the Add button.Scroll down the driver list to Microsoft Access Driver (*.mdb), select it and click the Finish button.In the Data Source Name box, type a name (I used MyTest).Click the Select Button and select the mdb file you saved from a previous step, click OK.Click OK again. You will see your new Data Source listed by the name you gave it. Click OK.You now have the data source you will need for the next steps.
Create a local database or use a database stored on a server, added it to your ODBC Datasources and use it when connecting. After a successful connection you should be able to view the SQL query without an error.
need to create ssis package to run crystal report(s); I want to read a sql table and return values as parameters to cyrstal reports, and then email the report. Has anyone been able to do this? Thanks in advance for your help.
But if you have the Crystal libraries installed on the machine with SSIS, I would think you could use them in a Script task to do what you want to do.. It would be like building an app in VB to do it, only SSIS would be the container and not an EXEC..
4a15465005