Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0
Description

...

Wiki Markup
{description}
{excerpt}Sets the specified repeat block's data source to an IDataReader interface, which may be either a SqlDataReader, OleDbDataReader or an AdomdDataReader.

...

Signature
C#C#
 
{excerpt}
{signature:C#}
 public void SetRepeatBlock(System.Data.IDataReader dr, System.String bookmark)
Signature
{signature}
{signature:vb.net
vb.net
}
Public Sub SetRepeatBlock(ByVal dr As System.Data.IDataReader, ByVal bookmark As String)
Parameters

...

a SqlDataReader, OleDbDataReader, or an AdomdDataReader to use as the data source.

...

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

...

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

...

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 DataReader 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:

{signature}
{parameters}
{param:dr}a SqlDataReader, OleDbDataReader, or an AdomdDataReader to use as the data source.
{param}
{param: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: 
# Open the template in Microsoft Word.
# Open the *Edit* menu.
# Select *Go To...*
# Select *Bookmark*.
# Under *Enter bookmark name*, open the drop\-down list of bookmark names.
{param}
{exceptions}
{exception:ArgumentNullException}{{SetRepeatBlock}} will throw this exception if {{null}} \(C\#\) or {{Nothing}} \(VB.NET\) is passed to the method.
{exception}
{exception:ArgumentException}
{exception}
{introducedin:8.4}
{exception:SAException}{{SetRepeatBlock}} will throw this exception if the {{bookmark}} has been set to be  [removed|WordTemplate.BookmarksToRemove].{exception}
{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|WordTemplate.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 DataReader 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:}
|| 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}
{remarks}
{example}{code:csharp|title=C#}

          //--- Get a DataReader
          //--- WordWriter accepts OleDbDataReader, SqlDataReader, and AdomdDataReader
          OleDbDataReader dr = GetOleDbDataReader();
          WordTempalte oWW = new WordTemplate();
          oWW.Open(Page.MapPath("./template.doc"));

          //--- Set a data source for the repeat block
          //--- defined by the bookmark "Page"
          //--- "dr" is the DataReader containing information to be
          //--- imported and repeated in the repeat block
          oWW.SetRepeatBlock(dr, "Page");
          oWW.Process();
          oWW.Save(Page.Response, "EmployeeOutput.doc", false);

          //--- Close the DataReader in a finally block
          dr.Close();
  
          private OleDbDataReader GetOleDbDataReader()
          {
               OleDbConnection Conn = new OleDbConnection(connString);

               //--- SQL Query for categories.
               string CategorySQL = "SELECT CategoryID, CategoryName," +
                    "Description FROM Categories";
               Conn.Open();
               return new OleDbCommand(CategorySQL, Conn).ExecuteReader(
                    CommandBehavior.CloseConnection);
          }
        
{code}
{code:vb.net
|title=vb.net
}

          '--- Get a DataReader
          '--- WordWriter accepts OleDbDataReader, SqlDataReader, and AdomdDataReader
          Dim dr As OleDbDataReader = GetOleDbDataReader()
          Dim oWW As New WordTemplate()
          oWW.Open(Page.MapPath("./template.doc"))

          '--- Set a data source for the repeat block
          '--- defined by the bookmark "Page"
          '--- "dr" is the DataReader containing information to be
          '--- imported and repeated in the repeat block
          oWW.SetRepeatBlock(dr, "Page")
          oWW.Process()
          oWW.Save(Page.Response, "EmployeeOutput.doc", False)

          '--- Close the DataReader in a finally block
          dr.Close()

          Private Function GetOleDbDataReader() As OleDbDataReader
               Dim Conn As New OleDbConnection(connString)

               '--- SQL Query for categories.
               Dim CategorySQL As String = "SELECT CategoryID, CategoryName," & _
                    "Description FROM Categories"
               Conn.Open()
               Return New OleDbCommand(CategorySQL, Conn).ExecuteReader( _
                    CommandBehavior.CloseConnection)
          End Function
        {code}

{example}
Exception
SAExceptionSAException

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

Remarks
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.
Example
Code Block
csharpcsharp
titleC#
Code Block
vb.nettitle