Feature Overview
The Header Setup feature in Document Customizer controls what information appears in the upper section of a printed document — the area above the line items. This includes fields such as document number, customer name, order date, delivery address, payment terms, and any other document-level data you want to display. The header is split into two columns: a left column and a right column, each capable of holding up to 15 fields, giving you up to 30 individually configurable header fields per document.
Each field in the header is defined by a Header Template. A template is a reusable layout that can be shared across multiple document types or tailored specifically to one report. When you assign a Header Template to a report in Document Customizer Content, the system reads the field definitions from that template and renders them on the printed document at runtime.
Header Setup gives you precise control over which data is shown, how it is labelled, how dates and numbers are formatted, what font weight is used, and — through the Command Line feature — how to retrieve values from related tables using dynamic lookups. This means you are not limited to fields from the document header table itself: you can pull in data from related tables such as Customer, Vendor, or Item, making the header a powerful summary of all relevant information for the recipient.
Key Facts
| Where to set up | Header Templates page; Header Fields page |
| Where to assign | Document Customizer Content page (Header field) |
| Max fields per template | Up to 15 fields in the left column and 15 in the right column (30 total) |
| Header layout options | 8 rows or 15 rows (controlled per document in Document Customizer Content) |
| Supported data sources | The document's own table, related tables via Using Table/Using Field, Bank Account via Bank Field, or calculated values via Command Line |
| Caption control | Custom captions with multilingual translations via Caption Translations |
| Integration | Works with Master Data Information (MDI) — suppress MDI header data per template using "Don't print Master Data" |
Getting Started
Follow these steps to configure your first Header Template and assign it to a document:
- Open Header Templates (search for it in Business Central, or navigate from Document Customizer → Layout → Header Templates).
- Create a new header template by entering a Template Code and a Description. The Template Code is a short identifier (up to 20 characters) used to reference this template.
- Set Fields in First Column to the number of rows you want on the left side of the header (maximum 15). Set Fields in Second Column for the right side.
- Choose the action Fields to open the Header Fields page for this template.
- On the Header Fields page, add a row for each piece of information you want to display. Enter the No. (position 1–15 for left column, 16–30 for right column), select the Field No. from the document table, and optionally enter a Caption if you want a label different from the field's default BC caption.
- Set the Active checkbox to enabled on each row you want to appear on the printed document. Rows where Active is unchecked are skipped at print time but still count toward the position numbering.
- For date fields, set Date Format to either Short (system locale format) or Long (e.g. "13 August 2024") as appropriate.
- If you want a field to always show its caption label even when the value is blank, enable Always Show Caption on that row.
- Save and close the Header Fields page. Return to Document Customizer Content, find the relevant document row, and set the Header field to your new template code.
- Use Run Report (Test Report Layout) from the Document Customizer page to verify the header looks correct before activating the report as the standard.
Related Features
Header Setup works closely with several other Document Customizer features. The Captions & Translations feature is tightly integrated: every Caption code you assign in Header Fields is defined and translated in the central Captions table, which means the same caption can render in Danish, English, or German depending on the customer's language setting on the document. The Layout & Visual Design feature controls the overall visual properties of the header area — font family, font size, and the vertical position of the header block on the page — these settings are defined in the Layout Options rather than in the Header Template itself. The Bank Accounts per Currency feature integrates directly into Header Fields: by setting a Bank Field on a header row, the system can automatically select the correct bank account information based on the currency of the document, without requiring any manual setup per transaction. Finally, if you have Master Data Information (MDI) installed, you can suppress MDI-injected header content on a per-template basis using the "Don't print Master Data" flag on the Header Template.
User Stories
US-01: Display standard document header fields on a sales invoice
As a Business Manager
I want to configure a Header Template that shows the most important document fields — such as document number, customer number, order date, and payment terms — in the header of the printed sales invoice
So that recipients immediately see all relevant transaction details without having to search through the document
Setup:
- Open Header Templates and create a new template, e.g. code
SALES-INV, descriptionSales Invoice Header. - Set Fields in First Column to 8 and Fields in Second Column to 8.
- Open Fields for the template. Add rows with positions 1–8 (left column) and 16–23 (right column).
- For each row, select the relevant Field No. from the Sales Invoice Header table — for example: Document No., Bill-to Customer No., Order Date, Shipment Date, Payment Terms Code, Payment Method Code, Your Reference, Salesperson Code.
- Leave Caption blank on all rows to use BC's default field captions.
- Set Active to enabled on all rows.
- Open Document Customizer Content, find the Sales Invoice row, and set Header to
SALES-INV. - Run Test Report Layout to verify the output.
US-02: Show a field from a related table (e.g. customer's VAT registration number)
As a Business Manager
I want to display the customer's VAT registration number in the document header, even though this field lives on the Customer table rather than the Sales Invoice Header table
So that the printed invoice complies with invoicing regulations that require the customer's VAT number to appear on the document
Setup:
- Open the Header Fields page for the relevant Header Template.
- Add a new row at the desired position.
- Set Field No. to the field on the Sales Invoice Header that links to the Customer table — for example, Bill-to Customer No.
- Set Using Table to the Customer table.
- Set Using Field to the VAT Registration No. field on the Customer table.
- Optionally enter a Caption code for the label, e.g. a caption with the text "VAT Reg. No.".
- Enable Active and save.
Note: The system uses the value in Field No. as the key to look up the record in Using Table, then returns the value of Using Field. This works for any one-to-one relationship where the document header field holds the primary key of the related table.
US-03: Customise the caption label on a header field
As a Business Manager
I want to replace the default BC field caption with a company-specific label — for example, showing "Our Reference" instead of "Your Reference"
So that the printed documents use the terminology our customers and team recognise
Setup:
- Open the Header Fields page for the relevant template.
- Find the row for the field whose label you want to change.
- In the Caption column, select an existing caption code or create a new one. If you enter a new code, the system will automatically create a Caption record and populate translations for DAN, ENU, ENG, and DEU based on the field's current BC caption.
- Open Translation from the action bar for that row to open Caption Translations.
- For each language code (ENU, DAN, etc.), set the Caption Text to the label you want to appear on the document.
- Save and rerun the test report to verify the new label.
US-04: Display dates in long format (e.g. "13 August 2024")
As a Business Manager
I want to show the document date in a spelled-out long format rather than a numeric short format
So that the document looks more professional and avoids date format ambiguity for international recipients
Setup:
- Open the Header Fields page for the relevant template.
- Find the row for the date field (e.g. Order Date, Shipment Date, Document Date).
- Set Date Format to
Long. - Save and run a test report to confirm the date renders as e.g. "13 August 2024".
Note: The short format uses the system locale setting (e.g. "13-08-24" in Danish). The long format always renders as day, full month name, and four-digit year regardless of locale.
US-05: Make a caption always visible even when the field value is blank
As a Business Manager
I want to ensure that certain header labels — such as "Your Reference" — always appear on the document, even if the field has no value on a specific order
So that the document has a consistent structure that recipients can rely on, and they know where to look for each piece of information
Setup:
- Open the Header Fields page for the relevant template.
- Find the row for the field that should always show its label.
- Enable Always Show Caption.
- Save. On documents where the field is blank, the label will still print, followed by a blank space.
US-06: Bold a specific header field to make it stand out
As a Business Manager
I want to make the document number appear in bold in the header
So that recipients can immediately locate the document number, which is frequently referenced in correspondence
Setup:
- Open the Header Fields page for the relevant template.
- Find the row for the Document No. field.
- Set Font Weight to
Bold. - Save and run a test report to verify the visual output.
Note: The available font weight options are Thin, Extra Light, Light, Medium, SemiBold, Bold, Extra Bold, and Heavy. Medium is the default.
US-07: Use the right column for shipping and delivery information
As a Business Manager
I want to place order-related fields (document number, date, salesperson) in the left header column and logistics-related fields (ship-to name, shipment date, delivery terms) in the right column
So that the header has a logical two-column layout where commercial information is on the left and logistics information is on the right
Setup:
- On the Header Template, set Fields in First Column to the number of commercial fields you need and Fields in Second Column to the number of logistics fields.
- Open Header Fields. Add rows 1 through
Fields in First Columnfor the left-column fields. - Add rows 16 through
15 + Fields in Second Columnfor the right-column fields. - Assign the appropriate Field No. to each row.
- Save and run a test to verify the two-column layout.
Note: Positions 1–15 always render in the left column; positions 16–30 always render in the right column. The maximum per column is 15 fields.
US-08: Temporarily deactivate a header field without deleting it
As a Business Manager
I want to hide a specific field from the printed header temporarily — for example, a promotional reference field that is not relevant for all periods — without losing the setup
So that I can easily re-enable the field later without having to reconfigure it from scratch
Setup:
- Open the Header Fields page for the relevant template.
- Find the row for the field you want to hide.
- Uncheck Active.
- Save. The field will no longer print, but its position number is still reserved. Re-check Active whenever you want it to appear again.
Note: Inactive rows still count toward the column's field count limit. If you have 8 fields defined but one is inactive, 7 rows will print, and there will be a blank line at that position on the document.
US-09: Insert a separator (blank line) between header fields
As a Business Manager
I want to add a visual blank line between two groups of header fields — for example, between order identification fields and payment fields — to improve readability
So that the header is easier to scan and logically grouped
Setup:
- Open the Header Fields page for the relevant template.
- Select the row immediately below where you want the blank line to appear.
- Use the action Insert Separator. The system will shift all subsequent rows down by one position and insert a blank row at the selected position.
- Leave the new row with Active enabled and Field No. blank — it will render as an empty line on the document.
US-10: Display a bank account field that changes based on document currency
As a Accountant
I want to show the company's bank account number in the header, and have it automatically reflect the correct bank account for the document's currency — for example, showing our EUR IBAN when the invoice is in EUR and our DKK IBAN when it is in DKK
So that customers always receive the correct payment instructions without any manual intervention
Setup:
- First, set up Bank Accounts per Currency (accessible from Document Customizer Content → Bank Accounts). Link each currency code to the appropriate bank account.
- Open the Header Fields page for the relevant Header Template.
- Add a row for the bank field. Set Field No. to the Payment Method Code field (or another field that identifies the payment context).
- Set Bank Field to the specific Bank Account field you want to display — for example, IBAN, Bank Account No., or SWIFT Code.
- Enable Active and save.
- At print time, the system will look up the Bank Accounts per Currency table using the document's currency code and payment method, find the matching bank account, and display the selected Bank Field from that account.
Note: The lookup priority is: (1) match on both Payment Method and Currency Code, (2) match on Currency Code only, (3) match on Payment Method only, (4) a fallback with no filters. Set up the Bank Accounts per Currency table to cover all relevant combinations.
US-11: Use a Command Line expression to display a calculated or cross-table value
As a IT Manager
I want to display a value that requires a multi-step lookup — for example, the customer's credit limit from the Customer table, retrieved via the Bill-to Customer No. on the invoice — using a Command Line expression
So that I can show data on the header that is not directly accessible through the standard Field No. / Using Table / Using Field mechanism
Setup:
- Open the Header Fields page for the relevant template.
- Add a new row at the desired position.
- Use the action Build Command Line to open the Command Line Builder.
- In the builder, select the source table and field, configure any lookup steps, and test the result against a real document record.
- When satisfied, click Apply. The generated expression is written to the Command Line field on the row.
- Enable Active and save.
- Optionally use Test Calculation directly on the row to verify the expression against a selected record without running the full report.
Note: The Command Line supports three functions:
LOOKUPRECORD(look up a record in any table),GETFIELDVALUE(retrieve a field value from a located record), andROUND(round a numeric result). For complex expressions, build and test iteratively using the Command Line Builder rather than editing the expression manually.
US-12: Reuse the same Header Template across multiple document types
As a Business Manager
I want to use the same header layout for both the Sales Invoice and the Sales Order Confirmation, since both documents share the same relevant header fields
So that I avoid duplicating setup effort and ensure consistency across related documents
Setup:
- Create and configure a single Header Template (e.g.
SALES-STD) as described in US-01. - Open Document Customizer Content.
- Find the Sales Invoice row and set Header to
SALES-STD. - Find the Sales Order Confirmation row and set Header to
SALES-STD. - Both documents will now use the same header field definitions. Any change to the template is automatically reflected on all documents that reference it.
Note: If a field in the template does not exist on a particular document's table, that row will produce a blank value for that document type. You can use the Active toggle per template to manage this, or create separate templates if the documents require substantially different layouts.
US-13: Copy a Header Template to create a variant for a specific document type
As a Business Manager
I want to take an existing Header Template and copy it as the starting point for a slightly different layout — for example, a purchase order variant that shows vendor-specific fields instead of customer-specific fields
So that I save time on setup and maintain a consistent baseline structure across all templates
Setup:
- Open Header Templates and select the template you want to copy.
- Use the action Copy to new and enter a new template code (e.g.
PURCH-ORD). - The system creates an identical copy of the template, including all header field rows and any Other Captions.
- Open Header Fields for the new template and modify the rows as needed — changing Field No., caption, or active status.
- Assign the new template to the relevant document in Document Customizer Content.
US-14: Suppress Master Data Information header content on a specific template
As a IT Manager
I want to prevent the Master Data Information (MDI) app from injecting additional fields into the header for documents that use a specific Header Template
So that I have full control over the header layout for those documents without MDI overriding the field arrangement
Setup:
- Open Header Templates and select the relevant template.
- Enable the field Don't print Master Data.
- Save. Documents using this template will no longer receive MDI-injected header fields, even if MDI is installed and active.
Note: This option is only visible when the Master Data Information app is installed and enabled. Disabling MDI output per template does not affect other features of MDI — it only suppresses the automatic injection of MDI item data into the header section of this specific template.
US-15: Configure country/region-specific header field variations
As a IT Manager
I want to show a different set of header fields when a document is sent to a recipient in a specific country — for example, showing a local tax reference field only for German customers
So that documents automatically comply with local requirements without manual intervention
Setup:
- Open the Header Fields page for the relevant template.
- For the field that should only appear for a specific country, set Receiving Country/Region to the relevant country code (e.g.
DE). - If you also need a fallback version of the same field position (with no country filter), add a second row at the same position number with Receiving Country/Region left blank.
- At print time, the system first looks for a row that matches both the position number and the document's receiving country. If found, it uses that row; otherwise it falls back to the row with no country filter.
Note: The same fallback logic applies to the NAV Version field on Header Content rows, which can be used to maintain version-specific layouts. In practice, Receiving Country/Region is the more commonly used dimension for country-specific customisation.
US-16: Set the vertical position of the header block on the page
As a IT Manager
I want to move the entire header block down from the top of the page to leave space for a pre-printed letterhead or company logo area
So that the printed document aligns correctly with our company stationery
Setup:
- Open Header Templates and select the relevant template.
- Set Header Vertical Pos. to the desired distance from the top of the page.
- Set Header Vertical Pos. Unit to the appropriate unit:
pt(points),cm(centimetres), orin(inches). - Save and run a test report. Adjust the value incrementally until the header aligns with your stationery.
Note: This setting moves the entire header content block as a unit. The logo and address block positions are controlled separately in the Layout Options.
Field Reference
| Field | Where to find it | What it does | Default |
|---|---|---|---|
| Template Code | Header Templates | Unique identifier for the header template | — |
| Description | Header Templates | Free-text description of the template's purpose | — |
| Fields in First Column | Header Templates | Number of rows to display in the left header column (max 15) | — |
| Fields in Second Column | Header Templates | Number of rows to display in the right header column (max 15) | — |
| Header Vertical Pos. | Header Templates | Vertical offset of the entire header block from the top of the page | 0 |
| Header Vertical Pos. Unit | Header Templates | Unit for the vertical position: pt, cm, or in | pt |
| Don't print Master Data | Header Templates | Suppresses MDI-injected header content for this template (visible when MDI is installed) | Disabled |
| No. | Header Fields | Position of the field: 1–15 = left column, 16–30 = right column | — |
| Active | Header Fields | Whether this row is printed on the document | Enabled |
| Field No. | Header Fields | The field from the document's source table to display | — |
| Caption | Header Fields | Caption code to use as the field label (overrides BC default caption) | Blank (uses BC default) |
| Font Weight | Header Fields | Visual weight of the text: Thin through Heavy | Medium |
| Date Format | Header Fields | Short (locale) or Long (e.g. "13 August 2024") for date fields | Blank (short) |
| Always Show Caption | Header Fields | Shows the caption label even when the field value is blank | Disabled |
| Using Table | Header Fields | Related table to look up when the value lives outside the document table | — |
| Using Field | Header Fields | Field in the Using Table whose value should be displayed | — |
| Bank Field | Header Fields | Bank Account field to display, resolved via Bank Accounts per Currency at runtime | — |
| Command Line | Header Fields | Advanced expression for calculated or multi-step lookups | — |
| Receiving Country/Region | Header Fields | Activates this row only when the document's recipient country matches | Blank (all countries) |