Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin
Description

Excerpt

Sets the specified repeat block's data source to a jagged array (array-of-arrays) of objects.

Signature
C#
C#
 public void SetRepeatBlock(System.Object[][] jaggedArray, System.String[] columnNames, System.String bookmark)
Signature
vb.net
vb.net
Public Sub SetRepeatBlock(ByVal jaggedArray As Object()(), ByVal columnNames As String(), ByVal bookmark As String)
Parameters
Param
jaggedArray
jaggedArray

An jagged array of objects to use as a data source. the first dimension corresponds to row and the second to column (that is, Object[row][column]). WordWriter will insert these values in the repeat block's merge fields.

Param
columnNames
columnNames

A string array of data source field names. These must be the same as the corresponding merge field names in the template.

Param
bookmark
bookmark

The bookmark name of the template repeat block. The bookmark passed to SetRepeatBlock must exist in the template Word file. To see a list of template bookmark names:

  1. Open the template in Microsoft Word.
  2. Open the Edit menu.
  3. Select Go To...
  4. Select Bookmark.
  5. Under Enter bookmark name, open the drop-down list of bookmark names.
Exceptions
Exception
ArgumentNullException
ArgumentNullException

SetRepeatBlock will throw this exception if null (C#) or Nothing (VB.NET) is passed to the method.

Exception
ArgumentException
ArgumentException

Introducedin
8.4
8.4
Exception
SAException
SAException

SetRepeatBlock will throw this exception if the bookmark has been set to be removed.

Remarks

A repeat block is a fragment in the template document that will be repeated for each row in a data source. In the template document, repeat blocks are defined by Word bookmarks that contain merge fields.

You can call SetRepeatBlock several times for a single instance of WordTemplate. The repeat block specified by the parameter bookmark must exist in the template.

If you pass an empty data source to SetRepeatBlock WordWriter will not include the specified repeat block in the generated Word file.
Not all Word features can be included in a repeat block:

Web only
To see a full chart of limitations, go to our online documentation:
To see a full chart of limitations, go to our online documentation:

Supported in Repeat Blocks

Not Supported in Repeat Blocks

  • Character Formatting (everywhere)
  • Paragraph Formatting (Alignment, Outlines, Indent, Spacing, Page Break before, Keep Together)
  • Multiple Columns (2, 3, Column Breaks)
  • Borders and Shading
  • Tabs
  • Bullets
  • Numbering (numbering not reset, it is continued from one repeat block to another)
  • Page Breaks
  • Section Breaks
  • Auto Text Field
  • Hyperlink
  • Pictures
  • Table Row Repeat (entire row only)
  • Fields (with some restrictions)
  • Nested repeat blocks (Only one data source may be assigned to a single repeat block.)
  • Overlapping bookmarks
  • Comments
  • Drawing Objects
  • Text Boxes
  • Footnote and endnote references
  • Table and picture indexes
  • Single cell in a table
  • Smart tags (smart tags will be removed from the document)
  • Repeat blocks in headers, footers, footnotes, comments, text boxes, etc.
Web only

Example
Code Block
csharp
csharp
titleC#

          //--- A 2-D jagged array of values
          string[][] ValuesArr = new string[][] {
               new string[] {"Boston", "MA"},
               new string[] {"Miami", "FL"},
               new string[] {"Merchantville", "NJ"}
               };

          //--- Names array, elements correspond to merge field names
          string[] NamesArr = {"City", "State"};
          WordTemplate wt = new WordTemplate();
          wt.Open("template.doc");

          //--- Set the repeat block defined by the bookmark "Block"
          //--- The data source is the 2-D rectangular ValuesArr array
          wt.SetRepeatBlock(ValuesArr, NamesArr, "Block");
          wt.Process();
          wt.Save("out.doc");
        
Code Block
vb.net
vb.net
titlevb.net

          '--- A 2-D jagged array of values
          Dim ValuesArr()() As String = { _
               New String() {"Boston", "MA"}, _
               New String(){"Miami", "FL"}, _
               New String() {"Merchantville", "NJ"} _
               }

          '--- Names array, elements correspond to merge field names
          Dim NamesArr As String() = {"City", "State"}
          Dim wt As New WordTemplate()
          wt.Open("template.doc")

          '--- Set the repeat block defined by the bookmark "Block"
          '--- The data source is the 2-D rectangular ValuesArr array
          wt.SetRepeatBlock(ValuesArr, NamesArr, "Block")
          wt.Process()
          wt.Save("out.doc")