In the previous article, we learned how to build a Word or PowerPoint template to export project data. In this article, we will learn how to include sub project data in the generated report.



When exporting project data from a program or a project that has been broken down into smaller projects to create a project hierarchy, you may want to include sub project data into the generated Word or PowerPoint report.


There are multiple ways to include sub project information in the generated report. You can:

  1. Include the sub project promoted items.
  2. Generate a combined report that includes a report for each project in the project hierarchy
  3. Generate a PowerPoint report that has some slides repeated for each project in the hierarchy.



1. Including sub project promoted items


As explained in this article, schedule tasks and project impacts can be set to be reported to the parent project or program.


To include the promoted items when exporting the project data to Word or PowerPoint, just make sure to check the box to include promoted items before downloading the report.




The image below gives a graphic representation of how including promoted items works. Project 3 and Project 5 have promoted impact items whilst Project 4 and Project 7 have schedule tasks that have been promoted to the parent project. The generated report will include all promoted items.






2. Including a report for each sub project


The other option to include sub project data in the downloaded report is to iterate the same template through all projects in the hierarchy. The generated report will then include a full report for each project in the hierarchy.


To iterate the same template through each sub project, you need to select the checkbox to generate a combined report before clicking on the Download button.




As you can see in the below image, selecting the combined report option will generate a unique report that includes a report for each sub projects.




3. Repeating slides for each sub projects (PowerPoint templates only)


If you are using PowerPoint to build your project report template, it is possible to indicate if a slide should be repeated and applied to each project in the project hierarchy.


You can for instance build a PowerPoint template that has a cover page, some slides specific to the parent project you are running the template from and some slides that are applied to each project in the hierarchy. You can see an example of a template using repeating slides in the Project Health PPT document attached to this article.


The slides that need to be applied to each sub project must contain one of these keywords:


  • GROUP_REPEAT_FOR_SUBPROJECTS 


    This keyword should be used if you have consecutive slides that should be applied to the parent project and each sub project and you want these slides to be grouped per project.

    When the template is run, if the process finds a slide with GROUP_REPEAT_FOR_SUBPROJECTS keyword, it will look for any consecutive slides with the same keyword and apply the set of slides to each project respectively, in the project hierarchy order.

    In the example below, Slide 2 and Slide 3 of the template use GROUP_REPEAT_FOR_SUBPROJECTS keyword. When the template is run from the parent project, the generated report will display slides 2 and 3 with Project 1 data, then slides 2 and 3 with Project 2 data and finally slides 2 and 3 with Project 3 data.





  • GROUP_REPEAT_FOR_SUBPROJECTS_EXCL_PARENT

    The only difference between this keyword and the previous one is that in this case the repeated slides are not applied to the parent project. This is particularly useful when you want to build a template that have different slides for the sub projects.

    In the example below, Slide 2 and Slide 3 of the template use GROUP_REPEAT_FOR_SUBPROJECTS_EXCL_PARENT keyword. When the template is run from the parent project, the generated report will display slides 2 and 3 with Project Project 2 data and then slides 2 and 3 with Project 3 data. The slides are not applied to Project 1.




  • REPEAT_FOR_SUBPROJECTS 


    Unlike the previous keyword, this keyword does not look for consecutive slides with the same keyword.

    If a slide with this keyword is found when the template is executed, the slide will be applied to each sub project in the hierarchy (in the project hierarchy order) and the process will then resume with the next slide.


    In the below example, REPEAT_FOR_SUBPROJECTS keyword is used for slides 2 and 3 but as you can see in the generated template, slides 2 is rendered for each project in the hierarchy before slide 3 is rendered. 






  • REPEAT_FOR_SUBPROJECTS_EXCL_PARENT

    This keyword should be used instead of the previous one if the slides should not be applied to the parent project.

    In the example below, Slide 2 and Slide 3 use REPEAT_FOR_SUBPROJECTS_EXCL_PARENT keyword. When the template is run from the parent project, the generated report will display Slide 2 for Project 2 and Project 3 and then Slide 3 for Project 2 and Project 3. 






4. Exporting project details, status and financials in a single table


There may be cases where you may want the data from different projects be aggregated in a single table as opposed to having a report for each individual project.


The image below shows an example of a report that includes a summary table of different project status.


To achieve the above result, the table must specify the [REPEAT_ROW] keyword. An example on how to use this keyword is given in the Project Health List document attached to this article. 


[REPEAT_ROW] keyword works differently depending on whether the template is run from a watchlist or a parent project.

  • If run from a watchlist, the table will include a row for each project in the watchlist
  • If run from a parent project, the table will include a row for the parent project and all sub projects.


The project data that can be returned in the table include:

  • the project details and meta-data
  • the project status
  • the project financials.

You can find the list of binding elements to use for each type of data here.