Add Content in Groups
You can use a group to include the same content in different parts of a report. The DOM API clones the members of a group before appending them to another object.
This example shows the key code to include. After describing the steps involved in using a group, this example includes code for a complete report that uses a group.
Define the DOM objects that you want to include repeatedly in a report.
disclaimerHead = Heading(2,"Results May Vary"); disclaimerIntro = Paragraph("The following results assume:"); disclaimerList = UnorderedList(... {"Temperature between 30 and 70 degrees F",... "Wind less than 20 MPH","Dry road conditions"});
Define a
Group
object that includes the DOM objects for the group. For example:disclaimer = Group(); append(disclaimer,disclaimerHead); append(disclaimer,disclaimerIntro); append(disclaimer,disclaimerList);
Append the
Group
object in the place in the report where you want to repeat the content. For example, if the document object isdoc
:append(doc,disclaimer);
This code builds a report based on this approach.
import mlreportgen.dom.*; doc = Document("groupReport","html"); disclaimerHead = Heading(2,"Results May Vary"); disclaimerIntro = Paragraph("The following results assume:"); disclaimerList = UnorderedList(... {"Temperature between 30 and 70 degrees F",... "Wind less than 20 MPH","Dry road conditions"}); disclaimer = Group(); append(disclaimer,disclaimerHead); append(disclaimer,disclaimerIntro); append(disclaimer,disclaimerList); append(doc,disclaimer); p1 = Paragraph("First set of results..."); p1.Bold = true; p2 = Paragraph("more report content..."); p2.Bold = true; append(doc,p1); append(doc,p2); append(doc,disclaimer); close(doc); rptview("groupReport","html");