Reportviewer Paging - reporting-services

I use ReportViewer in Local processing mode and obtain data with linq-to-entites (IQueryable<>). The data also contains images, which are rendering in the report inside a table. The resulting dataset has about 30000 items when run on a sample database.
Even though the report is divided into pages, the ReportViewer still loads all records simultaneously. I changed image source from [Database] to [external], and implemented image loading through a service (.ashx) to speed up the SQL query. Still the report viewer loads all images (not only those for the displayed page) and only than rendering report.
Do you have any idea how I can increase performance for my report? Why doesn't the report viewer use paging, but loads all data instead? Maybe I'm doing something wrong? How can I make reportviewer to load data page by page.

From the MSDN page on When to Use Local Processing
"Because all data and report processing is performed on the client, you might encounter performance degradation if you attempt to process large or complex reports and queries."
Source: http://msdn.microsoft.com/en-us/library/ms251704(v=vs.80).aspx
Possible Solution: Try adding a Report Filter to break up the result set in a logical manner.

Related

SSRS - simulate slicers using filtering

I've seen websites explain how to use a tablix to list possible parameters for a report (another tablix) to simulate slicers. This technique relies on passing parameters and the report being refreshed.
The issue is, this is slow for where I want to use it. I am wondering if there is a way to load all the data for my report and then use a similar technique to create a slicer to limit the data using the filter on the dataset.
Another option I thought about was simply hiding the rows that didn't match what was selected in the "slicer".
A good way to speed up the processing time is to use caching. Go to "Manage Processing Options" in your report manager (or SharePoint, depending on what you're using). Set it to use cached data. Play around with the duration and cache refresh schedule settings to suit your situation.
You may also benefit from applying your parameters as Dataset filters as opposed to passing them into the query. This can help ensure that a cached version of the report will be available. It really depends on how big the dataset is and how many combinations of parameters you're trying to allow.

Executing an SSRS 2012 report cause the browser not to respond

I am using Dynamics CRM 2013 on premise.
I have built all the reports based on stored procedures in SSRS.
one report however, that has no issue with execution definitions, permissions or what ever,
once executed causes to browser to crash (any browser, i tried FF, Chrome, IE9 and up, )
it seems the problem is not a report execution problem but a report rendering problem for this specific report.
I cannot cache the report or make a snapshot of it, as the values of the reports also depends on the user running the report (among other parameters user-defined) and each user should get a different result. - i have more than 400 users.
I have tried searching for any one who had face this kind of issue and reported on it but failed. hence decided to post this question my self.
if anyone has any idea, please share.
thanks
Have you enabled tracing/logging in SSRS? http://msdn.microsoft.com/en-us/library/ms156500.aspx
You might turn on verbose logging while trying to run the report to see if you can get more helpful information.
If you write code, you can write a .NET application that calls the SSRS web services to render the report. Doing that will help you know for certain whether it's a browser rendering issue since you can get back the report as a byte array and save it to disk as Word, PDF, etc.

SSAS Tabular - Data is stale

I have a tabular model that I've processed and deployed.
I'm having a problem getting SSRS to reflect the newly deployed information. I have a shared Dataset accessing a shared Data Source. When I run the MDX in the query designer of the Dataset, the correct numbers are returned. When I run the report, however, the old numbers still show. I've tried deleting the .DATA file but it didn't help.
EDIT:
I've verified that the problem is in the SSAS database itself. I queried it with drillthrough from SSMS and saw that it is returning rows that aren't in the source views any more. They used to be, but no longer.
This almost seems to be some crazy caching issue. I've rebooted and dropped/redeployed the SSAS database and no luck.
Any thoughts?
I would suggest a few steps.
Ensure you are connecting to the correct tabular model.
Expand the tables in the tabular model, and right click one of the tables and click "Process". Check all the additional tables in the model.
Change "Process Default" to "Process Full" (Process default does not always work correctly)
Click Ok.
You should now see the model process table by table.
I would close and re-open the report.
Actually I would completely ignore the BIDS / Visual Studio Preview pane as it is riddled with bugs and inconsistencies and proves nothing (assuming your end users aren't using Visual Studio).
Instead I would deploy the report for each test run to a test environment / folder on the host server (Report Manager / SharePoint). As well as being a realistic and meaningful test, this has many advantages such as being able to leave multiple IE tabs open with various parameter combinations set, then just refresh them after a Deploy to retest.

Creating and managing annotations in SQL Server Reports

I need to load SQL Server reports over the web and make it more interactive for a set of users by:
Allowing them to put up their annotations/comments on different visualizations being shown.
Track these annotations for each screen.
Is it possible with SSRS or any other visualization mechanism? Please let me know of any means to do it.
cheers
It sound like what you asking for is not SSRS as such: it's an interactive web page. by this I mean SSRS is output only, no data input.
So you want users to share comments on the
latest report execution? SSRS will render with the latest data by default so what 2 users see on different screens a minute apart will be different. How do you matchreport data and comments?
a specific execution? Look at report snapshots.
the data in any report execution? See my idea below.
My solution for "comments on data"... which assumes annotations are persisted in the database with the report data...
The Report Viewer control in remote mode with an ASP.NET wrapper to deal with user input (annotations) might do the trick. The report would display annotations. In SSRS the screen = the report so this captures one requirement.

Dynamic charts at runtime in SSRS

I need to create a report(rdl) in SQL reporting services 2008. In that I need to create in runtime. The report has chart. I will specify the type of chart, font, alignment and all those stuff in runtime.
Is there any option for using this in SSRS 2008.
An rdlc is just an xml file so you can manipulate it at runtime, it's not a trivial undertaking though. You can find the rdl spec at http://download.microsoft.com/download/6/5/7/6575f1c8-4607-48d2-941d-c69622e11c32/RDL_spec_08.pdf.
There's a downloadable example of creating an rdlc for a table and a matrix dynamically, as well as lots of other useful report viewer info at http://www.gotreportviewer.com/.
You can generate the RDL however you want, it is just an XML file. But you will only be able to run the report locally. To run on the server you would need to deploy the report first, as the server does not run the RDL files directly.
I suppose this is still possible, but it would be pretty slow, and the report would not appear in the report manager or anything before hand.
However, your probably making this problem more complicated than it needs to be. I have work on projects where we generated the RDL and deployed daily with a custom application, and it is almost always not worth it. There is usually a better way.
You can set almost all the parameters of the chart using expressions. The only thing that can't be set is the chart type, but there are ways to get around that as well. Like having all the chart types you need created on the page, but making all except the one you want visible.
Yes...
to do so, you will need to either have an existing rdl file to modify, or you need to completely generate it from code.
All the SSRS xml is stored in the database in a table called catalog. You'll have to use the GUID of that report to access it, or insert a new row creating a new report.
once you're done swapping out your report server xml, the report server will have a "new" report that you can then call via your web page, or via SSRS url parameters.
past that clean up the catalog table if you see the need to.
I'll be honest with you though, this is very far from best practice, best practice that I'm aware of would be to embed the data you need to display in your web page in the form of a widget.