Stop SSRS From Hiding Columns - visual-studio

How do I stop SSRS from hiding a column when previewing if the column has nothing more than empty rows? I have set all columns to be fully visible, yet the report preview does not show the empty columns. I know that this is a default feature within Visual Studio that hides all empty columns by default, so how do I change it so it can show all columns no matter what. Where can I change those settings?

If you mean the preview in the query designer of the dataset:
This is only possible when writing your own MDX since the generated code always generates a SELECT NON EMPTY for the measure axis. So removing the NON EMPTY part will always show your column/measure.
If you mean the ssrs report preview:
Columns only hide when using a table matrix with a column group. In this case make sure your dataset always returns each column group at least once, regardless of your chosen filters. E.g. if using MDX this could mean removing a NON EMPTY from your row axis or using the right-click option "include empty cells".
Clarification for comment plus possible workaround:
This "hiding columns" things is no feature. If the column isn't in the result of the dataset, SSRS can't know that this value even exists, so there is no solution if using a column group except for redesigning your query.
You could work around this by not using a column group and instead of using static "hard-coded" columns which, for example, sum the values depending on your group. See the following example screenshot i made: example

Related

Indicators in a matrix

I'm trying to add some indicators into a matrix to show an increase or decrease from the previous year
This is my design view
And this is how it's viewed in the report
I would obviously like my up and down arrows to appear in the currently empty columns. Also I'm wondering if there is a way of deleting the first empty column after 2014/15 as there is no year to compare it to.
SSRS supports a function called Previous, which will be useful in your scenario. Assuming that the name of your column group is "Fiscal", the difference of two years can be calculated as
=Count(Fields!IDNUMBER.Value) - Previous(Count(Fields!IDNUMBER.Value), "Fiscal")
Because you can't know the range of the numbers in advance, I suggest to use a "numeric" expression like
=Sign(Count(Fields!IDNUMBER.Value) - Previous(Count(Fields!IDNUMBER.Value), "Fiscal"))
for the indicator, so the ranges can be defined by single values -1, 0 and 1:
To hide the first indicator column, right-click the column header in design view and click Column Visibility..., then in the cnfiguration dialog specify to hide based on an expression like
=IsNothing(Previous(Fields!Fiscal.Value, "Fiscal"))
Here's a screenshot of my design view:

Remove Tablix Static Columns Row Groups in SSRS

I have a report in SSRS that uses a matrix with static columns.
Here are the static columns:
After generating the report, the rows with same values end up being grouped together:
Is there any way to get rid of these groups? I'd rather the values be repeated for each row, so it looks more like an excel sheet.
Here is a better picture of my report design plus the row and column groups. These groups were created when I added them to the matrix and are not needed as far as what I can tell for my report:
As you are not doing any calcuations on hte row gorups, there is no need for them.
Delete all but one of the row groups by right-clicking the rowgroup in the Row Groups pane at the bottom of the screen and choosing Delete Group. If prompted, choose Delete Group Only, otherwise it will delete the associated columns too.
When you noly have one group left, right-click it and choose Group Properties and delete the group expression, this will change it to be a details style group.
Make sure the Hide Duplicate expression is back to default (blank or None) in case you changed it earlier.
That should work. I replicated a similar scenario to your and the above step did the trick.
You will probably also need to go back to your group properties and set the sorting options to ensure data is sorted correctly.

Is there a quick way to set a visiblity expression for many rows in a SQL Server Report Services RDLC report?

I have a report with many tables (tablixes?), in which I need to hide all rows that don't have a value in the 2nd column:
I can do this by right clicking on each row
and setting an expression for the visibility of the row that depends on a value appearing in the field of the 2nd column, e.g.
=IIF((Fields!MyField4.Value = ""), True, False)
But the problem is that my report has over 1000 of these rows! It will take a very long time given that each field has a specific name! I can modify the Xml, but this will also take a while. I am currently writing some code, which uses XDocument, to achieve this.
Are there any faster ways that anyone can think of? Maybe something from the designer, or some VB code? Everywhere on the internet seems to suggest right clicking one row at a time.
In the Designer, select all of the rows (using your Shift or Ctrl key), and use the Properties pane in VS/BIDS to change them all at once. There is a Hidden property there, and you can choose Expression from the dropdown in it. From there, you can apply the IIF to all rows.
Of course, I am assuming all of the visibility is based on the exact same expression for each row. If not, then the answer is no. Unless, you want to start doing some copy/paste stuff in the RDL XML, which I do not recommend.

Google Spreadsheets: Working with data inserted from forms across tabs

I'm in great need of help. I've a form which asks basic questions and puts the results into rows of an existing spreadsheet.
Specific data from those responses are "promoted" to 2nd, 3rd and 4th tabs based on IF formulas on tabs 2+ checking the value of a pull down selection on in the corresponding row on each previous tab. (Waterfall)
My challenge is - forms data is inserted into a new row (Does not use existing) and if I set the pulldown value to "Approved" on the first tab, the formulas on the second tab which were contiguous now skip the row where the form data was automatically entered.
I suspect I need to learn how to properly use ArrayFormula, etc, but have not managed to fix this looking at existing examples combined with my IF statements.
Help is appreciated. Sample is here. Safe to ignore the first and last tabs.
Thank you.
You can try using an open-ended range with ArrayFormula. For example, the formula on "2-Pipeline" in cell D3 could be:
=arrayformula(IF('1-IdeasReceived'!U2:U="Approved",'1-IdeasReceived'!L2:L, ))
The ranges U2:U and L2:L should pick up all rows in those columns, even after you've had forms submitted.
Since this is an ArrayFormula over column ranges, you only need it in cell D3; it will inject CONTINUE formulas down the rest of the column.
Warning: Your spreadsheet is combining dynamic row content (e.g. pulled from another sheet) with static content (e.g. "Environment, Health & Safety" column on "2-Pipeline" sheet). This is bound to result in misalignment if rows are added or deleted in the middle of the source data.

Changing columns order on export to CSV from SSRS 2008

We have a report developed in another tool that the user exports to Excel to manipulate the data. In the old tool, the columns are being saved in the same order as the dataset returned by the stored procedure. But in SSRS the columns sort is changed to the order that they are displayed on the screen. The user is a nut case and can't convince her to change the order of the columns on the screen report to match her old report sort, but on the other hand does not want to adapt to the new column order. Unfortunately the easiest solution (i.e. replacing the user :-)) is not implementable. Is there a property that I can use to change the sorting on the columns when they are exported. Without knowing much about it, I imagined ZIndex would have done something like that. But it is set to 0 and disabled, so I can't change it's value.
Thanks
I know it's years later but for the benefit of anyone who is in this predicament, a similar idea: in the same report, you create another tablix that will be your "output" tablix, where you arrange things as you please using the same dataset. Make this tablix with visibility hidden, and set it to "output" as necessary. Turn off all outputs from the first tablix. So you have basically a ghost tablix that only works when you export to csv.

Resources