Why does a Business Central RDLC report show blank output?
A Business Central report has two important layers: the dataset defined in AL and the layout that renders that dataset. Microsoft describes the report object as defining the underlying data model, while the layout controls how the data is presented. If the dataset contains no records, the layout cannot display the expected rows. If the dataset is correct but the layout references the wrong fields, the rendered report can still appear empty or incomplete.
1. The report dataset returns zero records
This is the first thing to check. Your RDLC layout can be perfectly designed and still render no detail rows when the report dataitem returns nothing.
dataitem(Customer; Customer)
{
column(CustomerNo; "No.") { }
column(CustomerName; Name) { }
}
Check the dataitem table, filters, links and request-page filters. If the report is based on a filtered document or date range, temporarily test with a known record.
Fix: confirm that the report dataitem actually has records for the selected filters before debugging RDLC expressions.
2. Request-page filters exclude all records
Business Central request pages can apply filters before the dataset is generated. A filter that looks harmless can remove every record.
Typical examples include:
- Date ranges that don't contain transaction dates.
- Customer, vendor or item filters that don't match the selected company.
- Document numbers or posting groups with no matching records.
- Filters left over from a previous test.
Fix: clear the request-page filters and run the report again. Then add filters one at a time.
3. The RDLC layout is not the layout actually being used
A report can have multiple layouts, and the selected/default layout matters. If you edited one RDLC file but Business Central is rendering another layout, your changes won't appear.
Check the Report Layouts or Report Layout Selection setup and verify the layout assigned to the report and company. Business Central supports multiple report layouts and lets you select which layout is used.
Fix: confirm the report ID, layout type and selected layout before assuming the RDLC file is broken.
4. Dataset column names don't match the RDLC fields
The RDLC layout depends on the dataset exposed by the report. If you rename a column in AL, remove it, or regenerate the dataset without updating the layout, the layout can contain stale field references.
column(ItemNo; "No.") { }
column(ItemDescription; Description) { }
column(LineAmount; "Line Amount") { }
After changing the AL dataset, refresh or regenerate the layout dataset information as appropriate for your development workflow.
Fix: compare the dataset fields with the fields referenced by the RDLC report definition.
5. The RDLC has the wrong dataset or data region
RDLC reports commonly use tablix controls, groups and datasets. If a textbox or tablix is bound to the wrong field or data region, the report may render headers but no useful values.
In Report Builder, inspect the tablix and verify that its dataset is the dataset generated by the Business Central report. Then check the row group hierarchy and detail group.
Fix: select the tablix and verify its Dataset Name, then check the group expressions.
6. A group expression is removing or hiding detail rows
Grouping is useful for invoices, customer summaries and totals, but an incorrect group expression can produce unexpected results. Hidden groups can also make a report appear blank.
Check:
- Row Group and Column Group expressions.
- Visibility expressions.
- Group filters.
- KeepTogether and page-break settings when diagnosing pagination problems.
Fix: temporarily simplify the tablix to a basic detail row and display one or two raw dataset fields. If the values appear, rebuild the grouping step by step.
7. An expression returns Nothing or hides the value
RDLC expressions can transform or hide data. A faulty IIF, incorrect scope, or formatting expression can result in blank values even when the dataset is correct.
=IIF(IsNothing(Fields!ItemDescription.Value), "", Fields!ItemDescription.Value)
When debugging, replace complex expressions temporarily with a direct field reference:
=Fields!ItemDescription.Value
If the direct field displays correctly, the problem is in the expression rather than the AL dataset.
8. The report layout file is stale or was not regenerated after AL changes
Changing the report dataset in AL does not magically redesign an existing RDLC layout. If you add columns, change dataitems or alter the report structure, the layout may no longer match the dataset it was designed against.
Fix: regenerate or update the report layout dataset after structural AL changes, then verify the fields and groups in Report Builder.
9. Report Builder is opening the file incorrectly
Business Central RDLC layouts use .rdlc files, while Microsoft notes that Report Builder recognizes the .rdl file type. When modifying a layout in Report Builder, an exported Business Central .rdlc file may need to be renamed to .rdl for the tool to open it.
Fix: make a working copy of the layout and use the correct file type for your design tool. Don't overwrite the original until the layout has been tested.
10. The report is fine, but the problem is actually pagination or rendering
Sometimes “blank” means the expected content is on another page or outside the visible area rather than missing from the dataset. Large report bodies, page breaks, hidden sections, excessive widths and group settings can create confusing output.
Check:
- Report body width versus page width and margins.
- Explicit page breaks.
- Hidden rows, columns or groups.
- Large rectangles or tablix controls positioned outside the expected area.
- PDF/print preview versus the Report Builder design surface.
A practical troubleshooting workflow
Common AL checks before blaming RDLC
When the dataset is unexpectedly empty, inspect the AL report definition first. A simplified dataitem can help isolate the problem:
report 50110 "My RDLC Test"
{
UsageCategory = ReportsAndAnalysis;
ApplicationArea = All;
dataset
{
dataitem(Customer; Customer)
{
RequestFilterFields = "No.", "Customer Posting Group";
column(CustomerNo; "No.") { }
column(CustomerName; Name) { }
}
}
// Add your RDLC rendering definition/layout here.
}
The exact dataset should match your business requirement. The purpose of a minimal test report is to determine whether the problem is in data retrieval or presentation.
What if the XML dataset contains data but the report is still blank?
Then move your investigation to the layout. Check the selected layout, dataset name, fields, groups, visibility and expressions. A useful debugging technique is to create a very simple tablix with a direct field such as =Fields!CustomerName.Value. If that works, add your original formatting and expressions back gradually.
RDLC troubleshooting checklist
- ☐ Dataset contains records.
- ☐ Request-page filters are correct.
- ☐ Dataitem links and filters are correct.
- ☐ The intended report layout is selected.
- ☐ RDLC dataset and field names match AL.
- ☐ Tablix uses the correct dataset.
- ☐ Group filters and visibility don't hide rows.
- ☐ Expressions don't return unexpected blank values.
- ☐ Layout was updated after dataset changes.
- ☐ Page size, margins and page breaks are reasonable.
FAQ
Why is my Business Central RDLC report completely blank?
Start by checking whether the AL dataset returns records. Export the report as XML data-only. If there are no records, investigate filters and dataitem logic. If records exist, investigate the selected layout and RDLC field/group configuration.
How do I check whether the Business Central report dataset has data?
Run the report and use Send to → XML (data only). Microsoft recommends using the raw dataset to validate that the report returns the expected data while troubleshooting RDL layouts.
Why does RDLC show headers but no data?
This often indicates that the report rendered the layout but the detail region has no matching records, uses the wrong dataset, has a filter/group problem, or references fields that aren't populated.
Can Report Builder open an RDLC file?
Microsoft currently notes that Report Builder recognizes .rdl, while layouts exported from Business Central can use .rdlc. When needed, work on a copy and rename the exported file to .rdl for Report Builder.