You can do this. What you need to do is put the controls in the body of your report into a List control. In the Details group properties of that List control, group by year and set it up to page break between each group.
The basic steps are in the answer here below.
- Create a new report with an empty body.
- Add the Data Source(s), Parameter(s), and Dataset(s) that are needed. Make sure to include Year in your main dataset.
- Add a List object to the body. Drag and drop it into the body from the Toolbox.
- Set the Dataset for the list to the main data that has the year in it.
- In the Row Groups pane of the Visual Studio report designer, right click on the Details row, and choose Group Properties. On the General page, click the Add button under Group expressions, choose
Year
from the Group on dropdown. This assumes you are getting this in the data.
- While in the same dialog, go to the Page Breaks page and check the Between each instance of a group option. Click OK.
- Add a Tablix inside the List. This is what will show your data.
- Add some fields to the Tablix.
- Run the report.
If your data returned information across more than one year, upon export to Excel, you will have one sheet for each year.
To set the sheet labels, you set the PageName property on the List detail properties pane.
- Click the List control
- In the Row Groups pane of the Visual Studio report designer, click on the Details row
- Find the Page Name property in the Properties Pane, and set the expression to the Year value from the dataset
=Fields!Year.Value
Now the sheets should be labeled with the year.