SSRS Drill Through report using expression report name invalid - reporting-services

In a text box I am using an expression for a goto report action based on a parameter. A report will be openend based on the value of the parameter:
iif(Parameters!Par_Sub.Value = "Werkgever.Bedrijf",
"reportsubtwo.rdl",
nothing
)
In preview however I get the following message:
the Drillthrough Report Name for the text box is not valid. Item names cannot contain the following reserved characters ;?:#&=+$,*<>|". (rsInvalidReportNameCharacters)
What could be wrong? The report reportsubtwo exists and does not contain any special characters, I am running into a dead end obviously.

I have found the solution, the = character before the IIF statement is missing,
=iif(Parameters!Par_Sub.Value = "Werkgever.Bedrijf", "reportsubtwo.rdl", nothing )
is the right syntax. Curiously there was no syntax error message displayed after completing the goto report action, but this vague message about the report name containing reserverd characters during previewing the report.

Related

Problem with changing order of parameters in a SSRS Report

Adding a new parameter between parameters or reordering parameters in a ssrs report breaks it.
Using text only, can't upload any images... (Failed to upload image; an error occurred on the server)
I created a report that works using the cube "Analysis Services Tutorial".
Parameters: City, State-Province.
Table: State Province, City, Internet Sales Count
This report works fine, but when I change the order of parameters to:
State-Province, City
Then I get that error when previewing the report:
An error has occurred during report processing.
The Value expression for the query parameter 'CustomerCity' contains an error: The expression references the parameter 'CustomerCity', which does not exist in the Parameters collection. Letters in the names of parameters must use the correct case.
One solution that I currently see is modifying the content of the rdl-file.
Hope anyone has any other ideas/solutions what I can do...
Ah well only need to change the order of the parameters in the DataSet and with the context menu on right click I can also move the parameter up/down.

In ssrs 2008 r2, how can i change the system generated "Please select a value for the parameter" error to "No active Products are available"

I have a dataset which returns nothing to a multi value parameter in few cases. When I click preview I get a pop up window stating "Please select a value for parameter" which is not user understandable. I want to convert this to a user understandable message.
Is there any option to change the system generated error messages?
Please someone help me on this issue.
Note: I handled this problem by passing a "" value in case of nothing (ie, when count = 0). The checkbox with blank value is visible. Is their any option to hide this checkbox or to change the system generated error.
Thanks in Advance.
You could add a 'none' option to your multi-select options (possibly using UNION to add it to the dataset) and set this as the default.
Alternatively you could check the dataset before it is returned and if empty insert a the warning, such as "none available" in this set of returned values.
Then in the report check for your parameter equalling 'none' and if so show a text box with your error message on the report only. If 'none' is not selected then display the other report items as expected

How do I get an RDLC report to run report custom code?

I have an RDLC report in VS 2013 that has two distinct sections. I'd like to show a footer only in the first section. To do this, I have a report variable called IsFirstSection that is set to "True". In my footer I have an if statement that displays text if this variable = "True".
Before the second section is displayed on the report I would like to set this variable to false. To do this, I have a function in the report custom code called SetVariableValue that takes a variable and a value and does just that. I have a text box before the second section that calls this function with Code.SetVariableValue(Variables!IsFirstSection, "False"). However, this code doesn't seem to be executing as IsFirstSection is still "True".
When I do this exact set up in an RDL report it works correctly. I even tried making a custom code function in the RDLC that just returns a string and when I call it from a text box expression nothing is displayed. How can I get the RDLC to run report custom code?
A Report Variable seems a poor choice for this requirement. It's probably just chance that it appears to work under some conditions. Some quotes from the doco:
"By default, a report variable is calculated once ..."
"You cannot control when the report processor initializes a variable or evaluates an expression that updates a variable."
https://msdn.microsoft.com/en-us/dd255208.aspx
I would use a ReportItems reference instead. This would likely point at a textbox which presents field that changes value between "sections".

Type Problems with Filter Expression in SSRS

SQL Server 2008 R2, using BIDS to design the report.
I have a table and I am trying to only show a certain row. Maybe there are better ways to do this, but I am coming across an error with the filter expression and regardless of how I achieve my initial task, I'd like to understand the filtering.
I started with the filter expression (set to type "Integer"):
RowNumber(Nothing) = 1
This gave the error:
Cannot compare data of types System.String and System.Int32.
I found the solution to this is to change the 1 to "=1" as 1 is evaluated as a string.
So I then had:
RowNumber(Nothing) = =1
That changed nothing, I got the same error.
Then I tried to do that to the first part of the expression:
=RowNumber(Nothing) = =1
This changed the error to a deployment problem (still builds, which is frustrating):
Error pvInvalidDefinition : The definition of the report '/ReportName' is invalid.
I then tried using CInt on RowNumber:
CInt(RowNumber(Nothing) = =1
Then I can deploy it, but the error just changes back to the first one:
Cannot compare data of types System.String and System.Int32.
It seems no matter what I try here I either can't deploy the report or I get an error that I'm comparing a string to an int.
RowNumber returns an integer, so it seems like this should work. I've tried using the name of the dataset in place of "Nothing" but that doesn't change what I'm seeing.
I realize there are many ways to solve my initial problem, but I am curious as to why the filter expression is invalid.
Its better to hide a row with visibilty property. Just click on any text box and go to visibily tab . You can now click on show or hode and go to expression.
That default to Hide . So write an expression there to hide the row.
=IIf(NOT(RowNumber = 1),TRUE,FALSE)
Let me know if you get any error
RowNumber is not available to use in a Tablix Filter.
Using RowNumber(Nothing) <> 1 as a Row visibility property fixed the issue.
Using BIDS you are not given any error that indicates what the problem is, but importing the report to Report Builder and deploying it from there will give a more descriptive error that, in the end, helped me to solve my problem.

SSRS 2005 - dynamically assigning a 'jump to report' name in a textbox

I'm using SSRS 2005 and I'd like to be able to 'jump to' different reports depending on the value in a date field. For example:
=iif(Fields!Date.Value = Today, TodaysReport, OtherDaysReport)
When I use this syntax, I get this error when previewing the report:
The ReportName expression for the textbox ‘CallId’ contains an error: [BC30451] Name 'TodaysReport' is not declared.
I don't get any error on the 'OtherDaysReport' parameter but I think the compiler gave up on the first error.
Is the syntax I'm using in the IIF statement valid in a 'Jump to Report' expression in the Navigation property of a textbox? If not, is there a different way to do what I'm trying to do.
I am not sure if you found answer to your problem yet. but for anybody with similar problem please try following
put your report names in quotations. In your case try
=iif(Fields!Date.Value = Today,"TodaysReport", "OtherDaysReport")
Also make sure you specify the right parameters and the "Omit" properties as required.