Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Excerpt

Use

...

repeat block

...

 to import multiple rows from a data source. A repeat block is a fragment in the template document - defined by a Word bookmark - that

...

contains merge fields

...

 and that will be repeated for each row in a data source. To import multiple rows from a single data source, create a repeat block in the template and, in the WordWriter code, call SetRepeatBlock to bind the repeat block to a data source.

The main document is any part of the template that is not within a repeat block. SetDataSource sets a single-row data source for merge fields in the main document. If you pass SetDataSource a ResultSet that contains more than one row, WordWriter will import the first row to the template. Multiple row data sources can be imported to repeat blocks only, not to main document merge fields.

...

Here is some example code that demonstrates the usage of SetRepeatBlock with a DataTable that has multiple rows. This code inserts data into merge fields "FirstName" and "LastName" enclosed in the repeat block named "BookMarkName".

Csharp

void GenerateDocument(int employeeID)
{
     //--- Query the database
     DataTable dt = new DataTable();
     using(SqlConnection conn = new SqlConnection(connString))
     {
          string sql =
               "SELECT FirstName, LastName FROM Employee";
          SqlDataAdapter adpt = new SqlDataAdapter(sql, conn);
          adpt.Fill(dt);
     }

     //--- Use a DataTable as the data source
     WordTemplate wt = new WordTemplate();
     wt.Open(templatePath);
     wt.SetRepeatBlock(dt, "BookMarkName");
     wt.Process();
     wt.Save(Page.Response, "RepeatBlockOutput.doc", false);
}

...