Я написал приложение на C # для создания писем с тиккерами, но не могу закрыть документы без ошибок - PullRequest
0 голосов
/ 06 июня 2018

Я создал приложение ac # для создания писем-тиклеров.Мое намерение состоит в том, чтобы программа создала и напечатала буквы, а затем закрыла слово без необходимости какого-либо пользовательского ввода.Если я использую letter1.Close ();исключение выдается при создании второй буквы.Если я не использую оператор close, то пользователь должен ответить на диалог сохранения для каждой буквы.Я не хочу сохранять письма и хочу избежать этого, поскольку процесс может произвести десятки писем.Какие-либо предложения?Я использую Visual Studio 2015 и Word 2010. The Letter1.Close ();выдает исключение: вызванный объект отключился от своих клиентов.(Исключение из HRESULT: 0x80010108 (RPC_E_DISCONNECTED))

TIA - Линда

var application = new Microsoft.Office.Interop.Word.Application();
var template1 = new Microsoft.Office.Interop.Word.Document();
var letter1 = new Microsoft.Office.Interop.Word.Document();
application.Visible = true;

//CreateMailMergeDataFile();
string ConnectionName = "TRUEIBM";
iDB2Connection conn = new iDB2Connection(connectionString);
conn.Open();
iDB2Command cmd = conn.CreateCommand();
string sqlStmt = Scripts.sqlGetVendorsAbouttoExpire;
cmd.CommandText = sqlStmt;
DataSet ds = new DataSet();
iDB2DataAdapter adapter = new iDB2DataAdapter();
adapter.SelectCommand = new iDB2Command(sqlStmt, conn);
adapter.Fill(ds);
cmd.Dispose();
conn.Close();

string l_vendorName;
string l_space = new string(' ', 10);
string l_vendor_no_n6;
string l_date = DateTime.Now.ToString("MMMM dd, yyyy");

object doNotSaveChanges = WdSaveOptions.wdDoNotSaveChanges;
object oMissing = System.Reflection.Missing.Value; 

List<VendortoExpireModel> vendorstoExpireList =
    new List<VendortoExpireModel>();

foreach (DataRow dr in ds.Tables[0].Rows)
    {
        VendortoExpireModel VendorstoExpire = new VendortoExpireModel();
        VendorstoExpire.Vendor_No_N6 = (dr "Vendor_No_N6"]);
        l_vendor_no_n6 = Convert.ToString(dr["Vendor_No_n6"]);
        VendorstoExpire.Vendor_Name = dr["Vendor_Name"].ToString();
        l_vendorName = dr["Vendor_Name"].ToString().Trim();
        VendorstoExpire.Address1 = dr["Address1"].ToString().Trim();
        VendorstoExpire.Address2 = dr["Address2"].ToString().Trim();
        VendorstoExpire.City = dr["City"].ToString().Trim();
        VendorstoExpire.State_Abbr = dr["State_Abbr"].ToString().Trim();
        VendorstoExpire.Zip = dr["Zip"].ToString().Trim();
        vendorstoExpireList.Add(VendorstoExpire);

        // Perform mail merge.
        template1 = application.Documents.Add = blah         

        foreach (Microsoft.Office.Interop.Word.Field field in template1.Fields)
            {
                if(field.Code.Text.Contains("Vendor_Name"))
                {
                    field.Select();
                    application.Selection.TypeText(VendorstoExpire.Vendor_Name);
                }
                else if(field.Code.Text.Contains("Address1") && VendorstoExpire.Address1 != "")
                {
                    field.Select();
                    application.Selection.TypeText(VendorstoExpire.Address1);
                }        

        //send to printer
        letter1.PrintOut(); 
        letter1.Close();   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...