C# ReportViewer Control Alternative - c#

Good day,
I would like to know if anyone can suggest an alternative to Visual Studio's built in report Viewer control.
The simple reason being that we work with large amounts of data and the built in report Viewer can't hanndle the load (to be more specific we use reports which relies on close to 30 000 records). SQL Server Reporting Services (SSRS) is not an option since we use both Oracle and SQL Server Databases depending on the environment. We did implement a "batch run" solution to our current system where we only handle an x amount of records at a time but this solution doesn't work with the large amount of records we now use.
For more info we currently rely on rdlc files for your individual reports and based on which report needs to be generated the Database query is constructed and executed and the report viewer is then used to show the results. (The real problem is the ReportViewer Control it simply can't handle the sheer amount of data).
The alternative can be a free or pay to use solution.
Any help would be appreciated.

I can recommend Fast Report. I've worked with the VCL solution for years and if the .NET version is anything close, it's worth a try. You can download a trial version from their website afaik.

Related

Best method for generating documents/reports in visual studio

I’m looking at options to send user input data from my application (mainly strings and doubles) into a stylised document (such as a quotation or invoice)
I have done quite a bit of research however am even more confused in which method would suit me best, so am looking for some input, as which direction to go, I have found some of the following options:
Crystal Reports - although I think this is more for reporting data from SQL databases, not to mention it looks as though people struggle with running there applications in different environments on different machines.
MajorSilence Reporting (formerly FyiReporting) - a Crystal Report alternative that’s open source so would alleviate a lot of problems again though I think it’s for databases and hasn’t been worked on since2015
Word Or Excel Document - Seems I would have to have a template file of some sort and I did want to control as much as I could in program not to mention it just seems kind of unprofessional in a way when used by other users at my work.
PrintForm - where I print direct from a form in the application while hiding the buttons but this may be hard to do over two pages.
If anyone has any input on the above or new ideas or even if I’m on the correct track to how this is usually done, I would be very appreciative.

(Change Datasource) Prompt for Server and SQL Server database within Crystal Reports Viewer, Visual Studio (C#)

I'm using SAP Crystal Reports 2016 with the Visual Studio plugin, along with Visual Studio 2015.
What I've done is created a simple MDI application using C# which contains multiple Crystal Reports Viewer forms which open an embedded report in a child window when the menu item is clicked. This application will sit on our development server and be used to run reports against client databases that get sent to us with problems.
Here's the issue. We've got multiple instances (and versions) of SQL Server running and we are getting multiple test databases daily which of course will be named differently. The reports are looking for a specific database only.
What I would like to do, is either on form load or via a button click, be able to have a box prompt the user for server and database name. For example:
SQLServer\SuperCoolInstance
My_Cool_Database
The report would then connect to that database and display relevant information.
Any idea on how I could accomplish this? Second best scenario would be to have something like an XML file that contains the server and database and the program looks at that when launching. Even though we'd have to edit the XML whenever we wanted to change datasources it would be something! I wouldn't know how to pursue that avenue either though.
I would think that this must be possible because at a previous company that I worked for, they actually sent compiled Crystal Reports (in exe format) to clients to run on THEIR systems and it looked to an already existing XML file.
Thanks very much in advance for any ideas or guidance.
Cheers.
EDIT - I thought I should point out that all the SQL Server databases that this would run on would have identical schema but different data obviously. Not that this probably matters for this particular question, but just in case. :)

Crystal Report Viewer Failed to Open Connection

I am attempting to create a simple Crystal Reports Viewer so we can view already built reports on multiple machines without needing crystal installed.
We are using Sage 100 Contractor which utilizes the .dbf format for its database.
I understand the basics of loading a report in the viewer, however the issues I am running into come from the fact that the data isn't always embedded in the reports. For certain ones I need to allow the users to select the database to run the report off of.
Example database location
C:\MB7\Sample Company
I have tried multiple different things, but I am sadly just not correctly understanding how to properly set the DataSource location before I load the report in the crystalReportViewer module.
I can give snip-its of my code, but that won't really show anything as nothing I've tried has correctly set the DataSource.
My guess is that your code didn't succeed to set the database connection. Are you able to run the report on your development machine ? If yes then, the problem is related to the ODBC DSN on the other machines. If you are not able to run it even on your machine then check if you are able to run the report form the designer. It will help if you share the code, which is setting the connection.
There are cheap tools on the market , which will be able to do what you are looking for a fraction of the development price. Here is a link to a tool , which you can use for free:
http://www.r-tag.com/Pages/FreeCrystalReportsViewer.aspx
Even if you decide to continue with the development of your tool you can check if the one above is able to handle the report. This will be an easy way to find if the problem is in your code or it is related to the DSN.

Crystal Reports in MVC

Ok, so I'm building a kind of reporting central for the company I work at and the easy part was building a web based file browser, now I'm moving on to the report aspect of it and to start it off, I'm integrating Crystal Reports.
I've already gotten the files from the SAP website for them, but I'm encountering a couple problems,
First off, all the examples I've found make it so that you have to define the data source/database, and include log in information for it in the code. This is a problem because we have a LOT of crystal reports, with a lot of different database references, so I can't just use one for all of them. In fact, there are reports that we use that reference multiple database at the same time.
Secondly, all the examples I've found make it seem like you have to have a specific page created for each report. My goal is to be able to have the report link as a variable and have one page for all of the reports we have.
I looked at everything I could find yesterday and I couldn't find what I needed. I'm also wondering what on earth the ReportClass.Load function even does. It was in every example I could find and I didn't notice any explicit difference in the ReportClass I had when I used it.
While searching, I found an answer that suggested building a web forms application that would build the Reports, and then use an I-Frame to grab it, but that's something I want to avoid.
So in review:
1) I need to build Crystal Reports without having to reference the Database
2) I need it to be flexible to a variable Report by supplying just the path to the .rpt file
3) I would like it to be in a single application, in MVC, and avoiding IFrames
Thank you so much for your help!!
EDIT: I found a solution that works for me. Instead of using a RAZOR view, I used an ASPX view, which has the Crystal Reports Viewer Tool in the toolbox. In order to make it variable I used the ViewBag.
Controller Code:
[HttpGet]
public ActionResult Viewer(string Path)
{
var sessionID = Session.SessionID;
ViewBag.Path = newPath;
return View();
}
ASPX View Code:
<% Report.Report.FileName = ViewBag.Path; %>
<CR:CrystalReportViewer ID="Viewer" runat="server" AutoDataBind="True" GroupTreeImagesFolderUrl="" Height="100%" ReportSourceID="Report" ToolPanelWidth="200px" Width="100%" />
<CR:CrystalReportSource ID="Report" runat="server">
<Report></Report>
</CR:CrystalReportSource>
A "similar" (not exact) question was asked here. Hopefully that can get you down the right path.
1) I need to build Crystal Reports without having to reference the Database
Have you considered building a data warehouse for your reporting and analysis needs? A data warehouse has many benefits over a traditional reporting structure especially when drawing data from multiple sources.
In regards to point 2 & 3 have you considered that crystal reports may simply not be the most ideal reporting solution?
Crystal reports is a powerful tool but honestly I'm not a big fan of it when it comes providing reporting intelligence over the internet or an intranet.
Having you considered switching tools? For example http://www.tableausoftware.com/ provides some excellent data visualization tools and IMO is a much better tool for the job you are describing.
Note, that this is simply one tool (as there are many out there), but one that I have had some experience with and it exceeded our expectations especially when sitting on top of a data warehouse.

