Message-ID: <1404325522.9913.1711706595120.JavaMail.web05$@web05> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_9912_1213162020.1711706595120" ------=_Part_9912_1213162020.1711706595120 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Sets the specified repeat block's data source to an IDataReader interfac= e, which may be either a SqlDataReader, OleDbDataReader, or an AdomdDataRea= der.
=20public void SetRepeatBlock(System.Data.IDataReader dr, System.String bookm= ark, int maxRows)=20
Public Sub SetRepeatBlock(ByVal dr As System.Data.IDataReader, ByVal bookma= rk As String, ByVal maxRows As Integer)=20
The bookmark name of the template repeat block. The bookmark passed to <= code>SetRepeatBlock must exist in the template Word file. To see a l= ist of template bookmark names:
=20maxRows*(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=20
WordTemplat=
e.ALL_ROWS.=20
SetRepeatBlock
will throw this exception if=20
null
(C#) or=20
Nothing
(VB.NET) is passed to the method.=20
SetRepeatBlock
will throw this exception if the=20
bookmark
has been set to be=20
re=
moved.=20
A repeat block is a fragment in the template document that will be repea= ted for each row in a data source. In the template document, repeat blocks = are defined by Word bookmarks that contain merge fields.
=20You can call SetRepeatBlock several times for a single instance of WordTemplate. The repe=
at block specified by the parameter bookmark
must exist in the=
template.
If you pass an empty DataReader to SetRepeatBlock
- by eith=
er setting maxRows
to 0 or passing an empty DataReader - WordW=
riter will not include the specified repeat block in the generated Word fil=
e.
Not all Word features can be included in a repeat block:
$body=20Supported in Repeat Blocks | =20
Not Supported in Repeat Blocks | =20
---|---|
| =20
| =20
//--- Get a DataReader //--- WordWriter accepts OleDbDataReader, SqlDataReader, and Adom= dDataReader OleDbDataReader dr =3D GetOleDbDataReader(); WordTempalte oWW =3D 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(); =20 private OleDbDataReader GetOleDbDataReader() { OleDbConnection Conn =3D new OleDbConnection(connString); //--- SQL Query for categories. string CategorySQL =3D "SELECT CategoryID, CategoryName= ," + "Description FROM Categories"; Conn.Open(); return new OleDbCommand(CategorySQL, Conn).ExecuteReader( CommandBehavior.CloseConnection); }=20
'--- Get a DataReader '--- WordWriter accepts OleDbDataReader, SqlDataReader, and Adomd= DataReader Dim dr As OleDbDataReader =3D 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 b= e '--- 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 =3D "SELECT CategoryID, Categ= oryName," & _ "Description FROM Categories" Conn.Open() Return New OleDbCommand(CategorySQL, Conn).ExecuteReader( _ CommandBehavior.CloseConnection) End Function=20