集計条件がデータの内容に応じて動的に変わる、ということでしょうか。
プログラム側からグループのキーを変えてしまう、という方法があります。
例えば最上位にあるグループのブレーク条件キーを書き換えるC#のコードは以下になります。
// 最上位グループのブレーク条件キーを設定
report.Design.GroupDesign.Keys = new List<string>() { "key1", "key2" };
ブレーク条件キーを設定したいグループが最上位でないなら、該当のグループに識別子(id)を設定した上で、
次のようなコードで設定できます。
// group_id という識別子を持つグループのブレーク条件キーを設定
report.Design.FindGroupDesign("group_id").Keys = new List<string>() { "key1", "key2" };