Reporting Services 2005 Report with Disclaimers page after each section

Details:
I am using Reporting Services 2005 in a C# Application with Visual Studio 2008 to generate reports based on a SQL Server 2005 database. The application views the report locally using the .net report viewer and no report server is used. There is a page break in the report after each person. I am currently using just one report table for the .rdlc file to generate the report.
Question:
My client wants to put a disclaimers page after the grouping has ended for each person listed on the report. The client wants to be able to adjust the disclaimer page on the fly through the user interface, before running the report. Please offer suggestions on how I can accomplish this.
Any help is appreciated.
Thanks,
Jeremy
An alternative solution would be to create another report for the sole purpose of rendering the Disclaimer content. The Disclaimer report can then be embedded (via a subreport: see http://msdn.microsoft.com/en-us/library/ms160348.aspx) into your existing reports thereby allowing you to dynamically modify the content of the Disclaimer separately.
You could store the actual Disclaimer content within a SQL Server Database table and update it via any number of the typical simple standard .NET controls that are at your disposal.
This has the advantage of no character restrictions as per the prior recommendation.
Do you mean they want to adjust it on the fly PRIOR to executing the report or after?
If before, could you not use a parameter, with the disclaimer template as the default value and submit it to the report when they are done? You could then put the parameter in the group footer.
If after then...good luck :) The report is rendered into whatever format chosen. If you are retrieving the report in html and have the rendered file perhaps custom parsing could be done but seems a bit naff. Been a while with SRS, hopefully the param could work for you.

Categories