Custom properties for reports in SSRS - reporting-services

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.

Related

Alter appearance of data after report is generated

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.

Group multiple reports into one in SSRS

I'm new to SSRS and I need the ability to group multiple reports into a single report. I've searched around a lot but not found much. I currently have two reports (more to come) that users need to be able to view/save individually. The users also need the option to view both those reports as a single report. Essentially just a simple concatenation. Eventually, there will be several reports grouped and the user will be able to render all of them for viewing online or saving as a single PDF.
I tried two sub-reports in a master report but it causes a lot of hard to diagnose page-break problems. I was wondering if there was a more straight forward option here. Thanks.
Combining all the report elements into one report would work, but the users also need to be able to view them as individual reports as well. To avoid having to maintain both an master report and multiple individual reports, you have a couple of options:
Create a master report and insert the individual reports as sub-reports. If you get page break issues, check the report page height and widths versus the subreport container height and width.
(If you have SQL Server 2008 R2 or later) Consider publishing your individual reports as a set of Report Parts. You can then reuse these in a master report.
I'm not a fan of subreports either, they work well in Crystal but are not really necessary in reporting services.
Why don't you just combine the reports into one? Copy all the tablixes / other objects from each report onto a new report. You can select all and copy and paste very easily, you just need to set up the parameters, datasets and data sources if they aren't shared.
You can set pagebreaks to occur after each tablix or a good trick is to use rectangles because they will let you control page breaks in their properties.

MS Access - Adding unbound fields at design time

I would like to create an Access report in which the record source is created via ADO code and then set as the record source for the report when the report is run. The problem I am running into is how to add fields to the report since the recordset is bound to the report at run-time and not design time. Is there way I can manually add the field and make sure the field name matches what will be provided in the recordset field collection? Thank you.
The standard solution to this problem is to add all your fields in design view, up to the max available, and hide all of them, and show only the ones you need. Michael Kaplan explained that when he designed the Access Replication Conflict Resolver, this is the approach he used, precisely because adding controls at runtime quickly uses the lifetime limit on the number of controls on a form (700+, but I can't recall the exact number).
It's also just a bad idea, as #Jeff O says, to do design changes at runtime. For one, it means you can never distribute an MDE.
Several ways to do it, but all of them have their issues. create-dynamic report using vba
Other questions have found the folley in working in design mode programatically.

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.

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.