i am building a SSRS report using report builder 3.0.
i have parameter ACCNUMBER which contain a large number or records, and i am using inside my report the below function :
join(Parameters!ACCNUMBER.Value, ",")
when i generate the report for and i selected few values from ACCNUMBER parameter the report is generated normally; however if i generate the report while Select All values in ACCNUMBER parameter, i receive the below error:
appreciate your assistance.
It looks like you are on the right track but just need to also update the value for MaxJsonDeserializerMembers.
There is a (c)onstraint (on .NET framework or Web server I think) that allows only 1,000 values to be loaded under parameter drop down boxes
Add the following tags under section. Note: If
doesn't exists in config files add the whole tag from
below just after <\system.web> section. If "appSettings" is already
there just add 2 keys from below. I put 30000 as maximum number of
items, but you can use any number of values.
<appSettings>
<add key="aspnet:MaxHttpCollectionKeys" value="30000" />
<add key="aspnet:MaxJsonDeserializerMembers" value="30000" />
</appSettings>
From Mladen's MS BI Blog
Related
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.
I am creating a report with columns say A,B,C,D,E. I am setting up a drill down on the column A that fetches one more report with Columns
G,H,I,J. The values for the columns G,H,I are from taken the columns A B C. For the column J,I need to pass a parameter explicitly(not from the source report). I set that parameter in
the properties section -> Available Values and mentioned the values. I ran the main report and get the following error
The Parameter J is a missing value
I am pretty much new to the SSRS projects and would be great if I could any assistance on this
It sounds like you are putting parameter J in the wrong place. It doesn't go in the Parameters collection for the main report but in the parameters that are passed to the sub-report.
Right-click the cell with the drill-down and select Text Box Properties.... Choose Action from the left-hand menu and it will show the drill-down report. Under this it says Use these parameters to run the report:
Add the parameters of the sub-report and the values you are passing. You can use an expression to provide the value for parameter J.
I have a main report with several sub reports, each of these with slightly different queries and different ways to show the data.
So, in my situation, I have a textbox that needs to compile data from a few different reports with varying criteria. E.G.
MainReportTextbox =(Sum(columnA, "Main Dataset"))-(SubReportTextBox))
OR
MainReportTextbox =(Sum(columnA, "Main Dataset"))-(subReportVariable))
I saw a few suggested solutions, such as this. Which uses the =[Reports]!MainReport!SubReport!Textbox scheme. The problem is that [Reports] is not a recognized identifier.
I did consider to scrap sub reports and just have everything run on the same main report, but we lose the functionality of being able to use the reports individually, without maintaining the same thing in two places.
So I guess my question is, can you pull variables or element(particularly textboxes in a table) values from sub reports?
If the answer is simply no, please show me some information about why it is no or how it is no from MSDN or a valid source and give some valid counter suggestions.
The links in the question and comments sometimes refer to non-SSRS reports: the syntax [subreport].[Report]![MyFieldName] or [Reports]![YourReportName]![YourSubReportName]![TheValueFromTheSubReportYouWantToReference] are not used in SSRS. It is, however, used in designing MS Access reports, as ojeffrey points out in the discussion you link to.
There is no common method to access data in a subreport. The SSRS model is that parent report data is processed, subreport data is processed, the subreports are rendered, results go back to the parent, then parent is rendered, including the subreport as appropriate. The only data passed between the two is parameters are passed into the the subreport, and rendered output is passed back to the parent. You'll see the that data passed in from the parent must be as report parameters here: http://technet.microsoft.com/en-us/library/ms160348(v=sql.100).aspx
All parameters that are required by the subreport must be included in
the Parameters list. If a required parameter is missing, the subreport
is not displayed correctly in the main report.
For citing authoritative sources:
This discussion sums it up:
No, referring to a report item in a subreport is not allowed.
But that is a bit old, there is also this more recent discussion of work-arounds, provided by Microsoft employee and a MS BI MVP:
You are going to need to replace the subreport item with a data region
like list, table, or matrix to be able to get the proper reference you
are looking for.
[Skipping down to another post]...
Now, it seems you want to calculate the
difference between main report and the subreport. Also, because they
have the different data source, so you cannot use nest
table/matrix/list, right? If so, one workaround I can think of is
pass parameter to the sub report and calculate the total/subtotal in
sub report. I mean, create several hidden/ internal parameters, pass
the values from main report to sub report through parameters and then
calculate the total/subtotal there.
Jeroen's answer to the linked question point towards the direction I would go: use a "Shared Dataset" and enable caching if the dataset is slow to execute. The same dataset execution can then be used for the parent and subreports. This can change the use of parameters: they usually get moved from the SQL query to the filter of the Dataset in the report.
But with the Lookup function introduced in SSRS 2008R2, you can get very flexible with report level joins between datasets.
The details of how I'd design this depend a lot on how much other data needs to get passed back and forth, and how neatly the queries for the reports can be knit together.
Create variable in main report and update it in sub report so you can get value back to main report
ex:
Create formula in main report with name {#Total} place flowing in it
WhilePrintingRecords;
shared Numbervar myTotal := 0;
NOTE : placing ; will not print value and without ; will print value in above example value will not be printed if you want to print value of formula just remove ; from second line ex
WhilePrintingRecords;
shared Numbervar myTotal := 0
now place {#Total} in report header of your main report
now create second formula in sub report where you want to add subtotal to main report formula with name {#addTotal} place following lines in it
WhilePrintingRecords;
shared Numbervar myTotal;
myTotal := myTotal + 200; //or any formula or field
add this formula to place in sub report where you want to add value to total
now create formula in main report to show grand total with name {#showTotal} and place following lines in it
WhilePrintingRecords;
shared Numbervar myTotal;
myTotal
place {#showTotal} in your main report where you want to show this value in report but remember one thing you should place this formula after sub-report.
NOTE : to assign value to variable use := operator
I am working on a report that uses multiple sub-reports. I have two parameters: t_driver_pk and BatchID for the report. I have been able to display the data for each driver on a new page in the subreport using page break and repeat header options (all the subreports have been grouped by t_driver_pk). But, then when I go to main report and run it selecting multiple drivers on t_driver_pk parameter. I am getting a single report that combines the data for all those driver. Essentially, I would like to have it displayed as following:
Parameters:
**t_driver_pk**: 5000,4500 BatchID:610
FirstDriver
Subreport1
Subreport2
Subreport3
Subreport4
Second Driver
Subreport1
Subreport2
Subreport3
Subreport4
Any help would be greatly appreciated. Thanks in advance!
Have you tried adding a Dataset to the report that is driven by the selected t_driver_pk values (i.e. if 5000 and 4500 are selected in the parameter then the new dataset returns the same values).
You should be able to use this dataset with a List data region, which you can insert your subreports into and then pass the current value of t_driver_pk from the new dataset to the subreports. That should repeat them for each value of t_driver_pk.
I'm noticing some strange behaviors when deploying reports from BIDS to SSRS. I have a parameter that has default values, but those default values don't seem to be getting propagated to the Report Server (they are stored in Parameters field in the Catalog table). Yet when I add new parameters I could see the field is changing. It's almost like the deployment tool is ignoring certain parameters. Any thoughts?
If this helps, my RDL looks like this:
<ReportParameter Name="INCLUDEDFIRMS">
<DataType>Integer</DataType>
<DefaultValue>
<Values>
<Value>1</Value>
</Values>
</DefaultValue>
<Prompt>Monkey</Prompt>
<Hidden>true</Hidden>
<MultiValue>true</MultiValue>
</ReportParameter>
Yet the field in the database after deployment looks like this:
<Parameter>
<Name>INCLUDEDFIRMS</Name>
<Type>Integer</Type>
<Nullable>False</Nullable>
<AllowBlank>False</AllowBlank>
<MultiValue>True</MultiValue>
<UsedInQuery>True</UsedInQuery>
<State>MissingValidValue</State>
<Prompt />
<DynamicPrompt>False</DynamicPrompt>
<PromptUser>True</PromptUser>
<DefaultValues>
<Value>23</Value>
<Value>17</Value>
</DefaultValues>
<Values>
<Value>23</Value>
<Value>17</Value>
</Values>
</Parameter>
When overwriting an existing version of a report, certain aspects of the parameters are not updated. This lets you preserve different defaults on the server and helps avoid interruptions to subscriptions.
Try deleting the SSRS version of the report and then re-deploy. This should update the parameters. (But at the expense of losing any existing subscriptions.)