Показать сообщение отдельно
  #2  
Старый 02.03.2015, 21:13
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Все верно, такая задача обычно реализуется шаблоном. Есть несколько вариантов заполнения такого шаблона, можно создать источник данных и из него вставить поля в нужные позиции документа, а можно просто вставить именованные закладки и просто искать их в шаблоне подставляя нужные значения. Например если в документе есть закладка с именем CompanyName то код будет примерно таким:
Код:
var
  TempleateFileName, BookmarkName: String;
  WordApp, Document, Range: OleVariant;
  i: Integer;
begin
 TempleateFileName := 'c:\CompanyInfo.dotx';
  try
   WordApp := GetActiveOleObject('Word.Application');
  except
   try
    WordApp := CreateOleObject('Word.Application');
   except on E: Exception
   do begin
      ShowMessage('Не удалось запустить Word!'#13#10 + E.Message);
      Exit;
      end;
   end;
  end;

  try
   Screen.Cursor := crHourGlass;
   Document := WordApp.Documents.Add(Template := TempleateFileName, NewTemplate := False);
   for i := Document.Bookmarks.Count downto 1
   do begin
      BookmarkName := Document.Bookmarks.Item(i).Name;
      Range := Document.Bookmarks.Item(i).Range;
      if BookmarkName = 'CompanyName' then Range.Text := 'Рога и Копыта';
   end;
   WordApp.Visible := True;
  finally
   WordApp := Unassigned;
   Screen.Cursor := crDefault;
  end;
end;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием