To generate the contents of the header section iteratively for each group in a group report, check the Iterate Header for Groups check box. This property is on by default.
For example, consider a group report that includes the columns sales_order_id and sales_order_order_date. The following screenshot shows the template for this report:
The root element in the Header section of the template, Orders, has a child element, Order. Order has an id attribute whose value is a control reference to the column sales_order_id. Order also has a child element, OrderDate, that contains a column reference to the sales_order_order_date column. These elements make up the header section that will be iterated for each group.
The Detail Start element, Item, has an id attribute whose value is a control reference to the column sales_order_items_line_id. It also has three child elements that contain column references to the line items for product ID, quantity, and ship date.
When the report is exported with the Iterate Header for Groupsproperty on, the order ID and date iterate for each group. The following XML output shows the first three iterations of the group header:
<?xml version="1.0" encoding="UTF-16LE" standalone="no"?> <Orders> <Order id="2001"> <OrderDate>2002-03-14</OrderDate> <Item id="1"> <Product>300</Product> <Quantity>12</Quantity> <ShipDate>2005-09-15</ShipDate> </Item> <Item id="2"> <Product>301</Product> <Quantity>12</Quantity> <ShipDate>2005-09-14</ShipDate> </Item> <Item id="3"> <Product>302</Product> <Quantity>12</Quantity> <ShipDate>2005-09-14</ShipDate> </Item> </Order> <Order id="2002"> <OrderDate>2002-03-18</OrderDate> <Item id="2"> <Product>401</Product> <Qty>24</Qty> <ShipDate>2002-09-18</ShipDate> </Item> <Item id="1"> <Product>400</Product> <Qty>24</Qty> <ShipDate>2002-09-18</ShipDate> </Item> </Order> <Order id="2003"> <OrderDate>2002-03-21</OrderDate> <Item id="3"> <Product>400</Product> <Qty>12</Qty> <ShipDate>2002-09-23</ShipDate> </Item> ...
For reports with more than one group, when you generate a new default template, each group after the first is identified with a special icon and a check on the pop-up menu next to the Starts Group Header item.
When the Iterate Header for Groups check box is selected, each XML fragment in the header section between a Group Header element and the next Group Header element or Detail Start element is iterated.
In the template shown in the previous illustration, sales are grouped by customer ID, then by order ID. The customer group header has attributes for the customer’s ID and first and last names. The order group header has attributes for the order ID and date. The following illustration shows the report in the Design view:
The following XML output shows the first iteration of the customer group header and the first and second iterations of the order group header:
<?xml version="1.0" encoding="UTF-16LE" standalone="no"?> <d_customer> <customer id="101" fname="Michaels" lname="Devlin"> <order id="2001" date="1996-03-14"> <order_item> <sales_order_items_line_id>1</sales_order_items_line_id> <sales_order_items_prod_id>300</sales_order_items_prod_id> <sales_order_items_quantity>12</sales_order_items_quantity> </order_item> <order_item> <sales_order_items_line_id>2</sales_order_items_line_id> <sales_order_items_prod_id>301</sales_order_items_prod_id> <sales_order_items_quantity>12</sales_order_items_quantity> </order_item> <order_item> <sales_order_items_line_id>3</sales_order_items_line_id> <sales_order_items_prod_id>302</sales_order_items_prod_id> <sales_order_items_quantity>12</sales_order_items_quantity> </order_item> </order> <order id="2005" date="1996-03-24"> <order_item> <sales_order_items_line_id>1</sales_order_items_line_id> <sales_order_items_prod_id>700</sales_order_items_prod_id> <sales_order_items_quantity>12</sales_order_items_quantity> </order_item> </order>