Hide Columns Based on parameter value not working in SSRS - sql-server

I have a SSRS report which have N number of Columns. I need to hide Certain columns based on a parameter "jobcode" . I have tried below expression in Column Visibility Pane,
=iif(Parameters!JobCode.Value=1,"False","True")
While Executing the report I got below Error,
"The Hidden Expression used in the tablix 'Tablix1' returned a
datatype that is not valid"
I have tried like below,
=iif(Parameters!JobCode.Value=1,0,1)
But, got the same error. Can Anyone help me to find out answers for below queries
How to achieve the above requirement in ssrs?
If I need hide column based on multiple parameter values, say 0 and 1, How to do it?
Thanks for the help.

If JobCode = 0 , Show
=IIF(CInt(Fields!JobCode.Value) = 0,true,false)
Try this.

Follow these steps:
Right click in your column>Column Visibility>Show or hide based on an expression
Expression, use that:
=Parameters!parameter_name.Value<>1

Related

How to hide columns that are not returned with dataset results using function IsMissing in SSRS

I have a stored procedure which drops either 1 or 2 columns from the result set. In my SSRS report, I have all possible columns that may come from the result set as dataset fields. I am trying to use the IsMissing function to change the column visibility, but it is not working. How can I make this functionality work?
I tried using examples from
https://sqlserverbi.blog/tag/hide-columns/
and
https://www.allaboutmssql.com/2013/01/ssrs-ismissing-visibility-function.html
where I right click the column, select Column Visibility and add an expression to the Show or hide based on an expression line.
Here is how I have been trying to use the expressions:
When I want to hide 2 of the columns I use:
=Fields!LINE_30_A.IsMissing And Fields!LINE_30_B.IsMissing
and when I want to hide only one of them I use:
=Fields!LINE_30.IsMissing
I have also tried the expressions like this:
=IIF(Fields!LINE_30_A.IsMissing And Fields!LINE_30_B.IsMissing,True,False)
I ran my stored procedure in a way that has dropped 1 of the columns from the result set. In this case the expression Fields!LINE_30.IsMissing should have been evaluated and I should be seeing the columns for Fields!LINE_30_A and Fields!LINE_30_B. But I only see the column for Fields!LINE_30 (which shouldn't be showing at all) and the other 2 columns are hidden. I also receive these 2 warnings:
1) Warning [rsErrorReadingDataSetField] The dataset ‘DataSet1’ contains a definition for the Field ‘LINE_30’. The data extension returned an error during reading the field. There is no data for the field at position 11.
2) Warning [rsMissingFieldInDataSet] The dataset ‘DataSet1’ contains a definition for the Field ‘LINE_30’. This field is missing from the returned result set from the data source.

How to Remove 「Total」 row in SSRS report?

I am new to SSRS.
In report, I have One table layout result where its first row (there is a bug in total) and last row is having total of all the fields. (Like shown in below image)
Given 「Total」 in first row, which I want to remove from the Report simply. I have its source file and I tried already so many ways but I am not getting its solution.
Edited
Design View of the same is here
Row Groups Panel is looking like:
Group Properties:
Expression 1(top left most):
=Iif(Fields!LineCaption.Value="","TOTAL", Fields!DispOrder.Value & ". " & Fields!LineName.Value)
Expression 2(below of top left):
=Iif(Fields!LineCaption.Value=""," ", Fields!AddupInfo.Value)+ " "
Thank you to All Commentators for commenting and giving your precious time in my problem with suggestions.
But I have found my own way solution.
By creating condition on Row_Group Visibility option while it loads the data from server.
As「Total」field was getting calculated in Row_Group only. So in Visibility option, I checked for first Row that "If first row is not Line_Name(My field name) then Hide that Row".
Maybe this is not the accurate answer but this was the only option for me to add.
You can do it via the context menu in the matrix view, not in the "Row Group" are:

How to display a multi-valued parameter onto a SSRS report in a specific way, separated in ranges and/or commas

