---
title: "Codeunit 8800 Custom Layout Reporting"
author: "Jonas Paprotka"
url: https://jonas-paprotka.de/ref/codeunit/8800-custom-layout-reporting/
type: codeunit
id: 8800
name: "Custom Layout Reporting"
app: "Base Application"
namespace: Microsoft.Foundation.Reporting
versions: "17-28"
build: 28.5.54151.54365
source: "https://jonas-paprotka.de/ref/codeunit/8800-custom-layout-reporting/source/29/"
checked: 2026-09-20
subject: "Microsoft Dynamics 365 Business Central"
license: "Content © 2026 Jonas Paprotka. Quote freely with attribution and a link."
---

# Codeunit 8800 Custom Layout Reporting

Jonas Paprotka, https://jonas-paprotka.de/ref/codeunit/8800-custom-layout-reporting/

| | |
| --- | --- |
| App | Base Application |
| Namespace | Microsoft.Foundation.Reporting |
| Versions | 17-28 |
| Source file | Foundation/Reporting/CustomLayoutReporting.Codeunit.al |

## Procedures

| Name | Parameters | Returns | Access | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- | --- |
| GetLayoutIteratorKeyFilter | (var RecordRef, var FieldRef, Code[20]) | - | public | 17-28 | - | - |
| ProcessReport | () | - | public | 17-28 | - | - |
| ProcessReportData | (Enum Report Selection Usage, var RecordRef, Text, Integer, Text, Boolean) | - | public | 17-28 | - | - |
| ProcessReportForData | (Integer, var RecordRef, Text, Integer, Text, Boolean) | - | public | 17-19 | Pending 17.0 | Replaced by ProcessReportData(). |
| SetOutputOption | (Integer) | - | public | 17-28 | - | - |
| GetOutputOption | (Integer) | Integer | public | 17-28 | - | - |
| GetPrintOption | () | Integer | public | 17-28 | - | - |
| GetEmailOption | () | Integer | public | 17-28 | - | - |
| GetPreviewOption | () | Integer | public | 17-28 | - | - |
| GetExcelOption | () | Integer | public | 17-28 | - | - |
| GetPDFOption | () | Integer | public | 17-28 | - | - |
| GetWordOption | () | Integer | public | 17-28 | - | - |
| GetXMLOption | () | Integer | public | 17-28 | - | - |
| GetOptionValueFromRequestPageForReport | (Integer, Text) | Text | public | 17-28 | - | - |
| SetSavePath | (Text) | - | public | 17-28 | - | - |
| SetOutputSupression | (Boolean) | - | public | 17-28 | - | - |
| CallReportSaveAs | (Integer, Text, ReportFormat, var OutStream, var RecordRef) | Boolean | public | 17-28 | - | - |
| IsWebClient | () | Boolean | public | 17-28 | - | - |
| SetOutputFileBaseName | (Text) | - | public | 17-28 | - | - |
| SetTestModeWebClient | (Boolean) | - | public | 17-28 | - | - |
| InitializeReportData | (Enum Report Selection Usage, var RecordRef, Text, Integer, Text, Boolean) | - | public | 17-28 | - | - |
| InitializeData | (Integer, var RecordRef, Text, Integer, Text, Boolean) | - | public | 17-28 | - | - |
| HasRequestParameterData | (Integer) | Boolean | public | 17-28 | - | - |
| RunRequestPage | (Integer) | Text | public | 17-28 | - | - |
| SetTableFilterForReportID | (Integer, Text) | - | public | 17-28 | - | - |
| GetReportRequestPageParameters | (Integer) | Text | public | 17-28 | - | - |
| CheckForCustomLayoutReportingJob | () | - | public | 17-28 | - | - |
| SetIgnoreRequestParameters | (Boolean) | - | public | 17-28 | - | - |
| SetPredefinedRequestParameters | (Text) | - | public | 17-28 | - | - |
| SetRunReportOncePerFilter | (Boolean) | - | public | 19-28 | - | - |
| SaveReportRequestPageParameters | (Integer, Text) | - | public | 21-28 | - | - |
| SaveReportRequestPageParameters | (Integer, Text, TextEncoding) | - | public | 25-28 | - | - |

