Alter appearance of data after report is generated - reporting-services

I have a detail report with interactive sorting on the headers.
After the report is refreshed, the user would like to highlight some rows of data that appear throughout the report in order to see if patterns are detectable.
Say, a vendor name that appears on multiple customer rows might indicate that they all shopped at the same vendor before their credit card was compromised. Highlighting that vendor name might make it easier to spot whether this is a problem vendor. They won't know what they want to highlight until they start perusing the data, so a run-time parameter won't work.
In the past I used BusinessObjects which had a control that could be used to trigger alerts (formatting changes).
Is there a way to hack such a thing in SSRS?

Is there a way to hack such a thing in SSRS? No.
But, if the report user wants to export the report to Excel, then they can do whatever they would like to that spreadsheet afterward. They just need to know that any changes will not be written back to a data store any where as a result of that.
SSRS is purely for reporting data, not altering it, or annotating it. Changing the report output in Report Manager is not possible, either.
If you need to be able to highlight data in a report at run time, you can do that via a combination of properties and expressions in the RDL. Your business users would need to tell you what the rules for that are, then you can make the changes in what ever dev tool you are using to create reports.
I hope this clarifies some things for you.

Add a parameter that is populated with Vendor names.
Then in your rows, right click and go to TextBox Properties. Then click the Fill tab on the left and next to Fill Color press the fx button to add code:
=IIF(Parameters!VendorName.Label = Fields!VendorName.Value, "OrangeRed", "White")
This will highlight the cell OrangeRed if the VendorName in this row matches the one selected in the parameter.

Related

Custom properties for reports in SSRS

I have a customized report sitemap for SSRS (which is a report itself) and currently put custom options in the report description. I then use those options in the sitemap to filter reports accordingly.
I was wondering if I could add columns to the ReportServer.dbo.Catalog table?
Or is there a way to add custom properties to the report settings (as in picture)?
Altering the Catalog table in the SSRS database would more than likely break SSRS. At a minimum, it would stop you from being able to upgrade to another version in the future without a whole lot of pain.
If you really need to add custom properties to the report catalog, host your reports in SharePoint. That way, you can add additional fields to the report list it creates all day long, and you won't break a thing.
I have done this, it's nice. I have added a new field to hold the technical description of the report, leaving the canned description field for the business description. With SharePoint, you can all sorts of additional fields, for all types of data. If you know anything about the SharePoint database, you can query that too to pull the addition data into whatever you need.
This may not be the answer you want since the move to SharePoint may not be an option for you, but it is a viable option none the less.

Reporting in MS Access

I am looking for some advice on strategically embedding reports in forms to allow for optimal end-user usage.
In particular, i would like to know if it is possible to have a report embedded into a form but so that the header of the report changes as you scroll down to show the title of the current type of record you are looking at.. As an example, i have a report with about 1000 lines of information relating to 5 category types.. I made a report so that the category type is Always in the header of the report. Is it possible when viewing this report embedded into a form to have this functionality??
Thank you,
A
A quick Google search indicates that Microsoft does have an ActiveX control available which does allow you to embed reports inside forms. It's called the Microsoft ActiveX Snapshot Viewer. Most of the search results indicate that there are vulnerabilities with it, which is often the case with old ActiveX controls.
Even if you do utilize it (which I do not recommend), you're going to run into a problem where you won't know what category the user is viewing, since I'm not aware that Access gives you any way to get that information.
I suggest you use forms instead. Reports are for printing, and in my opinion, for nothing more than that. A preview should allow the user to see very quickly what it will look like, and then print it.
It isn't that hard to build forms that allow users to search/filter. I find that when I build proper searching/filtering forms, my users don't need reports unless they really do need to print something. Forms can be built as read only so they can't change data.
Be aware that even with forms, I don't think it's possible to know what the user is viewing. If they click into a record you would be able to use the OnCurrent event to know what record they are viewing and could likely derive the category from that, but that requires them clicking around in forms. A much more standard way of doing this would be to give them a dropdown which would allow them to select a category and apply a filter to the form (or a subform) to view only that category.

