Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

XSD data source? Possible to run report independent of application to which it's tied?

Status
Not open for further replies.

zactruelove

Technical User
Dec 19, 2013
3
0
0
US
I've been tasked with taking an existing report that runs from within an application and configuring it to run independently of the application so suit distribution needs. While this doesn't violate any licensing terms, we don't have an active support contract with the vendor any longer, so I'm unable to get any assistance directly from them.

The report accesses data from a single MS SQL Server database. However, the datasource of the .rpt is an .XSD file. I've never worked with Crystal Reports from a .NET development perspective, which is what I'm assuming this relates to, and I can't find any meaningful SQL information within that file. The report is comprised of two dozen subreports. If I attempt to just run the .rpt outside of the application, only two very basic queries (returning minimal useful information) are sent to the SQL database (verified with Profiler). None of the subreports (all of which use the same .XSD datasource) make any SQL calls. Also potentially worth noting, none of the subreports are linked to the main report...all data is passed around via shared variables from what I can tell.

Based on the limited information above, does anyone have any suggestions on how I should proceed? Is what I'm attempting to do even feasible, or is it more likely that the meat of the information I need is held in the actual code of the application?
 
What I'm trying to get around doing is running a SQL Profiler trace against the report in-application and then trying to extract the queries and match them up to the corresponding subreports.
 
Crystal reports supports PULL and PUSH method. Most of the time you will use PULL method - your reporting software will provide the database connection information and ask Crystal engine to retrieve the data from the database. However in some cases especially when you have a lot of subreports PULL method will be slow because it will call the database 1 time per report/ subreport. In your case if you use PULL method there will be at least 25 calls to the database.
With PUSH method your reporting software will retrieve the data and will pass it to the report for visualization. It is more complicate to handle on the application side but it pays itself with much better performance. My guess is that in your scenario your current software is calling a stored procedure, which returns multiple recordsets (up to 25). Then each recordset is passed to one of the subreports. It is possible that the same recordset is used in multiple subreports but each subreport is using different fields. This approach will allow you to share the calculations inside the stored procedure and to hit the database just one time (instead of 25 with PULL method)

If you are going to use 3rd party software you need to contact the vendor and to check if the PUSH method is supported. If your current software doesn't support PUSH method you can check at least one scheduler listed there supports PUSH.


Viewer and Scheduler for Crystal reports, SSRS and Dynamic Dashboards.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top