From bed83bc038f54d3a5aae93353fd6e506d343b815 Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 9 Dec 2025 09:57:10 +1100 Subject: [PATCH] Improve docs for report merging (#10984) --- .../assets/images/report/report_merge.png | Bin 0 -> 44715 bytes docs/docs/report/report.md | 44 +++++++++++++++++- 2 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 docs/docs/assets/images/report/report_merge.png diff --git a/docs/docs/assets/images/report/report_merge.png b/docs/docs/assets/images/report/report_merge.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ef74204711a9fe7e24e7390afb05a3b2a734d8 GIT binary patch literal 44715 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 LgFnl(ZKM7Jb{g%W literal 0 HcmV?d00001 diff --git a/docs/docs/report/report.md b/docs/docs/report/report.md index 795c0f9483..c28b1c1874 100644 --- a/docs/docs/report/report.md +++ b/docs/docs/report/report.md @@ -44,5 +44,45 @@ For example, rendering the name of a part (which is available in the particular

{% endraw %} ``` -#### Rendering a single report vs. multiple report from selection -Users can select multiple items such as `part`, `stockItem`,...etc to render from a report template. By default, the `merge` attribute of report template is disabled, which means an independent report will be generated for each item in the list of selected items. If `merge` is enabled, all selected items will be available in the `instances` context variable of the report template. Users are free to access them by indexing or in a loop. For more details, visit [context variable](./context_variables.md) + +## Merging Reports + +When rendering reports for multiple items, the default behaviour is that each item is rendered as a separate report. The chosen templeate is rendered multiple times, once for each item selected, and expects a single item in the context variable. + +However, it is possible to merge multiple items into a single report document. This is achieved by enabling the `merge` attribute of the report template: + +{{ image("report/report_merge.png", alt="Report Merge Option") }} + +When the `merge` is enabled, all selected items are passed to the report template in the `instances` context variable, which is a list of all selected items. The user can then iterate over this list to render multiple items in a single report document. + +### Instance Context + +When rendering a single template against multiple *instances* of a particular model (e.g. multiple parts, multiple stock items, etc), each instance being rendered has its own unique context data. + +Each "instance" is provided to the report template as a dictionary of context variables, which can be accessed using standard django template syntax. + +Refer to the [context variable documentation](./context_variables.md) for more information about the available context variables for each model type. + +The `instances` variable is provided as a list of all selected items, where each item in the list is a dictionary of context variables for that particular instance. Within the report template, the user can iterate over the `instances` list to render each item in turn. + +### Example + +As an example, let's consider a report template where we are printing multiple parts in a single report document. + +When the `merge` option is enabled, the report template is provided with an `instances` variable, which is a list of all selected parts. + +Each *instance* in the `instances` list is a dictionary of context variables for that particular part, which conforms to the standard [part context structure](./context_variables.md#part). + +```django +{% raw %} + +{% for instance in instances %} +Part Name: {{ instance.part.name }}
+IPN: {{ instance.part.IPN }}
+Description: {{ instance.part.description }}
+ +{% endraw %} +``` + +!!! tip "Instance Prefix" + Note that the context variable is prefixed with `instance.` when accessing variables for each item in the `instances` list.