Report Examples Parent-child report
This is an example report using the parent-child
template
Contents
<div class="govuk-width-container">
<div class="govuk-width-container report-list-container">
<div class="dpr-reports-heading-container govuk-!-margin-top-5">
<div class="dpr-report-header">
<div class="dpr-report-heading__actions">
<div class="report-actions" data-dpr-module='report-actions'>
<div class="moj-button-menu"></div>
<div class="dpr-display-none">
</div>
</div>
</div>
<div class="dpr-report-heading">
<div class="dpr-report-heading__title">
<span class="govuk-caption-l">A Test Report</span>
<h1 class="govuk-heading-l">
Parent Child Template
</h1>
</div>
</div>
<div id="dpr-download-message" class="dpr-download-message--hidden govuk-!-margin-bottom-6" data-dpr-module='download-message'>
<article class="moj-ticket-panel" aria-label="Sub navigation 1">
<section class="moj-ticket-panel__content moj-ticket-panel__content--blue" aria-label="Section 1">
<h2 class="govuk-heading-m">To download this report</h2>
<p><a href="/download/test-report-1/variantId-26/tblId_1747313850286/feedback?reportUrl=/async/report/test-report-1/variantId-26/request/tblId_1747313850286/report" class="govuk-link govuk-link--no-visited-state">Fill out a form</a>, which will take about 1 minute to complete.</p>
<p>You can then download the report whenever you need it.</p>
</section>
</article>
</div>
<details class="govuk-details dpr-meta-data-details">
<summary class="govuk-details__summary">
<span class="govuk-details__summary-text">
Report details
</span>
</summary>
<div class="govuk-details__text">
<div class="dpr-request-details">
<table class="dpr-request-details__table">
<tbody>
<tr>
<td class="dpr-request-details__table-heading">
<p class="govuk-body-m dpr-request-details__table-heading_name">Name:</p>
</td>
<td>
<h1 class="govuk-heading-s govuk-!-margin-bottom-0">Parent Child Template</h1>
</td>
</tr>
<tr>
<td class="dpr-request-details__table-heading">
<p class="govuk-body-m dpr-request-details__table-heading_name">Product:</p>
</td>
<td>
<h1 class="govuk-heading-s govuk-!-margin-bottom-0">A Test Report</h1>
</td>
</tr>
<tr>
<td class="dpr-request-details__table-heading">
<p class="govuk-body-m dpr-request-details__table-heading_name">Description:</p>
</td>
<td>
<p class="govuk-body-m govuk-!-margin-bottom-0">A report with parent and child datasets</p>
</td>
</tr>
<tr>
<td class="dpr-request-details__table-heading">
<p class="govuk-body-m dpr-request-details__table-heading_name">Classification:</p>
</td>
<td>
<p class="govuk-body-m govuk-!-margin-bottom-0">OFFICIAL</p>
</td>
</tr>
<tr>
<td class="dpr-request-details__table-heading">
<p class="govuk-body-m dpr-request-details__table-heading_name">Requested at:</p>
</td>
<td>
<p class="govuk-body-m govuk-!-margin-bottom-0">15/05/2025, 13:57:32</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</details>
<div class="dpr-report-details-print">
<div class="dpr-request-details">
<table class="dpr-request-details__table">
<tbody>
<tr>
<td class="dpr-request-details__table-heading">
<p class="govuk-body-m dpr-request-details__table-heading_name">Name:</p>
</td>
<td>
<h1 class="govuk-heading-s govuk-!-margin-bottom-0">Parent Child Template</h1>
</td>
</tr>
<tr>
<td class="dpr-request-details__table-heading">
<p class="govuk-body-m dpr-request-details__table-heading_name">Product:</p>
</td>
<td>
<h1 class="govuk-heading-s govuk-!-margin-bottom-0">A Test Report</h1>
</td>
</tr>
<tr>
<td class="dpr-request-details__table-heading">
<p class="govuk-body-m dpr-request-details__table-heading_name">Description:</p>
</td>
<td>
<p class="govuk-body-m govuk-!-margin-bottom-0">A report with parent and child datasets</p>
</td>
</tr>
<tr>
<td class="dpr-request-details__table-heading">
<p class="govuk-body-m dpr-request-details__table-heading_name">Classification:</p>
</td>
<td>
<p class="govuk-body-m govuk-!-margin-bottom-0">OFFICIAL</p>
</td>
</tr>
<tr>
<td class="dpr-request-details__table-heading">
<p class="govuk-body-m dpr-request-details__table-heading_name">Requested at:</p>
</td>
<td>
<p class="govuk-body-m govuk-!-margin-bottom-0">15/05/2025, 13:57:32</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="dpr-report-interactive-actions">
<div class="dpr-columns-section-wrapper">
<div class="dpr-columns-section-heading">
<p class="govuk-body"><strong>Columns</strong></p>
</div>
<div class="dpr-interactive-filters-accordion">
<div class="columns-section-button">
<details class="govuk-details">
<summary class="govuk-details__summary">
<span class="govuk-details__summary-text">
Show columns (2 of 2 shown)
</span>
</summary>
<div class="govuk-details__text">
<form data-dpr-module="columns" class="dpr-columns-form">
<div class="columns-container">
<div class="govuk-form-group govuk-!-margin-bottom-3">
<fieldset class="govuk-fieldset" aria-label="columns checkboxes">
<legend class="govuk-fieldset__legend govuk-label govuk-!-font-weight-bold">
Select report columns
</legend>
<div class="govuk-checkboxes govuk-checkboxes--small" data-module="govuk-checkboxes">
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="columns" name="columns" type="checkbox" value="section1" checked>
<label class="govuk-label govuk-checkboxes__label" for="columns">
First
</label>
</div>
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="columns-2" name="columns" type="checkbox" value="field1" checked>
<label class="govuk-label govuk-checkboxes__label" for="columns-2">
Second
</label>
</div>
</div>
</fieldset>
</div>
</div>
<div class="govuk-button-group">
<button type="submit" class="govuk-button govuk-button govuk-!-margin-bottom-0 dpr-apply-columns-button" data-module="govuk-button">
Apply columns
</button>
<a class="govuk-link govuk-link--no-visited-state dpr-reset-columns-button" href="#">Reset columns</a>
</div>
</form>
</div>
</details>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="report-template-container ">
<div class="dpr-report-totals">
<p class="govuk-body"></p>
</div>
<div class='dpr-table-container dpr-table-container--parent-child'>
<div id="table-container" class='dpr-table-container' data-dpr-module="data-table">
<div class="dpr-overflow-gradient" id="dpr-overflow-gradient"></div>
<div class="dpr-table-wrapper" id="dpr-table-wrapper">
<table class="govuk-table" id="dpr-data-table" data-classification="" data-col-length="2">
<tbody class="govuk-table__body">
<tr class="govuk-table__row">
<td class="govuk-table__cell govuk-table__header">First</td>
<td class="govuk-table__cell govuk-table__header">Second</td>
</tr>
<tr class="govuk-table__row">
<td class="govuk-table__cell govuk-table__cell--string dpr-parent-cell">one</td>
<td class="govuk-table__cell govuk-table__cell--string dpr-parent-cell">Parent row 1</td>
</tr>
<tr class="govuk-table__row">
<td class="govuk-table__cell govuk-table__cell--string dpr-child-report-cell" colspan="2">
<div class='dpr-child-report'>
<h3 class="govuk-heading-s">Child Report</h3>
<div class="dpr-child-report_table">
<table class='govuk-table'>
<thead class='govuk-table__head'>
<th scope='col' class='govuk-table__header'>Field2</th>
<th scope='col' class='govuk-table__header'>Field3</th>
</thead>
<tbody class='govuk-table__body'>
<tr class='govuk-table__row'>
<td class='govuk-table__cell govuk-table__cell--string '>Child one - parent 1</td>
<td class='govuk-table__cell govuk-table__cell--string '>Other value</td>
</tr>
<tr class='govuk-table__row'>
<td class='govuk-table__cell govuk-table__cell--string '>Child three - parent 1</td>
<td class='govuk-table__cell govuk-table__cell--string '>Other value</td>
</tr>
<tr class='govuk-table__row'>
<td class='govuk-table__cell govuk-table__cell--string '>Child two - parent 1</td>
<td class='govuk-table__cell govuk-table__cell--string '>Other value</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
<tr class="govuk-table__row">
<td class="govuk-table__cell govuk-table__header">First</td>
<td class="govuk-table__cell govuk-table__header">Second</td>
</tr>
<tr class="govuk-table__row">
<td class="govuk-table__cell govuk-table__cell--string dpr-parent-cell">two</td>
<td class="govuk-table__cell govuk-table__cell--string dpr-parent-cell">Parent row 2</td>
</tr>
<tr class="govuk-table__row">
<td class="govuk-table__cell govuk-table__cell--string dpr-child-report-cell" colspan="2">
<div class='dpr-child-report'>
<h3 class="govuk-heading-s">Child Report</h3>
<div class="dpr-child-report_table">
<table class='govuk-table'>
<thead class='govuk-table__head'>
<th scope='col' class='govuk-table__header'>Field2</th>
<th scope='col' class='govuk-table__header'>Field3</th>
</thead>
<tbody class='govuk-table__body'>
<tr class='govuk-table__row'>
<td class='govuk-table__cell govuk-table__cell--string '>Child one - parent 2</td>
<td class='govuk-table__cell govuk-table__cell--string '>Other value</td>
</tr>
<tr class='govuk-table__row'>
<td class='govuk-table__cell govuk-table__cell--string '>Child three - parent 2</td>
<td class='govuk-table__cell govuk-table__cell--string '>Other value</td>
</tr>
<tr class='govuk-table__row'>
<td class='govuk-table__cell govuk-table__cell--string '>Child two - parent 2</td>
<td class='govuk-table__cell govuk-table__cell--string '>Other value</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
<tr class="govuk-table__row">
<td class="govuk-table__cell govuk-table__header">First</td>
<td class="govuk-table__cell govuk-table__header">Second</td>
</tr>
<tr class="govuk-table__row">
<td class="govuk-table__cell govuk-table__cell--string dpr-parent-cell">three</td>
<td class="govuk-table__cell govuk-table__cell--string dpr-parent-cell">Parent row 3</td>
</tr>
<tr class="govuk-table__row">
<td class="govuk-table__cell govuk-table__cell--string dpr-child-report-cell" colspan="2">
<div class='dpr-child-report'>
<h3 class="govuk-heading-s">Child Report</h3>
<div class="dpr-child-report_table">
<table class='govuk-table'>
<thead class='govuk-table__head'>
<th scope='col' class='govuk-table__header'>Field2</th>
<th scope='col' class='govuk-table__header'>Field3</th>
</thead>
<tbody class='govuk-table__body'>
<tr class='govuk-table__row'>
<td class='govuk-table__cell govuk-table__cell--string '>Child one - parent 3</td>
<td class='govuk-table__cell govuk-table__cell--string '>Other value</td>
</tr>
<tr class='govuk-table__row'>
<td class='govuk-table__cell govuk-table__cell--string '>Child three - parent 3</td>
<td class='govuk-table__cell govuk-table__cell--string '>Other value</td>
</tr>
<tr class='govuk-table__row'>
<td class='govuk-table__cell govuk-table__cell--string '>Child two - parent 3</td>
<td class='govuk-table__cell govuk-table__cell--string '>Other value</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class='govuk-!-margin-bottom-6'>
<div class="dpr-report-totals">
<p class="govuk-body"></p>
</div>
</div>
</div>
</div>
</div>
{%- from "dpr/components/_reports/report-wrapper/view.njk" import dprReportWrapper -%}
{% set data = {
"columns": {
"name": "columns",
"options": [
{
"text": "First",
"value": "section1",
"disabled": false
},
{
"text": "Second",
"value": "field1",
"disabled": false
}
],
"text": "Select report columns",
"value": [
"section1",
"field1"
]
},
"filterData": {
"filters": [],
"selectedFilters": []
},
"count": 100,
"csrfToken": "csrfToken",
"classification": "OFFICIAL",
"template": "parent-child",
"loadType": "async",
"type": "report",
"actions": [
],
"canDownload": false,
"printable": true,
"reportName": "A Test Report",
"name": "Parent Child Template",
"description": "A report with parent and child datasets",
"requestedTimestamp": "15/05/2025, 13:57:32",
"reportId": "test-report-1",
"tableId": "tblId_1747313850286",
"id": "variantId-26",
"executionId": "exId_1747313850286",
"querySummary": [],
"requestUrl": {
"fullUrl": "http://localhost:3010/async/report/test-report-1/variantId-26/request",
"pathname": "/async/report/test-report-1/variantId-26/request",
"search": ""
},
"reportUrl": "/async/report/test-report-1/variantId-26/request/tblId_1747313850286/report",
"reportSearch": null,
"search": null,
"pathname": "/async/report/test-report-1/variantId-26/request/tblId_1747313850286/report",
"dataTable": [{
"head": null,
"rows": [
[
{
"text": "First",
"classes": "govuk-table__header"
},
{
"text": "Second",
"classes": "govuk-table__header"
}
],
[
{
"fieldName": "section1",
"text": "one",
"format": "string",
"classes": "dpr-parent-cell"
},
{
"fieldName": "field1",
"text": "Parent row 1",
"format": "string",
"classes": "dpr-parent-cell"
}
],
[
{
"classes": "dpr-child-report-cell",
"format": "string",
"html": "<div class='dpr-child-report'><h3 class=\"govuk-heading-s\">Child Report</h3><div class=\"dpr-child-report_table\"><table class='govuk-table'><thead class='govuk-table__head'><th scope='col' class='govuk-table__header'>Field2</th><th scope='col' class='govuk-table__header'>Field3</th></thead><tbody class='govuk-table__body'><tr class='govuk-table__row'><td class='govuk-table__cell govuk-table__cell--string '>Child one - parent 1</td><td class='govuk-table__cell govuk-table__cell--string '>Other value</td></tr><tr class='govuk-table__row'><td class='govuk-table__cell govuk-table__cell--string '>Child three - parent 1</td><td class='govuk-table__cell govuk-table__cell--string '>Other value</td></tr><tr class='govuk-table__row'><td class='govuk-table__cell govuk-table__cell--string '>Child two - parent 1</td><td class='govuk-table__cell govuk-table__cell--string '>Other value</td></tr></tbody></table></div></div>",
"colspan": 2
}
],
[
{
"text": "First",
"classes": "govuk-table__header"
},
{
"text": "Second",
"classes": "govuk-table__header"
}
],
[
{
"fieldName": "section1",
"text": "two",
"format": "string",
"classes": "dpr-parent-cell"
},
{
"fieldName": "field1",
"text": "Parent row 2",
"format": "string",
"classes": "dpr-parent-cell"
}
],
[
{
"classes": "dpr-child-report-cell",
"format": "string",
"html": "<div class='dpr-child-report'><h3 class=\"govuk-heading-s\">Child Report</h3><div class=\"dpr-child-report_table\"><table class='govuk-table'><thead class='govuk-table__head'><th scope='col' class='govuk-table__header'>Field2</th><th scope='col' class='govuk-table__header'>Field3</th></thead><tbody class='govuk-table__body'><tr class='govuk-table__row'><td class='govuk-table__cell govuk-table__cell--string '>Child one - parent 2</td><td class='govuk-table__cell govuk-table__cell--string '>Other value</td></tr><tr class='govuk-table__row'><td class='govuk-table__cell govuk-table__cell--string '>Child three - parent 2</td><td class='govuk-table__cell govuk-table__cell--string '>Other value</td></tr><tr class='govuk-table__row'><td class='govuk-table__cell govuk-table__cell--string '>Child two - parent 2</td><td class='govuk-table__cell govuk-table__cell--string '>Other value</td></tr></tbody></table></div></div>",
"colspan": 2
}
],
[
{
"text": "First",
"classes": "govuk-table__header"
},
{
"text": "Second",
"classes": "govuk-table__header"
}
],
[
{
"fieldName": "section1",
"text": "three",
"format": "string",
"classes": "dpr-parent-cell"
},
{
"fieldName": "field1",
"text": "Parent row 3",
"format": "string",
"classes": "dpr-parent-cell"
}
],
[
{
"classes": "dpr-child-report-cell",
"format": "string",
"html": "<div class='dpr-child-report'><h3 class=\"govuk-heading-s\">Child Report</h3><div class=\"dpr-child-report_table\"><table class='govuk-table'><thead class='govuk-table__head'><th scope='col' class='govuk-table__header'>Field2</th><th scope='col' class='govuk-table__header'>Field3</th></thead><tbody class='govuk-table__body'><tr class='govuk-table__row'><td class='govuk-table__cell govuk-table__cell--string '>Child one - parent 3</td><td class='govuk-table__cell govuk-table__cell--string '>Other value</td></tr><tr class='govuk-table__row'><td class='govuk-table__cell govuk-table__cell--string '>Child three - parent 3</td><td class='govuk-table__cell govuk-table__cell--string '>Other value</td></tr><tr class='govuk-table__row'><td class='govuk-table__cell govuk-table__cell--string '>Child two - parent 3</td><td class='govuk-table__cell govuk-table__cell--string '>Other value</td></tr></tbody></table></div></div>",
"colspan": 2
}
]
],
"rowCount": 3,
"colCount": 2
}]
} %}
{{ dprReportWrapper(data) }}