SSRS - date-time parameter transposition - reporting-services

This is a problem in DEV with the following configuration:
SSRS 2012
Reports configured to the language en-gb
I have recently noticed that all of my date time parameters are getting transposed when i click "View Report". So for example a GB date 08/01/2015 gets transposed to 01/08/2015 on clicking "View Report". This results in having to click the button twice for the report to show me the correct data. I have used SSRS on and off for many years and I have never noticed this before. Can anyone shed some light on this?
Obviously the parameter is switching between en-gb and en-us but why and how do i stop it?
I found a post where some one is suffering from the same problem as me but their solution seems a little overkill issue with DateTime datatype in SQL Server Reporting Services. They recomend changing your regional settings and IIS settings which may fix and or break all sorts.

I believe that the problem can be how do you set up the default value in the parameter definition. If instead of a fixed date, you use a dataset with a date time funtcion (something like " Select dateadd(month,-1,current_timestamp) as [Default Date]") and a default value based on that dataset, your problem could be solved, because you're not specifying any date format in the dataset's field and it should contain the right value.
Hope this helps.

Related

SSRS Pass Date Parameter in URL

I have been trying to figure this out for a while now and I cannot seems to get it to work. I am trying to pass 2 date parameters to an SSRS report. I am using SSRS 2016. The link that gets you to the report is
http://ServerName/Reports/report/SomeFolder/ReportName I have tried following the unanimously agreed upon approach of simply appending &StartDt=01/01/2020&EndDt=01/31/2020 and other combination and listed below.
http://ServerName/Reports/report/SomeFolder/ReportName&StartDt=01/01/2020&EndDt=01/31/2020
http://ServerName/Reports/report/SomeFolder/ReportName&StartDt=01-01-2020&EndDt=01-31-2020
http://ServerName/Reports/report/SomeFolder/ReportName&rs:Command=Render&StartDt=01/01/2020&EndDt=01/31/2020
http://ServerName/Reports/report/SomeFolder/ReportName&rs:Command=Render&StartDt=01-01-2020&EndDt=01-31-2020
In all cases I get the almost the same error, with the only difference being how I added the dates. The path of the item '/SomeFolder/ReportName&StartDt=01-01-2020' is not valid. The full path must be less than 260 characters long; other restrictions apply. If the report server is in native mode, the path must start with slash. (rsInvalidItemPath) I have confirmed the parameters match StartDt and EndDt appear exactly that way in my report, just for SAG I even made the prompts match and they are Non null able Date/Time fields. None of available values or default values. If nothing is selected it has the calendar icon to pick a date and everything runs perfectly.
I actually think I saw something on this back in a .Net explanation but it came out to be the link below. As usual I never mark my answer as correct, but leave it for the next person.
http://ServerName/ReportServer/Pages/ReportViewer.aspx?%2FFolderName%2FReportName&rc:showbackbutton=True&StartDt=01/01/2020&EndDt=01/31/2020

SSRS "The requested functionality is not currently enabled"

What does this log error mean? "The requested functionality is not currently enabled"
library!ReportServer_0-193!46ac!08/14/2018-13:04:15:: i INFO: Call to GetReportParametersAction(/XYZ/ABC/MyReport).
library!ReportServer_0-193!46ac!08/14/2018-13:04:15:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.NotEnabledException: , Microsoft.ReportingServices.Diagnostics.Utilities.NotEnabledException: The requested functionality is not currently enabled.;
My report runs find in VS and in SSRS intranet server!
So what is the issue?
Result from the server says: "Processing: 0 processed of 52 total; 0 errors."
So if there is no error here what does the log error mean and why is not the front-end in sync with the back-end.
My report has three parameters CustomerNo and a date range Start and End dates.
All of which I set in the Data Driven Subscription. There is nothing wrong with the inputs as I have checked all of these.
The path and filename are all correct, no nulls.
I created the destination sub folder so I assume it inherits the security of the parent so I don't believe it is permission issue, if it is surely the log would tell me!?
I have also deleted my subscription and started again to no avail.
I am lost to even no where to start looking.
I managed to find a work around perhaps somebody else could share there experience! To let me know if you had a similar issue and how you resolved it if you did that was different to what I am about to describe that is move away from dataset to use defaults.
Might I add the log didn't update until would you believe an hour later to show the actual error as I checked the timestamp and the error mentioned was "... Default value or value provided for the report parameter 'FromDate' is not valid." So Got nothing to say other than ##$%^&.
It seems the problem was one or perhaps both of my date parameters as set in the data driven query were not compatible. So I ended up changing from using the option from "Get value from dataset" to "Use default value", then in my proc called by the report I set the default to NULL, then wrote script code that checked if the value of the date parameter was NULL then change to the desired default value, which is fine for what I needed that is to base it on first day of the month using GETDATE().
I didn't bother investigating further so I am not sure if it is locale issue since I am running on a Australian DMY server and perhaps input gets sent in MDY order or this is a SSRS bug! Who knows that was a few hours of time I will never get back over something that should have just worked.

