Internally, you are going to show data in your report based on the dataset fetched from database using some query.
Thus, best place to handle it out would be at Query level. Based on the number of parameters or type of parameters, have different queries and pass on the data fetched to the report.
Or, in case you want different reports than you can do that too. Have a look at this:
Dynamic Crystal Report with C#[
^]