How good would it be if you could re-arrange the already created groups without the need for re-designing the whole report?
The re-ordering of groups can be implemented in ActiveReports with the help of the DataField property of the Groups.
In ActiveReports a group uses a DataField property to organize the data in a data region. Hence, in order to modify or re-order the existing groups, you just need to change its DataField property.
On running the attached sample you will observe that the initial grouping hierarchy is as follows :
Country | City
However, the hierarchy can be easily re-ordered to :
City | Country
Just click the 'Re-order Groups’ button and you will see the difference.
If you look at the following code, you will observe that every-time the button is clicked, the value for 'DataField' property of the groups and groups' controls is swapped. That's it! This does the trick.
'Fetch the value of each group's DataField property Dim grpsec As New GroupHeader grpsec = CType(rpt.Sections(1), GroupHeader)</span> val1 = grpsec.DataField.ToString grpsec = New GroupHeader grpsec = CType(rpt.Sections(2), GroupHeader) val2 = grpsec.DataField.ToString 'Swap the DataField value Dim grpsec1 As New GroupHeader Dim grpsec2 As New GroupHeader grpsec1 = CType(rpt.Sections(1), GroupHeader) grpsec1.DataField = val2 grpsec1.Controls(0).DataField = val2 grpsec2 = CType(rpt.Sections(2), GroupHeader) grpsec2.DataField = val1 grpsec2.Controls(0).DataField = val1
The output will look something like this :
You may download the attached samples for complete implementation.
Download VB Sample
Download CSharp Sample