Page tree

Versions Compared

Key

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

...

Code Block
   public void GenerateDocument()
        {
            // Create an instance of WordTemplate
            WordTemplate wt = new WordTemplate();
 
            // Open the template document
            string templatePath = @"..\..\WordTemplateFiles\PurchaseOrderTemplate.docx";
            wt.Open(templatePath);
 
            // Query the database for header and detail information.
            // Set these DataTables as WordTemplate data sources.
           
            DataTable dtHeader = GetOrderHeaderData(@"..\..\WordData\PurchaseOrderDemoHeaderData.csv");
            DataTable dtDetail = GetOrderDetailData(@"..\..\WordData\PurchaseOrderDemoDetailData.csv");
            wt.SetDataSource(dtHeader);
            wt.SetRepeatBlock(dtDetail, "OrderDetailQuery");
            wt.Process();
 
            // Save the document to the disc
            wt.Save(@"..\..\WordOutputFiles\PurchaseOrder_output.docx");
        }

        /// <summary>Retrieve a DataTable of order header data</summary>
        /// <param name="orderId">OrderID for which to retrieve data</param>
        /// <returns>DataTable of the requested order's data</returns>
        private DataTable GetOrderHeaderData(String csvFileName)
        {
            DataTable dt; 
            using (GenericParserAdapter parser = new GenericParserAdapter(csvFileName))
            {
                parser.ColumnDelimiter = ',';
                parser.FirstRowHasHeader = true;

                dt = parser.GetDataTable();
            }


            return dt;
        }

        /// <summary>Retrieve a ReusltSet of order detail line items</summary>
        /// <param name="orderId">OrderID for which to retrieve data</param>
        /// <returns>DataTable of the requested order's line items</returns>
        private DataTable GetOrderDetailData(String csvFileName)
        {
            DataTable dt;
            using (GenericParserAdapter parser = new GenericParserAdapter(csvFileName))
            {
                parser.ColumnDelimiter = ',';
                parser.FirstRowHasHeader = true;

                dt = parser.GetDataTable();
            }


            return dt; 
        }

 Downloads

Panel

Template:  PurchaseOrderTemplate.docx

Output:  PurchaseOrder_output.docx

...