Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.03.2015, 19:04
Eldar1991 Eldar1991 вне форума
Прохожий
 
Регистрация: 02.03.2015
Сообщения: 21
Версия Delphi: delphi7
Репутация: 10
По умолчанию Как создать и заполнить документ Ворд данными из ячеек DBGrid методом dbgrd1DblClick

Здравствуйте! Вопрос такой: Есть DBGrid, связанный с базой MS Access. Задача заключена в том, чтобы при нажатии на определенную строку Грида генерировался отчет Ворд, содержащий все значения из выбраной строки в специально отведенных для этого местах документа)Каким способом это возможно реализовать? Как я понял использование шаблона более надежная и простая схема, тока вот как он подключается, как в нем задать координаты мест для вставки значений и самое главное как правильно указать эти координаты? Надеюсь на вашу помощь)
Ответить с цитированием
  #2  
Старый 02.03.2015, 21:13
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 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;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 04.03.2015, 21:54
Eldar1991 Eldar1991 вне форума
Прохожий
 
Регистрация: 02.03.2015
Сообщения: 21
Версия Delphi: delphi7
Репутация: 10
По умолчанию

Большое спасибо!)) реализовал вставку в документ через закладки Ms Word. Получилось очень удобно))) спасибо))
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:54.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter