SSRS Expression to Open Specific Report - image

I have a SSRS dashboard that has a calender image on it and under the image properties I have an action to Go to Report and a specific report was listed. Depending on the measure the user is looking at in the dashboard when they click it a 12 or 24 month trend chart will load. It works fine when I just have it set to go to a specific report but when I put an expression into the Specify a Report option I get a weird error that I have been researching but the error seems possibly misleading so I thought I would just put the expression I am using out here to see if anyone has any direction for me as it seems like what I am trying to do is simple but I may be searching wrong. Thanks in advance!
I have the expression opening the 24 month chart of the definition type is CSH and eventually it will check for other conditions but I wanted one to work before I went on.
=IIF(Fields!MEAS_DEFINITION_TYPE = "CSH","FITDash_Trend24mo.rdl",Nothing)
I get this error and it started up after I added the expression above. The datatype of MEAS_DEFINTION_TYPE is nvarchar(25):
Severity Code Description Project File Line Suppression State
Error [rsCompilerErrorInExpression] The ActionInfo.Action.Drillthrough.ReportName expression for the image 'Calendar25' contains an error: [BC30311] Value of type 'Microsoft.ReportingServices.ReportProcessing.ReportObjectModel.Field' cannot be converted to 'String'.

Common mistake, you have forgotten to specify the .Value property of the field
Try
=IIF(Fields!MEAS_DEFINITION_TYPE.Value = "CSH","FITDash_Trend24mo.rdl",Nothing)

Related

OBIEE Column selector with no results

I'm trying to create an analysis based on errors, so I hope I have little to no value in this analysis but I need a column selector to switch between different measures which can have an error.
When I switch to a measure which doesn't contain any errors, I get a nice 'no results' message but also my column selector disappears. How do you keep this even when the analysis results in 'no results' or maybe another way to work around this.
Thanks!
a) "Back" in the browser :-)
b) "Clear My Customization" in a dashboard context
c) Instead of a column selector, you can move that logic to a dashboard prompt which switches out the measure in the analysis itself. Since the prompt isn't in-line with the analysis code but a stand-alone object it will stay unaffected by "No results".
You'd say '"Measure"."#{vMeasureSelection}{Count}" in the analysis column formula and then have the presentation variable value from a prompt passed in there.

SSRS error on preview : "The size necessary to buffer the XML content exceeded the buffer quota" hides original error

I understand that there is definitely something wrong with my report (e.g. columns missmatcch) and I need to correct it but what I see is the WCF error message that hides actual problem and exactly this hiding irritates me much more than original problem: columns missmatch.
I guess we need to adjust the WCF 'buffer size' and we will get original problem message. But where is the config file?
Text search of "system.serviceModel" in the C:\Program Files (x86)\Microsoft Visual Studio 10.0 doesn't bring good idea...
P.S. Since this is just preview of report I do not think that it is SSRS configuration problem. Problem localised somewhere in DevStudio process or int the DevStudio's internal web server process ...
P.P.S Please help me too improve the question. I see that responders doesn't understand what kind of help I need.
I have encountered multiple "flavors" of this bug in SSRS Preview. It seems the renderer for Preview mode is quite fragile.
There is a simple way to solve this. Ignore the error and attempt to upload the RDL file to your reporting server. The uploader will happily tell you exactly what is wrong with your file - it will tell you exactly what field has a problem and what that problem is. If there are multiple errors, you will get told each and every field and the error associated with each one.
I can create this bogus XML buffer error with any of the following:
Add a new Tablix, start to connect it to a dataset, then cancel out.
Copy/paste some text into a textbox from a MS Word document where one or more lines have a negative right indent (right column end is outside page margin).
Connect a dataset with a varchar(8000) returned value.
Please Check if any of your report items are referencing fields that are not in existing dataset scope.
This indeed worked for me.
See Below link for more information:
http://connect.microsoft.com/SQLServer/feedback/details/742913/ssdt-reporting-services-designer-error
I have seen this error when adding a new field to an existing dataset by clicking "Refresh Fields".
The dataset source was a stored procedure. The result was only a few of original fields showed up in the dataset field list and not the new field. If I tried to preview the report I get XML buffer error.
Workaround was to not refresh fields but hit add new field and type the new field name into the dataset properties field last.
Worked fine after that.
I got this error again today.
I had created a table to hold data to replace two slow queries. I changed some names to clean up the process.
I think the error actually means that there are so many problems with my report that the buffer holding the various error messages isn't large enough which leads to the error message.
The size necessary to buffer the XML content exceeded the buffer quota
Of course this should be an easy fix but Microsoft has said that they will not fix it.
https://connect.microsoft.com/SQLServer/feedback/details/742913/ssdt-reporting-services-designer-error
EDIT: I've updated my answer based on having fixed the issue.
I'm currently experiencing this problem after having changed multiple stored procedures and updating the dataset names in the SSRS report.
And when I try to run the preview I get the exact same error.
As it turns out, after investigating the issue, the problem was that I had changed the name property of my datasets.
There several places in my report where formulas or expressions use the old name properties of the datasets I renamed. After reverting the dataset names back, I managed to get the real errors like missing fields etc. atcual errors came back after I set my dataset name properties back to what they were.
I only changed the name property back to what it was, the stored procedure names were correctly referring to my renamed stored procedures.
I had this problem when after copying and pasting a tablix, it changed CDbl in a formula to Microsoft.ReportingServices.RdlObjectModel.ExpressionParser.VBFunctions.CDbl. I opened up the XML and removed all instances of "Microsoft.ReportingServices.RdlObjectModel.ExpressionParser.VBFunctions." and the report then worked.
For a working report, when I tried to add a column it gave me this error. I edited the .rdl file using notepad++. After SSRS prompt to reload the change from disk, it worked without issues.
I got this error after copying my Custom Code to Visual Studio for hightlighting the code for better readability. Well, Visual Studio added class definitions to the beginning and end of the file. After editing code, I pasted it back to report Custom Code, then got this error. Fix was just to remove class definitions (Public Class Class1 and End Class) from Custom Code. So, check your Custom Code also (if any).
I got this error after adding some new parameters to an existing report.
For some reason when I created the parameters first then modified the Dataset to use the new parameters I got the error, but when I modified the Dataset first then added the parameters second and I did not get the error.
This seemed like very strange behavior to me so I tested it by restoring the report from repository and repeating the process three times with each method, and had identical behavior every time.
I am also facing this problem. I solve this Find and replace
Microsoft.VisualBasic.Interaction.iif ==> iif
Microsoft.ReportingServices.RdlObjectModel.ExpressionParser.VBFunctions.cdbl
==> cdbl
I hope this may helps someone. Thanks
Possible root causes
Parameter name is incorrect(case/order)
Accessing non-existing property.
and many more...
Solution: To get the exact error message are
Deploy SSRS report and find the error : Suggested by "Kim Crosser" already
Remove the section(SSRS/Report content) temporarily you feel is error free to free space in buffer so that you can get actual error message. Later add sections back to the page(removed earlier).
I had the same error message and it was totally caused by my doing. It's a bit embarrassing, but if it helps someone out then great! I had accidentally copied my dataset query that included a small sub select statement within it, which I was using to check parameter/variable values.
Another solution is to open the .rdl file in Report Builder 3.0 (as opposed to Visual Studio) and try to preview it. I found this gave me the details of the error, although if more than one error is present it only shows the first.
I previously binded a TextBox to
Fields!FieldName
and fixed it with
Fields!FieldName.Value
With that said, and with the other answers posted as well, this error happens in different flavors. My issue was fixed after I had the field property "Value" included.

