![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работа с вордом [D3, XP]
natik © (2005-10-14 20:07:00)Такая вот проблема:
нужно сделать заполнение вордовских шаблонов(вставка из базы данных на места закладок), сохранение и распечатку заполненных документов. На word 2000 все работает без проблем, а вот с Office Xp возникает проблема: файл создается, созраняется, а потом возникает ошибка "Microsoft Word - обнаружена ошибка" с предложением отправить отчет в майкрософт...Как с
этим бороться?
+++++++++++++++++++++++++++++++++++
unit winword;{модуль для работы с вордом}
interface
procedure Wopen(filename:string);
procedure Wrun;
procedure Wsearch(data:string);
procedure Winsert(info:string;_italic:boolean);
procedure WQuit;
procedure Wclose;
procedure WSave(Name:string);
procedure WPrint;
implementation
uses Olectnrs,comobj;
var MsWord:Variant;
procedure WOpen(fileName:string);
begin
try MsWord.Documents.Add(fileName{,EmptyParam});
except WError(2,'файл не найден'); end;
end;
procedure WRun;
begin
try MsWord:=CreateOleObject('Word.Application');
MsWord.Visible:=False;
except Werror(1,'Microsoft Word не установлен');
end;
end;
procedure Wsearch(data:string);
var What,Which,Count,Name:OLEVariant;
begin
What:=-1;
Which:=unAssigned;
Count:=unAssigned;
Name:=data;
MsWord.Selection.GoTo(What,Which,Count,Name);
end;
procedure Winsert(info:string;_italic:boolean);
begin
MsWord.Selection.Font.italic:=_italic;
MsWord.selection.TypeText(info);
end;
procedure WQuit;
begin
MsWord.Quit;
end;
procedure WClose;
begin
MsWord.Documents.Close;
end;
procedure WSave(Name:string);
begin
MsWord.ActiveDocument.SaveAs(FileName:=Name);
end;
procedure WPrint;
begin
MsWord.ActiveDocument.Print;
end;
end.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
{вот так используется}
Wrun;
Wopen('c:\program files\my.dot');//открытие шаблона
...
Wsearch('data1'); Winsert('record 1', false);
...
Wsave('c:\program files\new.doc');
{печать}
Wclose; //закрытие документа
WQuit; //закрыть word
end;
natik (2005-10-15 19:43:00) [1]да я не совсем про работу с закладками спрашиваю, так-то в общем все даже работает, только с вордом XP возникает ошибка при его закрытии...(ворд 2000 - без проблем все работает как надо). Может для XP какая другая команда должна быть?
Гость22 (2005-10-14 20:17:00) [2]Попробуй вот это: http://www.kornjakov.ru/stat.htm#s0
Сам когда-то намучился с закладками, то теперь перешел на простую подмену в самом документе.