Hi,
The solution what you tried will work but there will be a performance impact. Consider a scenario where you have 10 years of data in the database then you will be fetching data for 10 years into report and filtering to show only 2 years data.
that is the reason it is always better to filter the data at the query level than report level.
Did you try the approach which i mentioned?