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. {excerpt} {signature:C#} public void SetRepeatBlock(System.Data.IDataReader dr, System.String bookmark) {signature} {signature:vb.net} Public Sub SetRepeatBlock(ByVal dr As System.Data.IDataReader, ByVal bookmark As String) {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} |
Page History
Overview
Content Tools