Lately, worked on a project to create some reports. Chose to use SSRS RDLC (local processing report) and decided to explore the usage of objects as data source. I am very pleased with what RDLC has to offer. It is super easy to bind objects (dlls) to reports. With RDLC, you no longer need to publish reports separately to a report server. Instead, reports become part of application deployment. This certainly cuts down the deployment cycle time. ReportViewer control, ReportDataSource and ReportParameter classes are the main tools or libraries to interact with. For one single RDLC, you can work with multiple data sources and parameters. Parameters can be any data types. String array is used to pass values to a parameter for multiple selections. When pass in datetime as a parameter, you don't need to do string convertion, as long as the string is well-formatted. It is trivia, but makes developer's life easier.
There are many benefits of using objects as report's data source. You can re-use your existing data service classes intended for presentation layer to retrieve the same data. You can use nested objects for your report and sub-reports. LINQ becomes available to allow you further filter or join data. The amount of code in SQL stored procedures can be significantly reduced. Code is more unit testable. However, it took me a while to figure out how to update the data sources after made changes to my objects. You would need to re-compile the dll, and then go inside of the RDLC to refresh each data source. The top level refresh button in the Report Data View panel is not working.
SSRS is my favorite reporting tool comparing to others. I have years experiences in using other reporting tools, like Crystal, SAP BEx, Visual Composer. The built-in functions in SSRS are extensive and easy to use. I could calculate anything anyway I wanted and where I wanted. There are always some tricks you can find to get the job done nicely ranging from formatting, sorting to aggregations either at group or detailed level. These reports have the same built-in UI comes with the ReportViewer to allow export data in many format - PDF, Excel, Word...
Overall, this alternative way of delivering canned reports makes development and deployment life-cycle relatively simpler comparing to the traditional server-based SSRS reports.
learned to use a new reporting tool - PowerPivot to work with dimensional data. It's so easy to use. The slicers can be easily drag and dropped to the sheet. The built-in column-store index makes it runs so fast with a large data set. The PowerPivot can be published to SharePoint and can also be used as data source for PowerView - Microsoft's new visualization tool in SharePoint 2010 with SSRS SP integrated mode installed. This can be the next generation BI tool with high potential of high adoption. Will see.
ReplyDelete