# Report Types: Master-Detail, Side-by-Side, Sub Reports

> Text Control Reporting supports five combinable report types: table reports for flat data, master-detail for hierarchical relations, sub-reports for nesting, side-by-side for multi-column layouts, and mail-merge for populating fields. Flow-type layout allows mixing types freely.

- **Author:** Bjoern Meyer
- **Published:** 2014-06-27
- **Modified:** 2026-03-05
- **Description:** Text Control Reporting supports five combinable report types: table reports for flat data, master-detail for hierarchical relations, sub-reports for nesting, side-by-side for multi-column layouts, and mail-merge for populating fields. Flow-type layout allows mixing types freely.
- **3 min read** (593 words)
- **Tags:**
  - Reporting
  - Tutorial
- **Web URL:** https://www.textcontrol.com/blog/2014/06/27/report-types-master-detail-side-by-side-sub-reports/
- **LLMs URL:** https://www.textcontrol.com/blog/2014/06/27/report-types-master-detail-side-by-side-sub-reports/llms.txt
- **LLMs-Full URL:** https://www.textcontrol.com/blog/2014/06/27/report-types-master-detail-side-by-side-sub-reports/llms-full.txt

---

Text Control Reporting provides many different report types that can be combined as well. From simple **Mail Merge-** and **Table Reports** to **Master-Detail**, **Side-by-Side** and **Sub-Reports**.

