I am working on a SSRS report in which I have a parameter with a list of names, In which a multiple value can be selected by the user. I gave title of the report using an expression where it shows "Result for SELECTED NAME" and applied page break such that each value is displayed on a new page.
But when i select all the values at a time, the report is only displaying the results for the names only for whom the data is available.
I would like to display the title as "Result for SELECTED NAME"(remember this is for the values with no data along with the values with data, each on new page) and tablix structure with a NoRowmessage.
I am really struggling on this since two days!!
Can any one help me?? Thanks Guys.
I think you should look at your query. Is your query returning a row for each name, or only rows where the names exist? If you can, change the structure of your query to return the names, left joined to your actual query.
Here's some simple code that captures the idea:
SELECT names.Lastname, names,Firstname, data.*
from (select distinct name from name table) as names
left join (previous query) as data on data.nameID = names.nameID
Related
New to SSRS, we asked me to create a simple report on SSRS, linked to a Sharepoint List.
The Report consists of a tablix with two columns: Client and the number of orders they passed.
The first column is only containing the sharepoint field "Client Name", and the report generate automatically a list of Clients based on the content of the Sharepoint List. The Column is also used as a group by to the Tablix, to group the results by Client Name.
My second column is an expression :
=Count(Fields!ID.Value, "Client")
The column is working nearly accordingly to my willing : the report displays the number of orders by client in the list, but... When a client has more than one order, the count is displayed the same number of times.
How can i prevent that? I tried a Running Value solution, or only count.. But if the results are not the right one, the same problem is occuring : The report tablix have as much rows than elements list.
Picture for helping, because my english is far for perfect.
Image of the multiples rows
You can set client column in group expression in Details section. Check below screen shot, It will help you.
I have a report which uses 3 datasets and on the report a am using Multiple Tables and Textboxes and expressions. When I run the report I have to select a Parameter which in this example is 'City'.
I want a new page for each City (parameter) , I have read to use page breaks and grouping but I selected a List from the toolbox and put that on top of my report, selected 2 'Cities' and expected it to return 2 pages but it returned 49 pages (majority blank)
I want a separate page per city how can I achieve this?
Thanks
If I understand you correctly (it difficult to be sure if you don't post your current design) then you would be better using subreports.
I'm assuming Cities are in a table in your database and each have a unique ID. If you only have the names then you can use CityName inplace of CityID and it will still work.
Create a new report.
Create new dataset (say dsSelectedCities and the set dataset query to something like ...
SELECT CityID, CityName FROM myCitiesTable WHERE CityID IN (#CityParameter)
This will automatically generate a report parameter called #CityParameter. Set the available values etc just the way you did in your original report, so if you need to add another dataset for this then do so. In this example I've assumed labels will be CityName and Values will be CityID. Whatever goes into the Values is what will be passed to our subreport.
Now add a table to you report, it only needs to be one column wide and one row long so just remove any other rows and columns just make sure you leave the detail row and not the header.
Set the dataset for the table to be dsSelectedCities
Make this remaining cell with wide enough to accommodate your subreport (which will be the report you originally wrote).
In the cell, insert a subreport
Set the subreport properties to point to your original report and set the parameter to the CityID field.
This table will act as a loop, for each record found in dsSelectedCities it will give us one row. As each row will have a single CityID we are passing that to the subreport, the subreport in turn just shows one City.
Set the page break option on the details group to break between instances.
You will probably have to modify your original report to accept a single CityID, it depends on how it was designed but hopefully this should get you going.
If this is unclear then post your current report design including all the details about parameters and I'll update the answer.
I am generating a table in SSRS based on the selection made by the user on two filters: Filter1 and Filter2 (say). The table so displayed has 10 columns and I wish to add filter option listing all available values for that column for all 10 columns.
Basically, I am trying to replicate the Excel functionality of filtering down data on each and every column.
Please note that I tried creating a new data set and a parameter taking all distinct values for a particular variable. However, I am still not able to get the desired results by filter the tablix on that parameter
Is there a way I can do that?
You'd need to make a new dataset that is a smaller version of your main dataset. It would need to return all potential values for the column(s) you want to filter in a single column to be used in a parameter.
Without seeing the design of the report or the dataset itself it's quite hard to be more specific.
I currently have a few parameters set up in my SSRS report, but one is kinda giving me a bit of a headache.
I currently have a parameter called PARAM_ONE which is populated by a Dataset that I have. The value is populated the Id field of my Dataset and the label is the TextValue field of my Dataset.
I have another parameter called PARAM_TWO which is populated by a Dataset that is filtered based off of what is selected from PARAM_ONE. Again the Parameter value is populated by the Id field of this Dataset and the label is the TextValue.
My issue is that this Parameter shows duplicate fields because of the way that the data is set up. There are multiple values that go to the corresponding data I am trying to display. I would like to set it up to group all of my PARAM_TWO data that way duplicates are not showing, but I still need that first dataset relationship to map the data.
I hope this makes sense, and someone can help. If I am not making sense and need to clear anything up I would be more than happy to, just let me know.
I was able to figure out the solution to my issue thanks to the help of #user3340627.
In my dataset I created a query that looked something like this:
SELECT DISTINCT Id, TextValue FROM MyTable
WHERE SecondId = #PARAM_One
This created a parameter in the Parameters tab called #PARAM_ONE. I was then able to map my report parameter to the query parameter and run it with no issues.
I am modifying an existing report which is setup to let you view statistics per sales rep. You do this by changing the parameter sales rep in the report view.
I need to modify the report so that it can display a page for each sales rep. This will then be exported to Excel with each sales rep statistics being displayed in a separate tab.
I have researched this and found people talking about iterating over a report but I don't think that what they are referring too is what I am asking:
http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/27ffabcc-6286-4fed-a8bf-0e5d78560be3
http://jameskovacs.com/2005/08/04/digging-deep-into-reporting-services/
You can accomplish this several ways, so here is 1 suggestion
Create a new tablix report whose query returns a (unique) set of all sales reps
group by sales rep
there is no detail row, but in the group footer/header add a subreport
the subreport will be the report you already are using and it's parameter will be the sales_rep value from your main report query
set page breaks for the group
The main way I can think of doing it is to pass the parameters into the stored procedure, and in there have logic to UNION together all the possible results you want with a field for grouping the sections.
For example if they had a parameter for "Report Sections" and had selected "1, 2, 3", then you pass the parameter to the stored procedure; inside it uses a SplitString routine to convert the commas into a table format, and then constructing another temp table to hold the results. Everything is accumulated into there with a SectionNumber field (1, 2, 3, etc), and then the whole lot gets returned. Your group groups on that, with page break set, and that's it.