ActiveReports 17 .NET Edition
Report Authors: Designer Components / Design Reports / Design Page/RDL Reports / Group Data
In This Topic
    Group Data
    In This Topic

    In a Page report and RDL report, you can set grouping to organize data in your reports. The most common grouping scenario is to create groups by fields or expressions in a data region.
    Depending on the data region you select, you can group data in one of the following ways:

    Group in a FixedPage

    In a Page report, you can group your data on the fixed page. A group set on the fixed page, applies to the entire report including the controls within the report. Therefore, once you set grouping here, you may decide not to group individual data regions. See Page Report topic for more information on properties available for grouping data.

    Use the following steps to understand how to apply grouping on a fixed page. These steps assume that you have already added a Page report template, connected it to a data source and created a dataset.

    1. Right-click the gray area outside the design surface and select Fixed Layout Settings or with the fixed page selected, under the Properties Panel, click the Property dialog link to open the FixedPage dialog.
    2. On the Grouping page, in the General tab, under Group on enter the field name or expression on which you want to group the data. For example, =Fields!YearReleased.Value.
      Note: A default group name like FixedPage1_Group appears under Name, once you set the group. To modify the group name, add a field name or expression under Group on to enable the Name option and enter a new name. 
    3. Under the Document map label field, you can optionally set a label to add the item to the document map.
    4. Click OK to close the dialog.
    5. Drag and drop a data region, for example, a Table data region, onto the design surface and set data inside its cells.
    6. Go to the Preview Tab to view the result. You'll notice that the data appears in groups sorted according the YearReleased field on each report page.

    Detail Grouping

    Detail grouping is available in the List and Table data regions. It is useful when you do not want to repeat values within the details. When you set detail grouping, the value repeats for each distinct result of the grouping expression instead of each row of data.

    For example, in Table topic, if you do not set detail grouping, you see each year as many times as there are movies from that year.
    Ungrouped Table Data

    If you set detail grouping to =Fields!YearReleased.Value, each year appears only once.

    Grouped Table Data

    Recursive Hierarchies

    If you want to display parent-child relationships in your data, you can create a recursive hierarchy. To do this, you need a unique ID field for the child group and an ID field for the parent group.

    For example, if you have pulled data from the Reels database using the following SQL query:

    SQL Query
    Copy Code
    SELECT EmployeePosition.*, Employee.*, Employee_1.PositionID AS ManagerPosition FROM Employee AS Employee_1 RIGHT JOIN (EmployeePosition INNER JOIN Employee ON EmployeePosition.PositionID = Employee.PositionID) ON Employee_1.EmployeeID = Employee.ManagementID;

    You can set Detail Grouping in a Table data region using the =Fields.Item("EmployeePosition.PositionID").Value field, and the =Fields!ManagerPosition.Value field as the parent group to display parent-child relationships in your data. To view the hierarchy level, add another column in the table and add expression =Level().

    Recursive Hierarchy

    Note: You can use only one group expression when you set a parent group.

    Level Function

    To better visualize data in a recursive hierarchy, you can use the Level function, which indents text and further clarifies the relationships between parent and child data. To do this, you set an expression in the Padding - Left property of the text box you want to indent.

    For example, in a Table data region, for the recursive hierarchy example above, you can set the following expression in the Padding - Left property of the text box that contains the 'Title' to indent values according to levels:

    =Convert.ToString(2 + (Level()*10)) & "pt"

    Recursive Hierarchy