# Reporting: Repeating Blocks with Breaks and Without

> Merge blocks in Text Control Reporting repeat their content for each data row in the source. The repeated content can be a table row, paragraph, or inline text. Adding CRLF, page break, section break, or column break characters between repetitions controls the output layout.

- **Author:** Bjoern Meyer
- **Published:** 2014-05-31
- **Modified:** 2026-07-17
- **Description:** Merge blocks in Text Control Reporting repeat their content for each data row in the source. The repeated content can be a table row, paragraph, or inline text. Adding CRLF, page break, section break, or column break characters between repetitions controls the output layout.
- **2 min read** (360 words)
- **Tags:**
  - Reporting
  - Tutorial
- **Web URL:** https://www.textcontrol.com/blog/2014/05/31/reporting-repeating-blocks-with-breaks-and-without/
- **LLMs URL:** https://www.textcontrol.com/blog/2014/05/31/reporting-repeating-blocks-with-breaks-and-without/llms.txt
- **LLMs-Full URL:** https://www.textcontrol.com/blog/2014/05/31/reporting-repeating-blocks-with-breaks-and-without/llms-full.txt

---

*Repeating blocks* or *merge blocks* is a very flexible feature with Text Control Reporting. The content of a block is repeated based on the number of data rows that are passed to this block. Generally, you can repeat everything: A table row, a complete table, paragraphs or a single word. All *break* characters are repeated and applied automatically.

To insert a new merge block in TX Text Control Words - the Text Control Reporting template designer - the following easy steps are required:

- Create a paragraph, table or whatever you want to repeat and add some fields:
    
    ![Create a merge block](https://s1-www.textcontrol.com/assets/dist/blog/2014/05/31/a/assets/step1.webp "Create a merge block")
- Select that part of the text that should belong to the repeating block and choose an available block from the *Insert Merge Block* drop-down button:
    
    ![Create a merge block](https://s1-www.textcontrol.com/assets/dist/blog/2014/05/31/a/assets/step2.webp "Create a merge block")

Consider the following block (between the two block markers) where product names should be listed in the same paragraph:

![Reporting: Repeating blocks with breaks and without](https://s1-www.textcontrol.com/assets/dist/blog/2014/05/31/a/assets/tx_repeating_blocks1.webp "Reporting: Repeating blocks with breaks and without")When merging this block, the products are repeated in inline:

![Reporting: Repeating blocks with breaks and without](https://s1-www.textcontrol.com/assets/dist/blog/2014/05/31/a/assets/tx_repeating_blocks2.webp "Reporting: Repeating blocks with breaks and without")When adding the CLRF ("carriage return line feed") control character to the block, a new paragraph is inserted for each block:

![Reporting: Repeating blocks with breaks and without](https://s1-www.textcontrol.com/assets/dist/blog/2014/05/31/a/assets/tx_repeating_blocks3.webp "Reporting: Repeating blocks with breaks and without")The resulting document is shown below:

![Reporting: Repeating blocks with breaks and without](https://s1-www.textcontrol.com/assets/dist/blog/2014/05/31/a/assets/tx_repeating_blocks4.webp "Reporting: Repeating blocks with breaks and without")Instead of a new paragraph after the block, you can also insert a page break, section break or column break that are applied automatically during the merge process.

---

## 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)
