Sets the specified repeat block's data source to an ADO.NET DataSet. |
public void SetRepeatBlock(System.Data.DataSet ds, System.String bookmark, int maxRows)
|
Public Sub SetRepeatBlock(ByVal ds As System.Data.DataSet, ByVal bookmark As String, ByVal maxRows As Integer)
|
The DataSet 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:
- 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.
|
Specifies the maximum number of repetitions to write to the file. If Next fields are enabled (see EnableNEXTFields), then the number of rows imported from the data source is maxRows*(numberOfNextFields+1) . If Next fields are not enabled the number of rows imported is equal to the number of repetitions written out. To write the maximum rows available, use the constant WordTemplate.ALL_ROWS. |
SetRepeatBlock will throw this exception if null (C#) or Nothing (VB.NET) is passed to the method.
|
SetRepeatBlock will throw this exception if the bookmark has been set to be removed.
|
Limitations
Not all Word features can be included in a repeat block:
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.
|
{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 DataSet to SetRepeatBlock
- by either setting maxRows
to 0 or passing an empty DataSet - WordWriter will not include the specified repeat block in the generated Word file.
//--- A dataset with the data to be repeated
DataSet ds = GetDataSet();
WordTemplate oWW = new WordTemplate();
oWW.Open("c:\\template.doc");
//--- Set a data source for the repeat block
//--- defined by the bookmark "Page"
//--- "ds" is the DataSet containing the data to be
//--- imported and repeated in the repeat block
//--- The first DataTable in the DataSet will be used
//--- Set MaxRows to 10. No matter how many DataRows
//--- are in the DataSet, only 10 will be imported
oWW.SetRepeatBlock(ds, "Page", 10);
oWW.Process();
oWW.Save(Page.Response, "Output.doc", false);
|
'--- A dataset with the data to be repeated
Dim ds As DataSet = GetDataSet()
Dim oWW As New WordTemplate()
oWW.Open("c:\template.doc")
'--- Set a data source for the repeat block
'--- defined by the bookmark "Page"
'--- "ds" is the DataSet containing the data to be
'--- imported and repeated in the repeat block
'--- The first DataTable in the DataSet will be used
'--- Set MaxRows to 10. No matter how many DataRows
'--- are in the DataSet, only 10 will be imported
oWW.SetRepeatBlock(ds, "Page", 10)
oWW.Process()
oWW.Save(Page.Response, "Output.doc", False)
|
|