Performance issues with ADO.Net Datasets - crystal-reports

I really want to know your experience at working with ADO.Net datasets (calling stored procedures from SQL) and Crystal Reports, I know about the 2-4 seconds to
CrystalDecisions.CrystalReports.Engine.ReportDocument document = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
document.Load(file);
but what about the load of each tableadapter is there another way to work with Crystal Reports? Maybe with LINQ
Thanks in advance

I have used DataSets with Crystal. In general I do not like to allow Crystal Reports to fetch its own data as we have had errors with it opening too many connections to the Database. I usually create a DataSet and serialize it to XML with the schema and use the xml file as the ADO.Net "DataBase" for design purposes and then at runtime I assign the DataSet to the Report
Dim rd As New ReportDocument
rd.Load("SomeReport.rpt")
rd.Database.Tables(0).SetDataSource(dataset)

Related

jasper report: generation of simple jrxml to display db table

I have very large number of db tables in pracle database. I would like to somehow generate simple jasper report (version 6.0.3) for each of them.
One line with the name of table as header and under it common table displaying all columns of table. Option to exclude some columns from predefined list is welcome.
Any advise? Has someone any experience with this issue?
Thank in advance
My idea is use some ETL tool for extract specification of tables directly from database and map it somehow into xml files
There is a cloud based tool that generates the JRXML transparently based on the data structure, you can check it out at http://flashreport.io.
It supports simple XML and JSON as input, but does not allow excluding specific columns. You would have to do that in your ETL tool.
You can use iReports, which is a designing tool for generating jrxml files (which are jasper-reports xml files): iReports tutorial. You have just to create a data-source (in this case you can create a connection to your DB), and construct your report design by dragging and dropping the tables/columns into it (mapped from the underlying data-source).
I've personally been working this iReports, but nowadays the jaspersoft community is putting it's efforts into another tool: Jaspersoft Studio, which seems to be the future replacement for iReports

Is it possible to design reports using SSRS on dimensional database_

We have Sql server database and it is designed on snow flakes (Facts and Dimensions) schema. These tables don't have PK and FK relationship. Instead we are maintaining these information in metadata tables.
Is it possible to design reports in SSRS on these tables?
I want to design reports by combining different columns from tables.
Any help would be appreciated.
Assuming that the Fact and Dimension tables are held in a conventional relational database, you can access them in SSRS using conventional SQL queries.
If the database structure is OLAP, you'll need MDX to query instead of T-SQL
yes, of courser you can!
It doesn't matter how your data is structured on your database, if you manage to build a query to display it, SSRS will be able to read it on a DataSet and use it on the report
A SELECT statement is sufficient. A view or a stored proc are preferred. It's hard to imagine a SQL database that doesn't support those options.

how to write from crystal reports to a DB

I need to kept track of every time a report is printed on crystal.
If I can write some information from crystal to a data base this may be possible, but I'm almost sure that this can not be done.
Please let me know your thoughts.
Thanks
I suggest modifying the (C# ?) programs you are calling Crystal from, to write the desired information to the database.
Crystal Reports itself can't log this information, but if you were using one of the vendor's scheduling / distribution tools (such as Crystal Enterprise) then they would log this information inside their own databases.
The only way I can think of would be to set your report datasource to a stored procedure and include an insert statement to a log table. Generally I would say 'Reports are for reading, not writing to a database' but you asked.

Database portable Jasper reports

I use iReport designed jrxmls for Jasper reports
I have done database specific functions and DML queries like date format, string concatenation, concatenate symbol(||) etc.
My Question is, "Is there any way or plug-in to make the jrxml files to be database portable?".
Thanks in advance,
Kalaiselvan.
You are using JDBC, so your reports are already kind of portable unless you use some vendor-specific SQL functions or features.
You could write your OWN datasource in JasperReports (do implement JRDataSource interface), and provide your own layer of database independence. It shouldn't be that hard.
Each report is filled from a data source like a database, but you knew that. Since the report is filled by fetching data from a specific database with queries to specific rows, if you want to make your .jrxml files database portable (or your .jasper files for that matter) you will need to make your data source and sql queries parameters which are fed into your report file from your program. It is pretty straight forward to make the data source and SQL query a parameter using iReport.

Share functions between Crystal Reports without Crystal Reports Server?

We have several reports that do the same formatting operations (e.g. displaying "PASS" or "FAIL" if a value is within a particular range.)
Without Crystal Reports Server, is there a way to share functions between reports so that they do not need to be duplicated? I understand I could do this with a user function library but I would prefer not to port all of the crystal functions to UFL.
Using Crystal Reports 2008.
The only other option I know would be to port the functions to Stored Procedures or Database Functions. This is actually a better implementation (in general) as the Crystal Reports Client Processing is much slower than the SQL Server. so your pass or fail would become a function or stored proc or even the use of a case statment in the Select Query.
Good rule of thumb with crystal reports, flatten out the dataset as much as possible before returning the dataset to Crystal. This will allow you to use the power of the Database server before relying on the Client to handle the processing. The perfect example is to return 1 million rows to the client but flatten it out to only displaying totals from 5 groups. Crystal will choke on the fetching of 1 million rows before it can process the totals.
I recall that earlier version of CR support the notion of a shared repository in addition to the repository that is available via BusinessObjects (nee Crystal Decisions) Enterprise.
I haven't found any mention of similar functionality (meaning a shared, non-BOE repository) in version XI+.