How to populate a report level variable from a dataset - reporting-services

I want to populate a report level variable from a dataset.
Background: I have a report that needs to perform a DB lookup to get a single row/column value. That value needs to populate a report level variable. Of data type datetime.
Here is something I have tried.
Click in report area
Under report properties I navigate to variables
Create a new variable and assign it a name.
Click on the "fx" button to open the dialog.
I use the "First" function in an attempt to assign the value.
I get the "...value expression for the report 'body' uses aggregate function First..." error.
Is there any way to make this happen at the report variable level?
Thanks,
Donnie

Why not use a parameter? You can set the default value based on a query. If you don't want your users to overwrite it, make it hidden.

Related

SSRS Open sub report with provided parameters

I have a report which has 5 parameters and i want to open another report from this report which has 13 paramaters.
When i try to open this report it says some parameters are missing.
I want to know if it is possible like, if i do not pass parameters then it should ignore these parameters in repport and also in SQL query (all these are multivalue parameter).
I cannot use "allow null values" as these are multivalue parameter.
This is main report
These are parameters in sub report which i want to call
Can someone help me please? or i need to create seperate subreport with exact parameters everytime
There are two common ways of doing this.
Populate parameters with a list default values
In your subreport, taking #service as an example. If you can get a list of services from your database then create a dataset tat gives a list of distinct services, use this as the default value for your parameter. Then when you do not pass anything from the main report, the subreport will use all services.
Set the default parameter value to a fixed constant
The other option is to set the subreport parameters to a default value such as *all and then handle this when it is passed to your subreport's dataset query.
So the dataset query might be something like
SELECT *
FROM myTable
WHERE location in (#location)
AND (service = '*All' OR service IN(#Service)

How to pass variables as parameters to subreports using SSRS

I am working on an SSRS project which has main report and sub reports. To the subreport, I would like to pass a variable that uses stuff sql syntax. This variable will have comma separated values. I would like to know how to pass variables as parameters to subreports.
If you go to the Action tab in the properties window, there is an area at the bottom which you can assign the parameters to be passed to the next report. If you want to pass an existing parameter, you would send
=Parameters!MyParameterName.Value
as the value.
I'm not sure what "stuff sql syntax" means, but you can pretty much put whatever you want into the value field as a string and parse it in the next report.

ssrs forward parameter and available values

I have a drill down report in ssrs. Trying to pass the value of a parameter from parent report to child. Now in child report i already have a set of available values for that parameter. What i am trying to achieve is, when the child report loads the default value should be the one I am passing from the parent report and the report data should get loaded based on that and after the initial load the user can select form the drop down and refresh the report. For me the problem is when the child report is getting loaded its not taking the value of the parameter passed from the parent report.
Kindly help. Thanks.
I've set up a dummy report that does what you asked for and found that SSRS will just not work - not give an error at all - if you don't have it exactly right.
Here are the steps I followed to make it work.
Create the parameter on the parent report and ensure it is set and that you are setting it either at run time or via default.
Ensure that the parameter you want to SET exists in the child report and has NO default value (this may not be necessary, but will help with debugging if it goes wrong)
Make sure the child report parameter has the the available values for your drop down set and that the one you are passing is there
Set up the drill through using the action section of the properties and Go to report
Specify the drill through report
Choose the parameter from the Name drop down (the available parameters in the child report WILL be there) and set the Value to [#ParameterName]
Test
If you don't want a parameter on the parent report and just want to hard code the value you can skip step 1 and change step 6 to just use the value.
you need to set the default specific value to the parameter so it will not show you "Select Value" in dropdown list.
Once you send parameter from Parent report it will set the value.

Using column from main dataset as multi-value parameter in subreport

Hi I am using SSRS 2008.
My set up is MainReport with dataset1 and 1 parameter - OrderID. One of the columns in dataset1 is ShippingID.
My other report called - SubReport has 1 multivalue paramter - ShippingID.
I am trying to use ShippingID from Main report as multi-value parameter for Subreport.
I tried different threads here but mostly they are diffrent than my scenario.
How do I go about setting this up, is that even possible?
I have been trying to set it up for whole day but unsuccessfully.
In my scenario one Order can be on multiple shipments.
One of the things I tried is creating new multi-value parameter in MainReport - call it shippingIDs_sub and mapping its default value to dataset1.ShippingID. But when I try to run report I get error "The 'shippingIDs_sub' parameter is missing value" - because my MainReport would sometimes return NULL in ShippingID column.
My scenario is very much similar to this
SSRS passing parameter to subreport
although I sometimes get NULLs in the column used as source for multi-value parameter.
Is there any way to filter out NULLs and run subreport only for existing IDs?
In the Action where you call the sub-report, where you map to shippingIDs_sub, use an expression to pass some valid value whenever the value in your dataset is NULL.
=IIF(IsNothing(Fields!ShippingID.value),"Some Valid Value",Fields!ShippingID.value)
As to this:
Is there any way to filter out NULLs and run subreport only for
existing IDs?
No, you can't turn off the ability to go to a subreport, but you can "hide" it by changing the appearance of whatever your user clicks on so that it doesn't look like it's clickable. For example, in our reports, when something is clickable, we make it underlined in blue. So if I don't want to user to click it, I just make it the same font color/style as all the other text. But it doesn't stop a determined user from clicking on it anyway if they want.

Parameter missing a value

I am new to reporting services and have a reporting services 2005 report that I am working on to use as a base report template for our organization. I am trying to place the date that the report was last modified on the report server into the page header of the report. However, I keep getting a 'ParamX' parameter is missing a value error when I try to This is what I have done:
Set up a Parameter ReportName with a default value of Globals!ReportName. It is also hidden and internal.
Set up a Dataset ReportHeader that calls a stored procedure that returns the date the report was last updated or another date, if the report is not on the report server. It has a parameter #ReportName assigned to the Parameter!ReportName.Value. The Dataset returns values when run on the dataset tab in the BI tool.
Set up a Parameter ReportVersion that has a default value Query From based on the dataset ReportHeader and picking the ModDate column. It is the last parameter in the report parameters list.
I assign a textbox to the parameter.
When I preview, I get "The 'ReportVersion' parameter is missing a value whether I place it in the report body or page header (which is where I want it). I have deleted and added the parameter again, toyed with the hidden and internal settings on it.
What does this error really mean, what I am missing, and can I even do this with parameters?
Thanks In Advance
Jim
If I understand what you're doing, it sounds like you want to be using a field where you're implementing a parameter...
You are returning the ModDate from the data source, correct? If you're doing this, you can simply throw a text box in there, and use something like this: =Fields!modDate.Value to display it.
Parameters are values that go in to the query, fields are what it returns.
Hope this helps...
EDIT:: OK so are you trying to retrieve the mod-date column value from the reportserver db? If that's what we're talking about, you'll need to add a few things to the report. Add a datasource to report db, a dataset containing the date (query below), a list object in the report linked to the dataset, and a textbox in said list object to display the field. If you hit the report server with a query like this:
SELECT MAX(ModifiedDate) AS ModDate FROM catalog WHERE name='myReportName'
That will return your modifieddate from the ReportSErvices Database as a field that you can use.