Omniture SiteCatalyst Instances/Search metric and conversion variables

We have a weird reporting inconsistency between two Report Suites in Omniture's SiteCatalyst. Currently we have a conversion variable that is tracking keyword values that are coming from search engines using crossVisitParticipation and channelManager plugins.
When we run the Traffic Source" report that shows "Search Keyword - All" broken down by the conversion variable one report always shows "N/A" values and the the other doesn't. Somehow one report suite is not relating the search engines report to my conversion variable and the other is. Any idea why?
Here are some screenshots:
Report with "N/A"
Link http://i48.tinypic.com/1zwi4b9.png
Report with Actual Values
Link http://i46.tinypic.com/egbnmh.png
I've seen this before too. I really suggest you just call Omniture client care. So many things in SiteCatalyst are configurable by Omniture, I am sure that it is the way your setup is configured to give this kind of result in your reports.

Linking an SRSS report - Dropdown parameter not getting passed

Sorry if this is a duplicate post, not sure what happened with my original one.
I have a linked SSRS report (Report A) that links to Report B. One of Report B's parameters is controlled by a Dropdown/ComboBox. In the parameters dialog box that gets launched from the navigation tab, I have tried both 'VALUE' and simply putting VALUE without the single quotes.
Both ways result in an error stating that the parameter was not provided. How do I correctly pass this value, so that Report B will recognize it?
Thanks

Parameter Validation on Reports

I'm new to SSRS, so I apologize if this question is too simple:
I have a report which accepts a parameter called "Amount". I want to constrain valid inputs to currency values >= 0, and pop open an error message if the user enters improper values.
I don't want to validate inputs in my stored procedure and throw exceptions, because SSRS displays a very generic "Query execution failed for 'someTable'" message to users who access the report from another machine, and my business does not want to turn on the "Enable Remote Errors" flag.
How do I add input validation to report parameters and notify users of bad input?
Yes, I've googled around, but haven't had much luck. Thanks in advance :)
Okay, how about this?
All you have in SSRS, really, is the SQL query and expressions in report fields.
Perhaps you could add a big, red text box at the top of the report for your error message, and give it an expression like '=IIf(Parameters!Amount.Value < 0, "Error: Invalid Amount", "")'.
Then go to your table's "Hidden" property and give it the expression "=Parameters!Amount.Value < 0"
You could also add into your query's where clause and add "AND #Amount >= 0" so you aren't fetching from the database when there's an error.
It's possible to make report parameters in SSRS that are based on a particular list or a lookup query but I don't think you can apply a regex or something like that.
Instead you might consider separating your report into two panels, one which displays your report and one which displays an error and then you create an assembly with a function in it that validates the parameters for the report before it is run. If the validate parameters function is successful you hide the error panel and show the report panel, if not you do the opposite.
I don't think there's a whole lot you can do in the reporting tool itself. It's pretty rudimentary.
However, you can provide an ASP.net web interface or a form that you can use to ask the users for the parameter values in any format .NET allows, and use the ReportViewer control to display the report. It sounds daunting, but it's actually pretty straight-forward, particularly if you already have a project you can build on.
Microsoft gives tutorials for using the ReportViewer controls.

Resources