为什么我的代码打开两个Microsoft Office Word实例?

问题描述:

我使用一个函数来缓解我的应用程序中的打印。这是它:为什么我的代码打开两个Microsoft Office Word实例?

​​

它看起来很好,因为我可以使用邮件合并,使事情变得更容易。我打开一个打开文件对话框,以便用户可以选择他将用于邮件合并的template文件。但随后,应用程序打开文件template不会对任何Merge Fields数据,然后进行邮件合并打开另一个文件已填写所有的Merge Fields

任何想法,为什么出现这种情况?下面是打开文件对话框代码:

   //CHOOSE TEMPLATE FILE 
       OpenFileDialog ofd = new OpenFileDialog(); 
       ofd.Filter = "Microsoft Word Template (*.dotx)|*.dotx"; 
       string filter = ofd.Filter; 
       ofd.Multiselect = false; 
       ofd.Title = "Open Template File"; 
       if (ofd.ShowDialog() == DialogResult.OK) 
       { 
        if (ofd.SafeFileName == "payslip.dotx") 
        { 
         //RETREIVE VALUES 
         var db = new DBConnect(); 
         string[] values = new string[20]; 
         bool print = false; 
         OleDbCommand cmd = null; 
         OleDbDataReader dr = null; 
         try 
         { 
          if (db.OpenConnection() == true) 
          { 
           string query = "SELECT * FROM employee WHERE employee_ID = " + idTxtBox.Text + ""; 
           cmd = new OleDbCommand(query, db.mycon); 
           dr = cmd.ExecuteReader(); 
           while (dr.Read()) 
           { 
            values[2] = (dr["employeeName"].ToString()); 
            values[3] = (dr["withTax"].ToString()); 
            values[4] = (dr["sss"].ToString()); 
            values[5] = (dr["pagIbig"].ToString()); 
            values[6] = (dr["pHealthGov"].ToString()); 
            values[7] = (dr["pCareOff"].ToString()); 
            values[8] = (dr["loan_sss"].ToString()); 
            values[9] = (dr["loan_pagIbig"].ToString()); 
            values[10] = (dr["loan_koti"].ToString()); 
            values[11] = (dr["tardinessAbscences"].ToString()); 
            values[12] = totalDeductionsTxtBox.Text; 
            values[13] = (dr["overTime"].ToString()); 
            values[14] = (dr["leave"].ToString()); 
           } 
           print = true; 
          } 
         } 
         catch (OleDbException ex) 
         { 
          MessageBox.Show(ex.Message); 
         } 
         finally 
         { 
          if (dr.IsClosed == false) 
          { 
           dr.Close(); 
          } 
          db.CloseConnnection(); 
         } 

         if (print == true) 
         { 
          // PRINTING 
          var p = new printClass(); 
          p.print(@"C:\IT Box Incorporated\Payroll\payslipCSV.csv", 
            "date_issued,employee_name,tax,sss,pagibig,phg,pco,sssloan,pagibigloan,kotiloan,late,total,ot,leave", 
            "" + (DateTime.Now.Date.ToString("MMM") + " " + DateTime.Now.Date.ToString("yyyy")) + "," + values[2] + "," + values[3] + "," + values[4] + "," + values[5] + "," + values[6] + "," + values[7] + "," + values[8] + "," + values[9] + "," + values[10] + "," + values[11] + "," + values[12] + "," + values[13] + "," + values[14] + "", 
            ofd.FileName); 
         } 
         else 
         { 
          MessageBox.Show("Print Failed!"); 
         } 
        } 
        else 
        { 
         MessageBox.Show("Print Failed! Wrong File!"); 
        } 
       } 
       else 
       { 
        MessageBox.Show("Print Failed!"); 
       } 

在Windows 7中,如果你有一个文件打开的窗口中预览,然后启用将尝试预览文档并开始新的WINWORD过程。

禁用预览模式在Windows 7