Crystal Reports doesn't seem to have a SQL Expression Editor. I know the Editor is only available when I select tables from source, so how can I add my own SQL Expression to my report?
To write your own SQL expression within Crystal, go to the Field Explorer on the right side of the Design view. Right click Database Fields and select Database Expert.
Pick the matching connection you want to use, and select Add Command
From here on out, Crystal will treat your statement as if it was another existing table.
I am trying to debug missing data in an existing report.
I see the database it is connected to, but I do not find any table or stored procedure or view in that database with the same name that I see in the record selection part of the Crystal Report.
Is there a way to find which table/view/stored procedure is used as input for the Crystal Report?
Thank you
Never mind. I found it. Rt click on Database Fields and select Set Datasource location...
You need to set up first what type of connection you need.
This will help you using ODBC connection.
Ideally you can set this when first time confiugre the data, but suppose if you update the table or procedure and that will not impacted in your crystal report.
To update the updated db element / object in crystal report, simply "Update datasource" option click which pull the changes and update in crystal report.
May be helpfull in future.
I used to create crystal reports by going into database expert, selecting tables and specifying the link manually. As I get a bit more comfortable with CR, there is a need for me to put the underlying SQL query into a store procedure to provide data to the report. But doing so will require me to rewrite the whole report which is time consuming.
So, my question is if there are any guru in the community that could and/or have tried to replace the underlying SQL (created by manually add table and links) with a store procedure or cmd without having to rewrite the whole report? I would love to get some hint of how to do that as I have a couple dozen of reports that need "adjustments" and time does not permit me to rewrite them all.
My Crystal Report versions are CR 2008 and CR 2012.
Thank you in advance.
In case you can use an existing software : this feature is available in a free Crystal reports viewer. Here is the documentation, which explains the use :
http://www.r-tag.com/Documents/RTag%20DataSource.pdf
... and here is where you can get your free license:
http://www.r-tag.com/Pages/FreeCrystalReportsViewer.aspx
Crystal does an absolutely horrible job of migrating from many tables to a single DB object, be it a Command or stored procedure.
You might be able to Database | Set datasource location... to map your SP to one of the many tables in the report (choose the one that has the most fields in use); I've never been able to get this feature to work trying to map a Command to a table.
'Best practice' for a really-poor 'feature' set:
create a formula field for each field that will be on the canvas, but isn't grouped (these fields won't be removed when you change datasources)
add the Command to the report; link tables if desired
manually switch grouping, record-selection formula, sorting, etc.
I have created a crystal report with datasets(xsd) , it is working fine. Then i added a new field in xsd and when i open the field explorer it do not show that field, i added source again through database expert but still it is not showing that field. Any other person faced such issue then please help.
After waiting a lot for right answer and searching on internet i tried different options by myself and the problem was solved by right clicking on database fields and then click on verify database. If some one have some better option then please suggest.
I had the same problem and resolved it by adding parameter input and running the report from the designer. Crystal report popped up and said that it was fixing the report and refreshed the connection to the database for the most current fields.
I had a similar easy where Log on or Log off server and Verify Database wouldn't update the database fields list in Crystal Reports. The only thing that worked for me was to physically move the typed dataset to a different location. After creating a new connection within Set Datasource Location I updated the datasource and there it was....
Sap Crystal report has a problem while refreshing database changes to crystal report. I found this solution and it works like a charm:
First go to refresh data base option and then it will ask you to enter parameter values to the stored procedure
then without passing any values just press escape button it will suddenly ask you to confirm the changes made to database when you do it on second time it will say database is up to date
Don't forget to rebuild your solutions before validate your database.
Restarting the Machine did the trick for me.
Some data types in dataset can't show in crystal reports try to change data types ( example don't use System.DateTimeOffset use datetime only)
Verity database in database fields
If your DataSet (.xsd) came by "Add Existing File" and not create one, then you will encounter a problem like mine. to fix this:
-Find the DatasetName.xsd file and all of its name-like file . Copy it EXCEPT THE DESIGNER (DatasetName.Designer.cs) and paste it somewher, you will re-paste it later
-In your VS. Delete the DataSet (xsd File) in your project by right click it in your Solution Explorer. This will delete any traces of file.
-Re-paste the files that you copied in the same location. Then in VS. And add the xsd file that you re-paste.
-Then you can now add columns. And it will update the DataSet, and also the Crystal Report will see the updated column
Reason: For i-dont-know-what-the-heck-happened, if you include the designer file then add it in you project, then you add columns to it, the VS will create new designer.cs file instead of overwriting the existing file. So the column registers only in original but the newly created one only recognized as valid (which is no traces of new added column)
You can press F5 to see preview, if crystal report find out new fields it will verify all field in database, and your new fields will appear.
Hope this will help you!
Log off from server, then verify database, that did the trick for me!
By just updating the entire datasource location did not work for me. I had to expand the source location and then update the individual table. Hope this helps someone.
Right click REPORTDATASET then select Set Datasource Location.
click database files and select your existing *.xsd. then you will see REPORTDATASET.
select it.
update
close
Now you will be seeing the new fields in your *.rpt :)
I use the following technique:
Select datadese expert in crystal report
Select previous added datatable.
Press "<<" to remove it from reporting, its related columns are removed from report automatically.
Then select Project Data>>ADO .Net DataSets>> your updated dataset
Press ">>" to add and click the OK button.
New added field also shows in dataBase fields and then added in report.
I have a Crystal Report I'm working on; last week it was returning results but when I fired it up this morning I was no longer getting anything. Checking the SQL query, I show that the table name is listed twice, for some reason:
SELECT "WMS_TESTINFO"."RECORD_NAME"
FROM "TestEnv"."dbo"."WMS_TESTINFO" "WMS_TESTINFO"
Any thoughts on what could have broken? I've checked that the database is connected and my data is still there.
The table name is listed twice as Crystal Reports creates an alias for every table.
This Crystal generated SQL:
FROM "TestEnv"."dbo"."WMS_TESTINFO" "WMS_TESTINFO"
Is in the format of:
FROM DATABASE.OWNER.TABLENAME ALIAS
This is normal for Crystal.
I would run that SQL in SSMS (remembering to remove all of the " first) to check that the data really is still there.
If it is, check that a filter hasn't been added to the report, via the Select Expert menu opton, to filter out all the data.
Lastly, go to Database > Set Datasource Location and re-apply the connection to ensure that the report is definitely pointing at the right location.