In SSRS I need to display a multi-valued parameter onto the report in such a way that if values are chosen in sequence they appear as: 1-5, 7, 9-10, 15 and so on. And I have the following values in my drop down list of values: from '0' to '200'.
Thanks in advance for your help.
This is what I have done in SQL so far, so I am thinking to update 'String_To_Use' column so it would display: 0000-1020, 1199-1210, 1260, 1299. Then use this string to display onto the SSRS report. These are the values chosen in SSRS from the drop down box. I don't know yet how I would pass these values to the SQL code yet. Please help with this part as well.
This is the #tempTable1...column 'DPRTMNT' has the values chosen ...Checking_Dept has the value-2 when values in ranges
This is the #tempTable2..I need to update 'String_To_Use' column so it would contain: 0000-1020, 1199-1210, 1260, 1299. #tempTable1 can help to build the logic
replace dsBranchPlant with name of your data set that your using to supply data parameter. And "All" condition is if all params are choosen instead of showing each one. Game this up as an expression and see where you stand.
iif(Parameters!BranchPlant.Count = CountRows("dsBranchPlant"),"ALL",Join(Parameters!BranchPlant.Label,","))

Grouping tablix by Paramater is SSRS (#Error) and automatically adding (0) when selected in expression

I hope this is not a stupid question, but I have searched everywhere and have tried everything.
I have a dashboard and would like to group the tablix (The dashboard is inside the tablix) by one of the Parameters (Consultant). There are a few Data sets(queries) in the report and all of the Parameters are filtered with IN in the where clause.
The problem I have is that when I go to the row group properties and select the Parameter in the expression, then it automatically adds a (0) at the end. If I take the (0) away then I get the error message:
the group expression used in grouping 'Group1' returned a data type
that is not valid
I know the (0) is for getting the first value, but I am using Multi-valued Parameters.
I have tried one thing I found, but unfortunately it didn't work for me (SSRS Group By Parameter).
Edited:
This is to show you that there are multiple Data Sets(Queries) in this report
I have the dashboard in a tablix so that I can group for each Consultant, so when I choose 3 Consultant, I get 3 dashboards.
Expression used:
Then I get this error:
I have also tried using the CStr, but also no luck.
When I add the Parameter in any expression box it automatically put the (0) as below:
But then it doesn't use the parameter as I get an #Error where is should be the Consultant name.
I also used this option for page break but end up with graphs below each other:
This is what happens to the Charts(Sub Reports)
To give you an idea how the dashboard should look for each Consultant.
Regarding the other question I saw. I just tried exactly as they said but also no luck
I hope this isn't too much information. Just trying to help you help me.
Thank you!
UPDATE:
Parameter Properties:
Have you tried using the list tool to separate the sub reports by Consultant? A list acts like a container and will create whatever is inside for your grouping. You should also be able to apply a parameter to the list for filtering.

Textbox to Get Specified Value from dataset in SSRS

I want to get a specific row value from a specific dataset using the First function in SSRS.
The dataset returns values like:
From To Value
1 30 10
30 60 20
60 100 30
Also:
I have a parameter that has an integer value from 1 to 100.
I want to get the dataset value if the parameter is between From and To and
I want to put this value in Textbox not in a Tablix.
You can try this Expr in your textbox:
=First(Fields!FieldName.Value, "YourDataset")
Example:
=First(Fields!Name.Value, "GetName")
It worked for me.
This should work:
Use the parameter as two filters on the dataset, >= From and < To.
Then an expression in your text box like =First(Value.Value, "dataset").
You should first create a list (in order to relate to it a DataSet).
Then, inside the list, put a textbox and define the following expression:
=First(Field!Value.Value)
This will do the job :)
SSRS is a reporting tool not an application. You can either write your queries or SP to receive the value before generating the report, or otherwise i would recommend an application with a exporting functionality (you can even manipulate this to use SSRS to export your final report). Third party tools like Telerik can also maybe help.

Resources