I have a report made in Crystal Reports XI. The report is generated and exported to PDF in visual basic script using COM interface. Generally everything is running smoothly, but in one case generation breaks with error:
Failed to retrieve data from the database. Details: [Database Vendor Code 9421]
Database used is MSSQL 2005 connected over ODBC to CR XI. When I am opening report with exactly the same parameters in Designer, everything works fine.
It looks like it is data related, but it is hard to trace since the whole report is pretty sophisticated. Anyway I spent half a day on crawling over Dr. Google and it seems that he has no clue what might be an issue.
When you previewed the report in Crystal Reports Developer, did you look at the whole thing? Some custom formulae are not calculated until you actually look at the page.
Try scrolling through the entire report top to bottom. If your error message pops up halfway through and Crystal refuses to preview the rest of the report, then there's probably some anomaly in your datasource that is tripping up a custom Formula in your Crystal Report.
Related
I have been struggling with this issue for two years now. My problems are happening in Visual Studio 2013 (not a web server).
Occasionally, I have to take an RDLC file that was created by someone else and make changes to it. Using VS, I create an XSD file for the dataset, then replace the DataSource and DataSet in the RDLC so that the report now points to the tableadapter(s) in the XSD.
Often when I try to view the report in the ReportViewer form, the Report Data Source and Data Source Instance are blank. I've tried Rebind Data Sources, and I've cleaned and rebuilt the project, but I can't get the data source to show up. Sometimes the report will have a subreport, and that data source will be available if I choose that RDLC.
I'm a third party developer -- I'm not editing (and cannot edit) aspx files; just the reports. I've tried editing the code in Form.vb manually to insert the TableAdapter, but it hasn't worked, and I don't really know what I'm doing there -- I have some object-oriented programming experience, but not much.
What can I do to make the data source available to the report viewer and/or bind it to the RDLC? Any suggestions are appreciated. Please let me know if there's any particular code it would be useful to share.
Thank you.
I ended up doing the following, which solved the problem in this case. Not sure it's a solution that will work in all situations like this.
I replaced the opening Report tag in the XML of the RDLC with this:
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
I removed the <ReportSections> and <ReportSection> tags, as they are not supported by the 2008 schema. I didn't remove anything that was between the tags.
After making these changes, the data source became available to the form, and I was able to preview the report.
I am working with a crystal report that has the first few pages populated with a few fields from the database and the rest of the report has sections of static information (mostly legal terms and conditions).
Now the report runs fine but I am running into a lot of issues when I have to update the terms and conditions text every time there's a change. It may sound easy, but Crystal is extremely finicky when it comes to handling formatting copied over from a Word Document. This makes it extremely difficult to work with.
I am exhausted of ideas trying to make this work, but is there any way to keep that static text independent from the report? Is there anyway to give control of the document to the users so they can change it at will and be stored on the network somewhere that gets called in and embedded onto the report?
It needn't be just a crystal report, it can be a SSRS report as well, it really doesn't matter.
TLDR; Need help embedding contents of a document file in a Crystal/SSRS report that can be sitting out on the network somewhere.
Thanks for the help in advance :)
If you are exporting the report to a PDF you can create just the page with the database information in the report and append the static text as an external PDF files. You will need a 3rd party tool to run the reports.
So I've designed a report in Pentaho Report Designer 3.9 and previewed it and ran it on my machine and everything works fine.
I have an input paramater that is a dropdown list and gets its values from a query called Vertical-List.
Now the drop down works on my machine. However, when I publish the report to the Online interface and try to access it, I get a message that says "The Specified query 'Vertical-List' is not executable here". I don't know what that means and what to do. It worked this morning and suddenly it stopped working.
Please help a brother out.
here is the query that generates the drop down
SELECT
`verticals`.`vertical_id`,
`verticals`.`vertical_name`
FROM
`verticals`
Double check your datasource and query, especially the parameters. If you have parameters, remember that a parameter is read in the Pentaho Report Designer as ${parameter_name}.
Also double check that you have defined the datasource in your BI Server.
I'm having this problem:
The SQL Server holds a said value, let's say 990.30, the Reporting Services Report show a different value (948.33) when viewed online, in the brower and a third value (912.22) when the report is exported to Excel.
There are no formulas on Excel, just plain values.
Also, there's no formula on the layout of the report.
The code shows only a simple select that, when run on the SQL Server Management Studio, returns me the original value (990.30).
How on earth shall I start to troubleshoot this ?
I've never heard of this kind of problem before. I would recommend submitting a ticket to Microsoft and provide them with screen shots of the errors, the RDL file, a sample output of the stored procedure, etc.
To troubleshoot this on your own, I would recommend creating a new report that just has a simple table that returns all the details from your stored procedure or query to validate the values are consisten across all interfaces. From there, just start adding on complexity until you get the report to look like it is today.
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 Database|Show 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.
Am I missing something? Can I get to the SQL query without connecting to the datasource? It seems like viewing the selection criteria shouldn't be dependent on a data connection.
Thanks.
version: Crystal Reports 2008
I know that this is an old thread, but I encountered this same problem. Effectively we used to have a database/application that has since been aquired by an external agency.
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)
(I can give more details if it helps in any way.)
It should be possible to find out some details about the existing datasource, by selecting Database > Set Datasource Location... .
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.
Without the password, I'm not sure how much you can do. It seems "Show SQL Query" requires to report to run first, then generate the SQL plan.
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.
Viewing the SQL of a Command in a Crystal Report File
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.
If you don't already have a Data Source on your computer set up that you can connect to, you will need to build one first.
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.
Open the Crystal Report you want to see the SQL command for, and click on Database Expert button or Database>Database Expert Menu.
Under Selected Tables, right click on the Command and choose View Command
The Data Source Selection Box appears. Select the Data Source you created (or one you already use) and click the Finish button. The View Command box should open with the SQL in the left pane. Copy the SQL into your favorite text editor.
Whats happening is that the crystal reports needs a database to connect to regardless if its the original source DB or not.
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.