Report Examples Parent-child report
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">
<div class="dpr-report-heading__title">
<span class="govuk-caption-l">Example report</span>
<h1 class="govuk-heading-l">
Parent Child template
</h1>
</div>
<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>
<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_1746799041171/feedback?reportUrl=/async/report/test-report-1/variantId-26/request/tblId_1746799041171/report&reportSearch=%3Fcolumns%3Dsection1%26columns%3Dfield1" 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-1">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-1">Example 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-1">A report with parent and child datasets using the parent-child template</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-1">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-2">09/05/2025, 14:57:23</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-1">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-1">Example 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-1">A report with parent and child datasets using the parent-child template</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-1">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-2">09/05/2025, 14:57:23</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="report-template-container ">
<div class="dpr-sync-report-actions">
<div class="dpr-columns-section-wrapper">
<div class="columns-section-button">
<details class="govuk-details">
<summary class="govuk-details__summary">
<span class="govuk-details__summary-text">
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 class="dpr-report-totals">
<p class="govuk-body"></p>
</div>
<div class='dpr-table-container'>
<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">one</td>
<td class="govuk-table__cell govuk-table__cell--string">Parent row 1</td>
</tr>
<tr class="govuk-table__row">
<td class="govuk-table__cell govuk-table__cell--string" colspan="2">
<div class='dpr-child-report'>
<h3>Child Report</h3>
<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>
</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">two</td>
<td class="govuk-table__cell govuk-table__cell--string">Parent row 2</td>
</tr>
<tr class="govuk-table__row">
<td class="govuk-table__cell govuk-table__cell--string" colspan="2">
<div class='dpr-child-report'>
<h3>Child Report</h3>
<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>
</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">three</td>
<td class="govuk-table__cell govuk-table__cell--string">Parent row 3</td>
</tr>
<tr class="govuk-table__row">
<td class="govuk-table__cell govuk-table__cell--string" colspan="2">
<div class='dpr-child-report'>
<h3>Child Report</h3>
<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>
</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": "Example report",
"name": "Parent Child template",
"description": "A report with parent and child datasets using the parent-child template",
"requestedTimestamp": "09/05/2025, 14:57:23",
"reportId": "test-report-1",
"tableId": "tblId_1746799041171",
"id": "variantId-26",
"executionId": "exId_1746799041171",
"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_1746799041171/report",
"reportSearch": "?columns=section1&columns=field1",
"encodedSearch": "%3Fcolumns%3Dsection1%26columns%3Dfield1",
"search": "?columns=section1&columns=field1",
"pathname": "/async/report/test-report-1/variantId-26/request/tblId_1746799041171/report",
"dataTable": {
"head": null,
"rows": [
[
{
"text": "First",
"classes": "govuk-table__header"
},
{
"text": "Second",
"classes": "govuk-table__header"
}
],
[
{
"fieldName": "section1",
"text": "one",
"format": "string",
"classes": ""
},
{
"fieldName": "field1",
"text": "Parent row 1",
"format": "string",
"classes": ""
}
],
[
{
"format": "string",
"html": "<div class='dpr-child-report'><h3>Child Report</h3><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>",
"colspan": 2
}
],
[
{
"text": "First",
"classes": "govuk-table__header"
},
{
"text": "Second",
"classes": "govuk-table__header"
}
],
[
{
"fieldName": "section1",
"text": "two",
"format": "string",
"classes": ""
},
{
"fieldName": "field1",
"text": "Parent row 2",
"format": "string",
"classes": ""
}
],
[
{
"format": "string",
"html": "<div class='dpr-child-report'><h3>Child Report</h3><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>",
"colspan": 2
}
],
[
{
"text": "First",
"classes": "govuk-table__header"
},
{
"text": "Second",
"classes": "govuk-table__header"
}
],
[
{
"fieldName": "section1",
"text": "three",
"format": "string",
"classes": ""
},
{
"fieldName": "field1",
"text": "Parent row 3",
"format": "string",
"classes": ""
}
],
[
{
"format": "string",
"html": "<div class='dpr-child-report'><h3>Child Report</h3><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>",
"colspan": 2
}
]
],
"rowCount": 3,
"colCount": 2
}
} %}
{{ dprReportWrapper(data) }}