SSRS filter date time not working

Report SSRS in window 10 and open from IE 11
my computer filter date not working (not show image calendars)
How to fixed .
thank you.
Expanding on WEI_DBA, it looks like you need to set the default value of your Start Date parameter to ="3/16/2017 0:00:00" since your date format has months and days reversed.
Note that this can be confusing when you have a server with a different region setting than your workstation. The report is fine to develop locally and will then generate this error when deployed to your server.
In the parameter pane, right-click on Start Date and select Parameter Properties. Find "Data Type:" in the middle of the dialog and change the drop down to be Date/Time. Do the same for End date.
A date/time parameter will will show the date picker and will ensure you are passing a properly structured date value into your dataset query, regardless of your culture/language settings.

Microsoft Reporting Services - How do you default parameter values, but not display the report?

I'm using Reporting Services 2012. It seems it displays the report unconditionally if you have default values specified in all report parameters. If you specify no default value for any one parameter it doesn't display by default.
Anyone know of a way to default values, but not display the report?
I have come across the same problem before, which certainly became an issue when the default parameters returned a very large number of results. It took a long time for the report to render, only for the user to instantly want to change the defaults and run it again.
Unfortunately the only way around this I discovered was to add a new "Run Report" parameter, that had no default value. The report would display all the other default values, but not the report itself. The end user then had to set "Run Report" to "Yes" to actually render the report, as only at this point was the final parameter set.

Is there a solution for localizing "parameters/prompt" in SSRS 2008 R2 or 2012?

I'm using now SQL Server 2008 R2.
My website shows the report exactly as it is, including the container where the parameters appear (the client prefers it that way).
However, my website solution includes localization (Portuguese, English, Spanish).
I've tried to translate the parameters by creating one parameter for each language, and then show them according the selected one. It didn't work in SSRS 2008. Because I don't know how to find the visibility properties of prompt.
Does anyone know a solution... Or if SQL Server 2012 has solutions for translating parameter's prompt, or conditional visibility?
Thanks.
The only solution I've found so far (SSRS 2008, 2008R2, 2010, 2012) is to break the DRY commandments, and duplicate the reports with language codes as part of the report name (e.g. MyReport_sp.rdl, MyReport_de.rdl, etc) and then place a web service between the client request and the SSRS instance. The web service then has to field the request to the correct report based on a "Culture" parameter passed with the client's request.
This is NOT a good solution, though at least the Culture param is used in localizing the rest of the report as well. We still have hopes that at some future date MS will add prompt localizability and we can rename the report to MyReport.rdl and just have everything actually localized. Hmm, what a concept...
Another workaround would be to just put a number in the prompt for the parameter then prefix the label of each parameter with the localised version by either using "get values from query" or by using the expression builder with a switch statement in the label expression.
For the get values from query option you would have a dataset something like this if you have the translated versions in the query:
SELECT ParamLabel, ParamValue
FROM MyLocalisedParameters
WHERE UserLanguage = #Language
Or like this if not:
SELECT
CASE #Language
WHEN 'pt-PT' THEN 'Selecione Departamento: ' + ParamLabel
WHEN 'es-ES' THEN 'Seleccionar Departamento: ' + ParamLabel
ELSE 'Select Department: ' + ParamLabel
END AS ParamLabel
, ParamValue
FROM MyParametersTable
in both cases creating and assigning the Globals!Language to a Parameter called #Language.
Or if using the expression builder for a hardcoded set of values it would look something like this:
either way the end result would look something like this:
Not perfect but functioning and easier to maintain than several copies of the same report.
If you want it to look a bit tidier then just have the Parameter prompt as only one entry in the parameters list and set it to the default value to avoid repetition on every line.
There is none...
As per connect.microsoft.com, this feature has been requested after SSRS 2005 has been released, and while it is on Microsoft's TODO list, the programmer time to do this has never been allocated, and hence in 2012, SSRS is still not capable of doing that.
Although it's (with much effort) possible to translate everything else, it's not possible to translate the parameter prompt.
There is NO conditional visibility either, visibility of parameters is fixed.
Also, there is no way having SSRS use a supplied language instead of the one set in the browser language settings.
The only thing that you CAN do is write a C# program that loads your XML file, get's the report's parameter name(s) (and possibly the report's name as well), looks them up in a database, and automagically creates N reports for n languages.
Then, you have to redirect your users to the report in their language.
You then only need to write an upload tool, because you won't want to do that by hand.
The other way is to use the ReportViewer control, and re-implement parameter selection.
I think there's CrissCross that tries to do that, but it failed in all but 2 of the reports that I tested.
An evil hack would be:
parametername: babla_language1 / blabla_language2 / blabla_language3 / blabla_language4
and then use jQuery to get that string. do string.split('/')[index_of_language]
and then prey that / is never within "blabla_languageXY"
Edit:
I actually did that. You have to use setInterval to do it, because there is no way to detect change when you select a parameter.