• I've used a slightly different approach for dynamic grouping. Instead of setting the grouping expression to a parameter, I define calculated fields in the dataset named simply Group#.

    I have used this for up to three exclusive levels of grouping. By exclusive I mean that the grouping options are filtered so that the item selected to group by in level 1 is not available in the parameter list for group level 2.

    I have also found this to be very maintanable for others as the logic is contained exclusively in the calculated field and grouping within the report is handled just like using a normal field. It is also very easy for others to understand what they are looking at when the cell values are set to use fields named Group1, Group2, Group3 rather then seeing <expr> in all of the cells. Just like in the article, I hide the headers/footers for a level when they select "No Group".

    Wes
    (A solid design is always preferable to a creative workaround)