[![Report types: Table Report](https://s1-www.textcontrol.com/assets/dist/blog/2014/06/27/a/assets/report_table.webp "Report types: Table Report")](https://s1-www.textcontrol.com/assets/dist/blog/2014/06/27/a/assets/report_table.webp)

[![Report types: Master-Detail Report](https://s1-www.textcontrol.com/assets/dist/blog/2014/06/27/a/assets/report_master-detail.webp "Report types: Master-Detail Report")](https://s1-www.textcontrol.com/assets/dist/blog/2014/06/27/a/assets/report_master-detail.webp)

[![Report types: Sub-Report](https://s1-www.textcontrol.com/assets/dist/blog/2014/06/27/a/assets/report_sub-report.webp "Report types: Sub-Report")](https://s1-www.textcontrol.com/assets/dist/blog/2014/06/27/a/assets/report_sub-report.webp)

[![Report types: Side-by-Side Report](https://s1-www.textcontrol.com/assets/dist/blog/2014/06/27/a/assets/report_side-by-side.webp "Report types: Side-by-Side Report")](https://s1-www.textcontrol.com/assets/dist/blog/2014/06/27/a/assets/report_side-by-side.webp)

[![Report types: Mail-Merge Report](https://s1-www.textcontrol.com/assets/dist/blog/2014/06/27/a/assets/report_mail-merge.webp "Report types: Mail-Merge Report")](https://s1-www.textcontrol.com/assets/dist/blog/2014/06/27/a/assets/report_mail-merge.webp)

### Table Report: Tabular, 1-dimensional data

Table reports display 1-dimensional, not hierarchical data in tabular form. Typically, the data that is used to merge a table report is stored in a single DataTable.

This concept is used to present product lists, check lists or inventory items in a flat table form.

![Table Report: Tabular, 1-dimensional data](https://s1-www.textcontrol.com/assets/dist/blog/2014/06/27/a/assets/reporting_table_580.webp "Table Report: Tabular, 1-dimensional data")Master-Detail Report: Hierarchical Data
---------------------------------------

A Master-Detail report renders data from a hierarchical data source such as related tables or nested objects. Consider a data structure for a product order: The master table contains general data about the order and the detail table(s) contains detailed data such as the sold products.

![Master-Detail Report: Hierarchicial data](https://s1-www.textcontrol.com/assets/dist/blog/2014/06/27/a/assets/reporting_master-detail_580.webp "Master-Detail Report: Hierarchicial data")Sub-Report: Report in a Report
------------------------------

A Sub-Report is a report in a report. Using Text Control Reporting, you can have unlimited nested reports in your main report with a different or the same data source. Inside of a Sub-Report, you can access data from parent data relations.

![Sub-Report: Report in a report](https://s1-www.textcontrol.com/assets/dist/blog/2014/06/27/a/assets/reporting_sub-report_580.webp "Sub-Report: Report in a report")Side-by-Side Report: Create Comparison Reports
----------------------------------------------

A Side-by-Side or Multi-Column report represents data in multiple columns. This can be useful for comparison reports or label printing. The direction is always *"down and then across"*.

![Side-by-Side Report: Create comparison reports](https://s1-www.textcontrol.com/assets/dist/blog/2014/06/27/a/assets/reporting_side-by-side_580.webp "Side-by-Side Report: Create comparison reports")Mail-Merge Report: Create Mail Merge Letters
--------------------------------------------

A Mail-Merge report is a fully featured word processing document with merge fields, image placeholders or barcodes that is merged with data from one or many data sources. Typical applications are order or shipping confirmations. Typically, mail merge is combined with one of the other report types. For example in an invoice which is a combination of Mail-Merge and Master-Detail reports.

![Mail-Merge Report: Create mail merge letters](https://s1-www.textcontrol.com/assets/dist/blog/2014/06/27/a/assets/reporting_mail-merge_580.webp "Mail-Merge Report: Create mail merge letters")All of these report types can be combined with Text Control Reporting. It is not limited to a fixed layout or structure - this is the advantage of *Flow Type Layout Reporting*.

---

## About Bjoern Meyer

As CEO, Bjoern is the visionary behind our strategic direction and business development, bridging the gap between our customers and engineering teams. His deep passion for coding and web technologies drives the creation of innovative products. If you're at a tech conference, be sure to stop by our booth - you'll most likely meet Bjoern in person. With an advanced graduate degree (Dipl. Inf.) in Computer Science, specializing in AI, from the University of Bremen, Bjoern brings significant expertise to his role. In his spare time, Bjoern enjoys running, paragliding, mountain biking, and playing the piano.

- [LinkedIn](https://www.linkedin.com/in/bjoernmeyer/)
- [X](https://x.com/txbjoern)
- [GitHub](https://github.com/bjoerntx)

---

## Related Posts

- [Creating Your First ASP.NET Reporting Application](https://www.textcontrol.com/blog/2020/01/01/creating-your-first-aspnet-reporting-application/llms.txt)
- [New Online Sample: Build your First Report](https://www.textcontrol.com/blog/2019/07/03/build-your-first-report/llms.txt)
- [Create your First Document with ReportingCloud](https://www.textcontrol.com/blog/2019/02/19/create-your-first-document-with-reportingcloud/llms.txt)
- [MailMerge: Starting Each Merge Block on a New Page](https://www.textcontrol.com/blog/2016/09/09/mailmerge-starting-each-merge-block-on-a-new-page/llms.txt)
- [Using MailMerge with JSON Data](https://www.textcontrol.com/blog/2015/08/04/using-mailmerge-with-json-data/llms.txt)
- [Merging Documents with RESTful Web API's](https://www.textcontrol.com/blog/2015/07/31/merging-documents-with-restful-web-apis/llms.txt)
- [Windows Forms: Printing Multiple Pages Per Sheet](https://www.textcontrol.com/blog/2015/07/24/windows-forms-printing-multiple-pages-per-sheet/llms.txt)
- [Inserting Watermark Images to All Pages Dynamically](https://www.textcontrol.com/blog/2015/07/17/inserting-watermark-images-to-all-pages-dynamically/llms.txt)
- [Reporting: Sorting Merge Block Rows by Column Name](https://www.textcontrol.com/blog/2015/07/15/reporting-sorting-merge-block-rows-by-column-name/llms.txt)
- [MailMerge with the Entity Framework Using Database First](https://www.textcontrol.com/blog/2015/06/24/mailmerge-with-the-entity-framework-using-database-first/llms.txt)
- [Checked and Unchecked Check Boxes with IF Fields](https://www.textcontrol.com/blog/2015/03/25/checked-and-unchecked-check-boxes-with-if-fields/llms.txt)
- [Reporting: Conditional Formatted Text Blocks](https://www.textcontrol.com/blog/2015/03/13/reporting-conditional-formatted-text-blocks/llms.txt)
- [Reporting Best Practices and How-To Guides](https://www.textcontrol.com/blog/2015/02/05/reporting-best-practices-and-how-to-guides/llms.txt)
- [MailMerge: Master Table and Client Tables](https://www.textcontrol.com/blog/2015/01/28/mailmerge-master-table-and-client-tables/llms.txt)
- [MailMerge: Formatting Numeric Strings in Merge Fields](https://www.textcontrol.com/blog/2015/01/22/mailmerge-formatting-numeric-strings-in-merge-fields/llms.txt)
- [MailMerge: Merge CheckBoxes During the Merge Process](https://www.textcontrol.com/blog/2015/01/12/mailmerge-merge-checkboxes-during-the-merge-process/llms.txt)
- [MailMerge: Conditional INCLUDETEXT Fields](https://www.textcontrol.com/blog/2015/01/08/mailmerge-conditional-includetext-fields/llms.txt)
- [HTML5 Technical Considerations - The Concept Explained](https://www.textcontrol.com/blog/2014/10/16/html5-technical-considerations-the-concept-explained/llms.txt)
- [TX Text Control Web: Attaching Events to Ribbon Elements](https://www.textcontrol.com/blog/2014/10/07/tx-text-control-web-attaching-events-to-ribbon-elements/llms.txt)
- [TX Text Control Web: Customize the Ribbon Bar](https://www.textcontrol.com/blog/2014/10/03/tx-text-control-web-customize-the-ribbon-bar/llms.txt)
- [Text Control Web - Fundamental Concepts: The Data Source](https://www.textcontrol.com/blog/2014/10/02/text-control-web-fundamental-concepts-the-data-source/llms.txt)
- [Reporting: Removing Empty Table Rows](https://www.textcontrol.com/blog/2014/09/30/reporting-removing-empty-table-rows/llms.txt)
- [MS Word Content Controls Field Adapter Classes](https://www.textcontrol.com/blog/2014/08/05/ms-word-content-controls-field-adapter-classes/llms.txt)
- [Reporting: Merge Blocks and Structured Numbered Lists](https://www.textcontrol.com/blog/2014/07/29/reporting-merge-blocks-and-structured-numbered-lists/llms.txt)
- [Creating Avery Labels Using Text Control Reporting](https://www.textcontrol.com/blog/2014/07/22/creating-avery-labels-using-text-control-reporting/llms.txt)