## Events

| Kind | Name | Parameters | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- |
| Integration event | OnBeforeVerifyXmlContainsDataset | (var Boolean) | 17-22 | Pending 20.0 | The rendering of Word documents will be handled on the Platform. To override the behavior, subscribe on the report event CustomDocumentMerger. |
| Integration event | OnIsTestMode | (var Boolean) | 17-28 | - | - |
| Integration event | OnAfterProcessReport | () | 17-28 | - | - |
| Integration event | OnBeforeCallReportSaveAs | (Integer, ReportFormat) | 17-28 | - | - |
| Integration event | OnBeforePrintReport | (var RecordRef, Integer) | 17-28 | - | - |
| Integration event | OnBeforeRunReportWithCustomReportSelection | (var RecordRef, var Integer, var Record Custom Report Selection, var Boolean, var Record Name/Value Buffer, var Codeunit Temp Blob List, var Option, var Boolean, var Boolean) | 17-28 | - | - |
| Integration event | OnGenerateFileNameOnAfterAssignFileName | (var Text, Integer, Text, RecordRef) | 17-28 | - | - |
| Integration event | OnCreateReportWithExtensionOnBeforeHtmlFileClose | (Integer, ReportFormat, var RecordRef, var OutStream) | 18-28 | - | - |
| Integration event | OnCreateReportWithExtensionOnBeforePdfFileClose | (Integer, ReportFormat, var RecordRef, var OutStream) | 18-28 | - | - |
| Integration event | OnSaveAsReportOnBeforeFileClose | (Boolean, var RecordRef, Integer, ReportFormat, var OutStream) | 18-28 | - | - |
| Integration event | OnBeforeRunReport | (var RecordRef, var Record Report Selections, var Boolean, var Record Name/Value Buffer, var Codeunit Temp Blob List, var Option, var Boolean, var Boolean) | 19-28 | - | - |
| Integration event | OnSetOutputTypeOnAfterSetOutputMethod | (var Text) | 19-28 | - | - |
| Integration event | OnBeforeSetIteratorJoinFieldRef | (var RecordRef, var FieldRef, var FieldRef, var Boolean) | 20-28 | - | - |
| Integration event | OnAfterGetSendToEmailID | (var Record Custom Report Selection, var Text[250]) | 21-28 | - | - |
| Integration event | OnAfterGetSendToEmailIDFromSource | (var Record Custom Report Selection, var Text[250]) | 21-28 | - | - |
| Integration event | OnRunRequestPageOnBeforeReportRunRequestPage | (Integer, var Text) | 22-28 | - | - |
| Integration event | OnProcessReportPerObjectOnBeforeReportDataRecordRefLoop | (Boolean, RecordRef) | 23-28 | - | - |
| Integration event | OnProcessReportPerObjectOnBeforeRunReport | (Boolean, RecordRef, var Boolean) | 23-28 | - | - |
| Integration event | OnProcessReportPerObjectOnAfterRunReport | (Boolean, RecordRef) | 23-28 | - | - |
| Integration event | OnAfterProcessReportPerObject | (Boolean) | 23-28 | - | - |
| Integration event | OnBeforeGenerateFileNameForReport | (RecordRef, var FieldRef, RecordRef, var Text, var Boolean) | 23-28 | - | - |
| Integration event | OnBeforeThrowProcessReportError | (var Codeunit Error Message Handler, var RecordRef, var Option) | 27-28 | - | - |

## Source

Symbols: Microsoft.BaseApplication.symbols.437dbf0e-84ff-417a-965d-ed2bb9650972, https://dynamicssmb2.pkgs.visualstudio.com/DynamicsBCPublicFeeds/_packaging/MSSymbols/nuget/v3/index.json, highest build per major on 2026-09-20.
AL source 29: https://github.com/microsoft/BCApps, MIT, releases/29.x at a66254c3b8b5bb1cea290dc8f9d097aec4381153.

Jonas Paprotka, 2026-09-20.
