Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

работа с вордом [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
Сам когда-то намучился с закладками, то теперь перешел на простую подмену в самом документе.


Наверх

Титульная страница Поиск, карта сайта Написать письмо