![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отчет в MS Word [D7, WinXP]
elfebet © (2006-01-16 12:30:00)Прочитал на этом сайте тему про "Отчет в MS Word", ни один вариант не подошел (не работает). Задача состоит в том, чтобы текст подставлялся в определённые места документа Word через закладки.
Пишу такой код:
var W: Variant;
...
W:=CreateOleObject('Word.Application');
W.WordBasic.FileOpen('C:\document.doc');
W.WordBasic.StartOfDocument;
W.ActiveDocument.Bookmarks('num').Select;
W.WordBasic.Insert('new text');
Выдает ошибку в строке:
W.ActiveDocument.Bookmarks('num').Select;
пробовал:
W.EditGoto('num');
и
W.EditBookmark('num');
не работает.
Погмогите плиз, очень надо.
elfebet (2006-01-16 14:45:00) [1]сэнкс
evvcom (2006-01-16 14:36:00) [2]
> W.WordBasic.FileOpen('C:\document.doc');
По-моему, обычно используют
W.Documents.Open
InsertAfter applies to Range Object and Selection Object. Так что вполне нормальный способ решения.
P.S.
> var W: Variant;
> R: OleVariant;
А чего это ты их разными типами сделал? Используй везде OleVariant;
elfebet (2006-01-16 14:20:00) [3]Я нашел способ решения задачи. Честно горовя этот способ мне кажется неправильным, но работает.
var W: Variant;
R: OleVariant;
...
W:=CreateOleObject('Word.Application');
W.WordBasic.FileOpen('C:\document.doc');
W.Visible:=true;
R:= W.ActiveDocument.Bookmarks.Item('num').Range;
R.InsertAfter('new text');
elfebet (2006-01-16 13:56:00) [4]Такая закладка есть. Выдает ошибку "Bookmarks не является методом"
evvcom (2006-01-16 13:50:00) [5]
> Выдает ошибку в строке:
> W.ActiveDocument.Bookmarks('num').Select;
А у тебя есть в Ворде такая закладка? Или ты думаешь, что Билл Гейтс во все новые документы такую закладку внедряет?
Kot_ (2006-01-16 13:42:00) [6]Попробуй не через закладки, а заменением определенных кодов.
Например @дата@ мненяем на нужную дату.
asafr (2006-01-16 13:36:00) [7]текст ошибки, пжлст....