为什么我的代码打开两个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