SSRS Chart visibility based on data - reporting-services

I am currently trying to apply some conditional formatting to a report that will allow me to hide a chart when there is no data available. like here
The problem I have is that several charts are built off a single data set and filters are applied within the chart properties to set the content. In some cases these filters will cause the chart to have no data (e.g. if a store doesn't stock that product line).
I have tried the method I mentioned above, however I think that because my dataset does have data for the store (just not a specific product line) it doesn't hide the chart.
Any assistance would be greatly appreciated.
Dan

are you trying to filter out rows or entire tables?
if rows, you can set a row visibility expression - like IIF(Fields!hideme.Value is nothing, true, false)
or, alternatively, you can set a row filter under the group properties to do the same thing - select the column that is null that you want to hide when null. This is how it's going to work everywhere when setting visibility, tables/columns/rows etc.
hope that helps

Related

ssrs - embed html id, name or otherwise identify a table or element

I have a ssrs report server which generates reports, which I would like to embed into other pages.
I have found that I can embed the entire report in an iframe quite easily, but I would like to hide everything inside of this iframe except for the table I need. This requires setting an attribute in the table so that I can select it. Alternatively, retrieving the client ID of the table after the fact.
However, I have not been able to find a way to embed some kind of identifier into the tablix table such that it can be easily selected. Ideally I'd like to just add a name or id attribute to the table but this doesn't seem possible.
Is there some way around this?
I came across the same issue and use a report parameter as workaround. I created a new report parameter (under Available values > Specify values) with the following values:
'Label 'Value
=Tablix1 1
=Tablix2 2
Now at the tablix under Tablix properties > Visibility > Show or hide based on expression I added this expression:
=IIF(Parameters!ReportParamaterTablixChoice.Value = 1, True, False)
This tablix gets now only displayed if the user selects the value Tablix1 from the parameter. So basically you can see it as unique ID for different tablixes from which you can chose now.

Interactive Sorting in a paginated row group Tablix with Chart

I have simplified my problem as follows:
A tablix with 2 columns dataset: Code (a, b, c, ...), and Value (random < 100).
Make a paginating group of 5 rows from the detail, steps here.
Add an additional row inside the group, merge all columns, put rectangle to hold a Chart pointing to the same dataset. This is Chart1.
Add another row outside the group, to hold another copy of the exact Chart above. This is to later help the interactive sorting to work on the details beyond the boundary of the groups. This is Chart2. The final design will appear like this:
Create an interactive sorting for the column Code following this:
The final work shall look like this, where you can navigate the pages, while also have the 'sliding window' effect for viewing the chart, that is: Page 1 is a-e, Page 2 is f-j, etc.. Note that the interactive sort is also honored.
For simplicity, please download my RDL here.
Now, my problem: I have to make Chart1 to be on top of the Tablix1.
Doing so will make the column header of Tablix1 to be sandwiched between the Chart1 and the details. This will make the Interactive Sort to behave incorrectly, that each page have its own state of Interactive Sorting. How to solve this? Modified RDL here.
This link solves the question by doing a self referencing Drill Trough by the click of a cell or image. The Action will pass the parameter to toggle between Ascending and Descending sorting order of the Tablix.
Combining the above the solution with this other link, we can keep the number of tablix stays to one, regardless of the number of columns to sort.
Get the final RDL here.

SSRS Stop group in tablix being split across printing pages

I have a tablix in SQL REPORTS (SSRS) that has many grouped items.
It fits roughly 3.5 groupped item per page when printnig, however I dont want the groups to be split up over the 2 pages, I want a pagebreak to happen whenever the group needs to be split.
I dont want to have it 1 group per page either, I know there is an option for that.
At the bottom of the report builder, you will see two boxes, Row Groups and Column Groups. Select the Column Groups drop down, click "Advanced Mode" and then in Row groups highlight "Details". In Properties under the "Other" section, select "True" for Keep Together. and save. This should work.
Note: I know this is old hope this helps people starting out though.
Modifying the property Other -> KeepTogether of the outermost row group desired to keep within a single page worked for me using Report Builder 3.
My KeepTogether values for each Row Group
Notice in my example, KeepTogether is false for table1_Group1. I don't want to keep my entire dataset together. Instead I want to keep only individual groupings of that dataset together.
In order to see the Properties panel, enable the Properties checkbox under the Show/Hide section of the View tab of the Ribbon.
My View settings
Probably the best place to start is the group-level KeepTogether property.
Indicates whether to keep all sections of the data region together on
one page.
I have just worked through 3 similar reports that were all suffering this issue.
It was only when I marked the group row AND the detail row to get the report to force a page break and keep the pages together.
Interestingly, I can then set the DETAIL BACK to false and the report still functions correctly. I have no explanation as to why, but this was repeatable.
I am using SQL Server 2016 Report Builder (the red one)
I tried all options about that. When I have a more difficult group, it sometimes happens, that the group will be split across pages. Even though setting "Keep Together" property to True.
My solution is:
don't use multiple rows
use one row with rectangle
to rectangle import TextBoxes and fill them with expression "=Fields!Column.Value"

Creating a Directory Listing type Report in SSRS

I was wondering if there was a way to create a directory listing report in ssrs and if so, how would i go about creating it.
I'm mostly familiar with creating tabular and some somewhat complex reports, but nothing like this; so any help would be extremely useful.
Here's a sample of how the report might look.
Thanks!
Addendum: The content on each page needs to be grouped by Department & Sub-Department.
I made a mistake on the sample report; where it says Department Subtitle it should say sub-department.
Here's one way I've seen it done.
For a 3 column look, create 3 tables/list with the same dataset and set visibility for details group to:
=IIF(ROWNUMBER("YourDataSet") mod 3=1,FALSE,TRUE) <--Table1
=IIF(ROWNUMBER("YourDataSet") mod 3=2,FALSE,TRUE) <--Table2
=IIF(ROWNUMBER("YourDataSet") mod 3=0,FALSE,TRUE) <--Table3
I think your problem is an addition to this question here.
I did a simple test that imitates your situation. Here is how to do it:
Set the report to 3 columns via Report properties. Adjusted the width of each column so that they fit in 1 page of paper.
Add a List control to the first column. Put Text Box controls inside with the required data fields. The List control will repeat for each Listing record.
Create groups for Department and Sub-Department via Row Groups pane. Rearrange the groups so that they will appear above the List control.
Right-click on Department group (or Sub-Department group) and add Page Breaks.
Preview (Should get a result pretty close to what you want)

Reporting Services Chart - X-Axis name problem

I have created a chart using a stored procedure which lists totals by name.
However when I create the chart the names only appear for every second element. I have tested this in a table and I get each name correctly.
My first thoughts were that it was a sizing issue, so I considerably increased the size of my chart, but this doesn't make a difference.
Does anyone know what could be causing the problem?
[URL=http://img11.imageshack.us/i/rschart.jpg/][IMG]http://img11.imageshack.us/img11/7191/rschart.
That "VariableAutoInterval" did not work for me, it showed every alternate other label. However the following worked:
In the Axis Properties -> Interval, type 1 : This will show every label. If you type 2, it will show every alternate label and so on.
http://img223.imageshack.us/img223/3118/capturerk.png
Reference : msdn.microsoft.com/en-us/library/bb934393.aspx
I have found the problem. If you go to the properties of the X-Axis in your chart and go to >Interval > VariableAutoInterval and by default this is set to false. Set this to true and it now works.
However there is a problem with formatting as although the labels appear they are displayed slighter off centre of the actual bar elements... this should easily be fixed though.
Thanks for your help!
[URL=http://img230.imageshack.us/i/rschart2.jpg/][IMG]http://img230.imageshack.us/img230/3958/rsc
Ahh you have run into the notorious RS bug that most everyone doesn't notice. No solution to this, however what you can do to display ALL x axis labels is to shorten the categories (or x-axis values to 3-4 letters a piece and display a key).
What I mean about this is in your SQL table of categories add a field called Acronym or something an for a category such as :
SQL SERVER CATEGORY I
In the acronym field make it
SSCI
And in your report instead of using the category field use a much shorter value (the SSCI value). Now next to your report object just create a matrix / table object that displays categories with their acronyms. You do realize that you can use multiple objects in one report that may point to different data sets.
Doing this will display all the X-Axis values, it is all because of the lengths of the categories...
Seems to be working for me. Can you try to export the report to pdf / excel and check the results. Also I am using RS 2005, are you using 2008?