Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Доступ к полям Word


Автор: Nick64 12.10.2010, 10:47
Доброго времени суток.
Пишу небольшую программу, в программу заносим некоторые данные, затем нажимаем кнопку "Открыть Word" и данные из программы передаются в докумен Word.
В документе Word есть поля, которые нужно заменить данными из программы. При использовании раннего связывания все получается, данные в документ заносятся.
Код такой
Код

Word.Application wordapp = new Word.Application();
Word.Document wrd = new Word.Document();

wordapp.Visible = true;
Object template = Type.Missing;
Object newTemplate = false;
Object documentType = Word.WdNewDocumentType.wdNewBlankDocument;
Object visible = true;
template = @"D:\My Documents\contr\template\шаблон1.doc";
//Создаем документ 
wrd = wordapp.Documents.Add(ref template, ref newTemplate, ref documentType, ref visible);
wrd.Activate();
wrd.UserControl = true;
            
wrd.Fields[1].Select();
wordapp.Selection.TypeText("12345");
            


Хочу использовать технологию позднего связывания, но не могу получить доступ к полям.
Код для позднего связывания:
Код

Type objClassType;
objClassType = Type.GetTypeFromProgID("Word.Application");
objApp_Late = Activator.CreateInstance(objClassType);

objDocs_Late = objApp_Late.GetType().InvokeMember("Documents", BindingFlags.GetProperty, null, objApp_Late, null);
Parameters = new Object[1];
Parameters[0] = Path.GetDirectoryName(GetFileName()) + "\\template\\" + cb_template_dogovor.Text;
objBook_Late = objDocs_Late.GetType().InvokeMember("Add", BindingFlags.InvokeMethod, null, objDocs_Late, Parameters);

Parameters = new Object[1];
Parameters[0] = "[1]";
objFields = objBook_Late.GetType().InvokeMember("Fields", BindingFlags.GetProperty, null, objBook_Late, null);

Parameters = new Object[1];
Parameters[0] = true;
objApp_Late.GetType().InvokeMember("Visible", BindingFlags.SetProperty, null, objApp_Late, Parameters);


Может кто сталкивался, подскажите.

Заранее спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)