...
Exception |
---|
|
SetRepeatBlock will throw this exception if the bookmark has been set to be removed.
|
Limitations
Remarks |
---|
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 DataReader to SetRepeatBlock - by either setting maxRows to 0 or passing an empty DataReader - 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.
|
|
{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 DataReader to SetRepeatBlock
- by either setting maxRows
to 0 or passing an empty DataReader - WordWriter will not include the specified repeat block in the generated Word file.
Example |
---|
Code Block |
---|
|
//--- 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
//--- Set MaxRows to 10. Only 10 rows from the DataReader
//--- will be imported
oWW.SetRepeatBlock(dr, "Page", 10);
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 Block |
---|
|
'--- 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
'--- Set MaxRows to 10. Only 10 rows from the DataReader
'--- will be imported
oWW.SetRepeatBlock(dr, "Page", 10)
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
|
|