# Flow Type Layout Reporting Series: Using Repeating Blocks

> Repeating blocks in TX Text Control handle master-detail relationships by cloning formatted content for each data row. This tutorial walks through inserting a merge block from an Excel source and configuring BlockStart and BlockEnd bookmark naming for the MailMerge class.

- **Author:** Bjoern Meyer
- **Published:** 2013-04-04
- **Modified:** 2026-03-05
- **Description:** Repeating blocks in TX Text Control handle master-detail relationships by cloning formatted content for each data row. This tutorial walks through inserting a merge block from an Excel source and configuring BlockStart and BlockEnd bookmark naming for the MailMerge class.
- **3 min read** (405 words)
- **Tags:**
  - Tutorial
- **Web URL:** https://www.textcontrol.com/blog/2013/04/04/flow-type-layout-reporting-series-using-repeating-blocks/
- **LLMs URL:** https://www.textcontrol.com/blog/2013/04/04/flow-type-layout-reporting-series-using-repeating-blocks/llms.txt
- **LLMs-Full URL:** https://www.textcontrol.com/blog/2013/04/04/flow-type-layout-reporting-series-using-repeating-blocks/llms-full.txt

---

![Blog Series: Flow Type Layout Reporting](https://s1-www.textcontrol.com/assets/dist/blog/2013/04/04/a/assets/blog_series_reporting.webp "Blog Series: Flow Type Layout Reporting")Creating powerful hierarchical reports is the strength of TX Text Control. Nested repeating blocks with master-detail relationship views can be easily inserted. It doesn't matter what's repeated in the block: A table row, paragraphs, images or text frames. There are no limits.

[![Using repeating blocks](https://s1-www.textcontrol.com/assets/dist/blog/2013/04/04/a/assets/flow_wysiwyg_5_zoom.webp "Using repeating blocks")](https://s1-www.textcontrol.com/assets/dist/blog/2013/04/04/a/assets/flow_wysiwyg_5_zoom.webp)

Thanks to the powerful, but easy-to-use designer, you can easily add a repeating block into your template.

The following tutorial shows how to use the sample **address.xlsx** database to insert a repeating block.

1. Open *TX Text Control Words* and open the sample database like described in this [tutorial](https://www.textcontrol.com/blog/2013/04/03/flow-type-layout-reporting-series-creating-a-simple-mailing/llms-full.txt) from step 1 to 3.
2. Click the *Insert Merge Block* drop-down button to open the list of available tables. Select *Addresses$* from the list.
    
    ![Using repeating blocks](https://s1-www.textcontrol.com/assets/dist/blog/2013/04/04/a/assets/tutorial_1.webp "Using repeating blocks")
    
    In the opened dialog box, select the columns you would like to include in the data and select *Table Row* as the presentation form.
    
    ![Using repeating blocks](https://s1-www.textcontrol.com/assets/dist/blog/2013/04/04/a/assets/tutorial_2.webp "Using repeating blocks")
    
    *TX Text Control Words* automatically inserts a table row with the required bookmarks to define the beginning and the end of a repeating block.
    
    ![Using repeating blocks](https://s1-www.textcontrol.com/assets/dist/blog/2013/04/04/a/assets/tutorial_3.webp "Using repeating blocks")
    
    The bookmarks have a special naming, so that TX Text Control's MailMerge class can find the blocks and connected data. The start bookmark begins with *BlockStart\_* + the name of the merge block. Sample: *BlockStart\_Addresses$*. The same is valid for the end bookmark: *BlockEnd\_Addresses$*
3. You can apply some formatting to the text and the table. The whole block is cloned including it's formatting and style.
    
    ![Using repeating blocks](https://s1-www.textcontrol.com/assets/dist/blog/2013/04/04/a/assets/tutorial_5.webp "Using repeating blocks")
4. Finally, click the *Preview* button in the *Mailings* ribbon tab. The report is previewed based on the connected data source.
    
    ![Using repeating blocks](https://s1-www.textcontrol.com/assets/dist/blog/2013/04/04/a/assets/tutorial_4.webp "Using repeating blocks")

---

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

- [Windows Forms Tutorial: Create Your First Windows Forms C# Application](https://www.textcontrol.com/blog/2024/08/26/windows-forms-tutorial-create-your-first-windows-forms-csharp-application/llms.txt)
- [How to Mail Merge MS Word DOCX Documents in ASP.NET Core C#](https://www.textcontrol.com/blog/2023/10/16/how-to-mail-merge-ms-word-docx-documents-in-aspnet-core-csharp/llms.txt)
- [Creating an Angular Document Editor Application with a Node.js WebSocket Server](https://www.textcontrol.com/blog/2023/08/24/creating-an-angular-document-editor-application-with-a-nodejs-websocket-server/llms.txt)
- [Adding SVG Watermarks to Documents](https://www.textcontrol.com/blog/2022/01/28/adding-svg-watermarks-to-documents/llms.txt)
- [Using MailMerge in ASP.NET Core 6 Web Applications](https://www.textcontrol.com/blog/2022/01/27/using-mailmerge-in-aspnet-core-6-web-applications/llms.txt)
- [DocumentViewer for React Prerelease](https://www.textcontrol.com/blog/2020/10/27/document-viewer-for-react-prerelease/llms.txt)
- [New DocumentViewer Signature Tutorial Sample](https://www.textcontrol.com/blog/2020/08/18/new-documentviewer-signature-tutorial-sample/llms.txt)
- [Creating an ASP.NET MVC DocumentViewer Application With Razor](https://www.textcontrol.com/blog/2020/01/01/creating-an-aspnet-mvc-documentviewer-application-with-razor/llms.txt)
- [Creating Your First Windows Forms Application with C#](https://www.textcontrol.com/blog/2020/01/01/creating-your-first-windows-forms-application-with-csharp/llms.txt)
- [Creating Your First WPF Application](https://www.textcontrol.com/blog/2020/01/01/creating-your-first-wpf-application/llms.txt)
- [Creating a WPF Ribbon Application](https://www.textcontrol.com/blog/2020/01/01/creating-a-wpf-ribbon-application/llms.txt)
- [Integrate Document Editing into any HTML Client using the HTML Widget](https://www.textcontrol.com/blog/2020/01/01/integrate-document-editing/llms.txt)
- [Creating an ASP.NET MVC Application With Razor](https://www.textcontrol.com/blog/2020/01/01/creating-an-aspnet-mvc-application-with-razor/llms.txt)
- [Creating A Windows Forms Ribbon Application](https://www.textcontrol.com/blog/2020/01/01/creating-a-windows-forms-ribbon-application/llms.txt)
- [Creating Your First ASP.NET Reporting Application](https://www.textcontrol.com/blog/2020/01/01/creating-your-first-aspnet-reporting-application/llms.txt)
- [Creating an ASP.NET Web Forms AJAX Application](https://www.textcontrol.com/blog/2020/01/01/creating-an-aspnet-web-forms-ajax-application/llms.txt)
- [Creating a WebSocket Server Project with Node.js](https://www.textcontrol.com/blog/2020/01/01/creating-a-websocket-server-project-with-nodejs/llms.txt)
- [Creating an Angular Document Editor Application](https://www.textcontrol.com/blog/2020/01/01/creating-an-angular-document-editor-application/llms.txt)
- [ReportingCloud .NET Core Quickstart Tutorial](https://www.textcontrol.com/blog/2019/07/24/reportingcloud-dotnet-core-quickstart-tutorial/llms.txt)
- [Document Permissions and Password Encryption](https://www.textcontrol.com/blog/2019/07/05/document-permissions-and-password-encryption/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)
- [Windows Forms and WPF: End a List on Return when Line is Empty](https://www.textcontrol.com/blog/2016/08/26/windows-forms-and-wpf-end-a-list-on-return-when-line-is-empty/llms.txt)
- [Using IFormattedText Objects to Access Elements Across All TextParts in a Document](https://www.textcontrol.com/blog/2016/08/25/using-iformattedtext-objects-to-access-elements-across-all-textparts-in-a-document/llms.txt)
