i am presently working on a project to generate invoice reports in visual studio 2010.
I am confused whether to use crystal reports or reporting services(rdlc) to generate reports.
The reports are required to be generated for a manufacturing unit(print, save all options are necessary).
Which one is better to use as per my needs?
If you're printing invoices, I would consider using Crystal Reports first. It will allow for easier formatting and viewing within a Windows app.
If you know Reporting Services REALLY WELL, you can accomplish what you're wanting to do, but if you're new to both, I believe you'll be happier in the end using Crystal Reports. You will get better, easier results with less effort.
Your question is open for debate, so this is only an opinion.
I would go with the local reporting services (RDLC) and only use the full blown report server when necessary. You have a viewer for RDLC with options to print and save in various formats and you can easily stream the reports to PDF.
The version of Crystal that comes "stock" with VS is limited and the full versions are a bit pricey for my taste. I have been able to do everything I have needed with reporting services.
Please take a look at Windward Reports. It will save you a lot of time compared to Crystal or SSRS. And you can do more with it.
The unique difference is with Windward you design the reports in Microsoft Word, Excel, or PowerPoint. So it's a very powerful easy to use design tool you already know. And because Word/Excel/PPT are free-form, you can do most anything for your final report.
I'm going to disagree with everyone (so far). I am not familiar with Windward Reports, so I won't comment on that, but I am familiar with Crystal Reports in VS2005. It is clunky, difficult to use and comes with more headaches. I learned Crystal Reports using an Enterprise version (which is very expensive) and having to work with this stripped down version is a nightmare.
I have completed a couple of different reports using Reporting Services and Stored Procedures and it is a walk in the park compared to doing the same thing using Crystal. Even if you don't know Reporting Services all that well, I'm sure you'll be fine. When I was stuck, I was able to find answers here on Stack Overflow. Any one of the Step by Step books are helpful as well.
Related
First of all I want to say hi to the programming community, what I am looking for is a way to generate a report from my Windows Forms Application in word preferably, this report is basically a list of pre-configured days in a tour creation software I am creating.
I have searched everywhere and I cant seem to find information on how to start creating the report, I have all the information saved into a database, I just need to be able to get this information into word and ordered as it should be ordered.
I just want to be pointed in the right direction so I can research on it even further.
The exact thing I want to create is a word file that I wish I could share here so you can actually see what I mean.
Thank you for all your attention and help if possible.
I can point you in the right direction. Word documents are stored in a format called OpenXml which can be created and manipulated without actually using Word directly. That's good because you don't want to deal with code that actually starts an instance of Word and automates it (Interop.) It sort of works but it's not something I recommend dealing with ever.
OpenXml isn't fun either, but it's better. You can create your document "normally" using Word, save it, and then have your application use it as a template, opening a copy, populating some data, and then saving it.
Here's the reference for OpenXml with Word. I'm not saying it's pretty. It's not. The documentation is lacking. This page on adding text isn't linked from the previous page, even though many other topics are.
There are some nuget packages like this one that can help.
I once did a POC that did exactly what you're describing by opening and altering a document used a template using OpenXml. I'll see if I can dig up the code. But this is definitely a good direction to look in if Word is an absolute requirement.
This is a long shot, but can you output in HTML? If you can that's an even easier alternative.
Can you use Excel? That's also OpenXml but there's easier-to-use tools like EPPlus that simplify dealing with it, because it's not just the friendliest thing to work with.
An option that I would suggest is Crystal Reports. You can download the Crystal Reports add-in for Visual Studio for free from here. Crystal Reports is an easy way to perform reporting from various data sources including SQL. There are also a lot of free tutorials online for learning how to use CR. The syntax is a little strange, but it is easy enough to use.
The add-in allows you to create reports for your application and also build applications that can display, print, and export Crystal Reports.
You can export reports to .RTF (Rich Text Format) files. MS Word can open, edit, and convert RTF documents. It does a fairly decent job, but special formatting might take some work. This route is a ton easier than trying to write XML or anything else. I've written several reports designed for export to RTF. My boss runs the report, exports it, then edits it in Word. He loves the reports.
If you are planning on developing a lot of reports, purchasing the full version of Crystal Reports is well worth it. I believe they are on version 2016 currently.
If you do want to deal with automating Word, Microsoft's guide "Automating Applications Using the Office Object Model" Word-specific task content is here: https://msdn.microsoft.com/en-us/library/78whx7s6(v=vs.80).aspx
A larger example: https://support.microsoft.com/en-us/kb/316384
To begin, simply add an assembly reference to your project file for the correct Office Object Library (example: "Microsoft Word ##.0 Object Library"). Note that you must have Office installed to take this approach.
Good luck!
I asked a similar question yesterday. I have a large MS Access application that I want to convert into C#. On the whole I'm doing ok, but it's become apparent to me that I've got problems when formatting reports. Yesterday I was asking about changing a report title at runtime. I came up with a workaround for that. However, MS Access allows you at runtime to create, move, hide, reveal and resize report controls. In particular, my MS Access application constructs barcodes in reports at runtime. In the report I have an array of lines that my code places and resizes in order to construct the barcode. As far as I can see, this is completely impossible in a Visual Studio report. Do I have any options here? For instance are there any competent 3rd party solutions?
You have a couple of options.
You can use a 3rd party custom report item like Aspose Barcode for Reporting Services.
You can dynamically generate an image with embedded code.
Note: I've never attempted the 2nd option, but it seems like it has potential to be an easy way to dynamically generate images for a report...
In the enterprise world it seems that if you want to display a report, you have to use a reporting framework. You name it: Crystal reports, Jasper reports, ActiveReports, SSRS. But I fail to see why, in 2015, you should prefer a reporting framework over generating an HTML page server side. In a .NET application, for example, what is the advantage of using such framework over a simpler approach of using razor to generate an html web page? That page can be then printed to generate a pdf.
It seems to me that there is a perceived difference when the word "report" is mentioned, that for some reasone requires a separate framework.
Of course usually a reporting framework offer additional features, like a report viewer, but in many cases it's used just to generate a pdf. The advantage of using html+css+js over any other proprietary language to describe a report are to me uncountable: more maintainable, easier to read and write, html is a standard understood by anyone, and there is no need to add another piece to the technology stack of your web service.
I understand my question up to now can be seen as not conforming to SO guidelines, so I'll try to make a more precise question rather than a rant against the enterprise world.
Question
Let's say my use case is to generate a report like this one:
inside a page or an iframe. What are the advantages of using, say, Crystal Reports or ActiveReports, in an ASP.NET web site instead of using Razor rendering as I do for all the rest of my service? Is there anything I should be more careful when generating reports compared to normal reports? If the bonus I get is that crappy top bar at the top of the page, well, I would gladly get rid of the pain of using a Reporting Framework.
So you generate an HTML page. How are you going to print it? Are you going to pull in a library to do it? What's your strategy for properly styling it and making sure that navigation elements don't end up in the printed report? How are you going to support exporting to Word, Excel, CSV, or PDF?
Reporting tools often take care of those details for you.
That said, in my own applications I usually generate PDF's with Razor PDF (and I tell people to print the PDF), generate Excel exports with EPPlus, Word documents with DocX, and don't offer CSV as I hate that format. It means I typically have to redo every single report for each format, but I like the control I get over the output.
I have created one Windows Forms application with C# and MySQL (using MySQL Connector). Now I need to create some reports from data in my MySQL database, and print it out.
I've tried Crystal Reports, Visual Studio 2010 reports and so on, but all seem complicated to use with my entity dataset.
I'm using LINQ to get queries. Is there any way I can create reports like HTML format and simply print them through the application? Someone asked me to send my data as RTF and straight without saving or printing it, but I cannot find a good tutorial for creating RTF like that.
ReportViewer is a freely redistributable control that enables embedding reports in applications developed using the .NET Framework. Reports are designed with drag-and-drop simplicity using Report Designer included in Visual Studio 2010. The ReportViewer site will give you all the necessary details. It may be a bit complicated, but it will do what you want. Reporting is a little difficult to understand anyway for a novice user.
I hope you want something like below.
I am creating a windows application.
I am now concentrating on the Reporting Module of my Application.
I have two ideas to do this task.
Either through Crystal Reports or using the Windows Forms and placing the Data Grid View.
Can any one suggest me which option should I choose?
Also the report should be able to Export in the Excel and PDF format and even it should be Printable.
I heard from others that Crystal Reports gives some problem at the time of Deployment.
Please suggest me. I am very much confused.
Thanks in advance!
Visual Studio 2005 and later comes with Microsoft Reporting tools that are so nice and, for me, better than Crystal Reports.
Update: You can install the Microsoft Report Viewer Redistributable 2005 or 2008.
Yes, I would advise not to use Crystal Reports (or Crusty Reports as they have unfortunately become known as in my department). We have had a whole load of problems from reports being corrupted and requiring recreating to simply being clunky and slow.
As our applications are being upgraded we are moving over to MS Report Viewer, which is far better. You can export to Excel from the report viewer.
Use SQL Server Reporting Services (SSRS). It gives you all the same functionality as Crystal Reports and will let you do your exports into whatever format you like (pdf, csv, txt, xls, etc.) right out of the box. You may run into some problems when trying to export to xls/csv when you are using embedded tables in your reports but microsoft is supposedly fixing this in the next release.
Try generating your reports in XML. Later you can decide/change which tool/technology you want to use, without doing much modifications. :-)
You should check out DevExpress Reporting controls, they rock, and are very easy to use. They also allow you to print to various formats like PDF, they also come with an end-user designer.
DevExpress Page
I second the Microsoft Reporting tools. I am using them extensively in my WinForm App and so far so good.
You can specify whether they processed remotely or locally before deployment.
Here is a link to get you started --> http://www.packtpub.com/article/creating-report-with-visual-studio-2008
I suggest you Reporting Services (buid with sql server).
you can develop with VS and publish your reports to Report Server.
Recently abandoned Crystal Reports myself
because of the large number of bugs and crashes
in favor of FastReports. They even have a converter that restored my old reports that were built on Crystal