MS Reporting Services mark as read checkbox/link

I have report with some messages, and I would like to know is there a way for RS to have checkbox or link which will, when clicked mark message as read, or in other words, inserts/updates isRead column for that id?
Is this even possible?
Is it possible? Yes. Is it easy? Not a easy as most things in SSRS. Will it be elegant? Probably not.
You could create a check box icon which would link back to the report or some other action on the server. This would need to be set to handle a parameter indicating the checkbox clicked. Build a stored proc or other mechanism in the report to catch these clicks and make your column changes.
The biggest problem with this approach would be that, by default, the entire report would need to rerun and reload. You might be able to get something working that keep this smaller, but I'm not sure how.
My advice: don't do it. SSRS isn't designed to support this sort of interactivity with the data source. You'll be fighting against the tool. Look for another interface for this.

Dynamically loading SubReport data in SSRS

This is in SSRS 2008.
I've created a report with a tablix, embedded in the tablix there is a subreport. This subreport contains a lot of information (and I mean a lot – it takes more than 45 sec to load it).
I don’t want to show it, or to be more precise – to process/load the data when the report initially runs. Note that I dont want to just not display it - because then all the data is still processed at initial load time.
Instead, I only want the subreport to be processed (and the data pulled down), individually, when I display it (e.g. clicking a + sign to toggle it, or any other option such as clicking an image/ link, while staying in the same report). I also don’t want to open the subreport in a different tab or something like that....
Does anyone know a solution? Maybe there is an onLoad method, dynamic subreport or something like that?
I tried looking into the DataElementOutput attribute, but that's readOnly... anything else?
Before you jump through a lot of hoops to implement a workaround, have you analyzed the execution plan for the query which is delivers the data for the subreport? If you haven't, it's worth it to see if performance can be improved by adding a covering index which will help the query optimizer to deliver the data quickly.
Hope this helps,
Bill
So, as it turns out, the problem was in fact because I had the subreport repeated for each row in the parent report. Thus, the subreport was called numerous times...
And according to MS, there is no way to dynamically process individual subreports. Had to solve this issue by splitting out the subreport (at least the data-heavy parts) to a seperate page. :(

Is there a way to change the sql reporting chart type and sub type at runtime?

Is there a way to change SQL Reporting "chart type" and "sub type" at runtime?
I'm working with a .rdlc report and can't seem to figure out the way to change this at runtime. I don't have the "Expression" ability in either of these fields.
Looks like it may not be possible until 2008: Microsoft Link
Your .rdlc file is where everything is defined about your report, including report type. So in cases where I want to change something about the report, I just modify the rdlc file using my favorite xml editing method (XmlDocument, XPath, etc.). You would just modify your RDLC file on the fly to change the report type, then display, or save, whatever.
I did this to allow users to set their own report colors, for example, since those are defined in the rdlc as well.
I am trying to do this exact same thing. I have a set of measures that are shown and then a chart underneath that will show only one measure at a time, depending on user input (which of the measures they wish to see in chart form). However, certain measures are better as columns instead of lines, so I'd like to change the chart type at render-time.
My initial idea is to overlap two charts and set their visibility opposite of each other and according to the user dropdown input. Seems like there could be an easier way (if that idea would even work in the first place?)
Thanks.
I'm using 2008 and it is not solved there as far as I can see. There are so many options for chart type and then even more on subtype, I wouldn't want to have to render them all and then show or hide the right one.
I'm wondering if there is a way to parse the XML of the .rdlc and feed it back to the report viewer without having every user getting there own new modified version of the actual .rdlc file.
On a side note, MS just released a new charting package (from the acquisition of Dundas). Maybe I'll dump the report idea and go with the mschart server control.
One possible solution could be to generate both the charts you wanted and then hide one of them based on your requirement.
Think multiple Values and Visibility. If all other variables are constant (i.e., category, series, etc), simply add a Value for each of the desired chart type, and use a parameter to control value visibility. Elegant and simple.