Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2010, 21:16   #1
Fantss
 
Регистрация: 22.03.2010
Сообщений: 7
Восклицание Автозаполнение документа Word из Делфи

Начальство дало задание сделать програмку для автозаполнения нужных мест в документе word и реализовать как прогу... я вообще не шарю с этим, но надо сделать за неделю.. помогите плиз...
Прикреплен документ.
Вложения
Тип файла: doc заявление.doc (113.0 Кб, 86 просмотров)
Fantss вне форума Ответить с цитированием
Старый 22.03.2010, 23:29   #2
AlexanderKs
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 60
По умолчанию

Можно сделать через WordApplication (вкладка Servers). AutoConnect=true
( Word: TWordApplication; ). Материал для изучения WordApp (то, что нужно в данном случае) - здесь.


Код:
procedure TForm1.Button1Click(Sender: TObject); // "Заполнить"
var
  fil:OleVariant; // путь к файлу
  Tabl: Table; // таблица Word
   i:integer;
   s:string;
begin
   fil:=GetCurrentDir()+'\заявление.doc';  // путь к документу
     Word.Documents.OpenOld(fil,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
       EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam); // открываем документ

   tabl:=Word.ActiveDocument.Tables.Item(2); // получаем "указатель" на вторую таблицу - табл с полем "Форма"
   s:=Ed3.Text; // номер формы из текстового поля
   for i:=1 to 6 do // записываем в ячейки таблицы номер формы, разбивая его на символы
      tabl.Cell(1,i+1).Range.Text:=s[i];

   tabl:=Word.ActiveDocument.Tables.Item(3);  // переходим к таблице 3
   tabl.Cell(1,2).Range.Text:=ed1.Text; // записываем наименование органа
   tabl.Cell(1,4).Range.Text:=ed2.Text; // записываем код органа

   // и так далее, по всем оставшимся таблицам.. 


   word.Visible:=true; // отображаем окно Word (после заполнения, чтобы не отображать запись данных в документ)
end;

Последний раз редактировалось Stilet; 23.03.2010 в 08:54.
AlexanderKs вне форума Ответить с цитированием
Старый 23.03.2010, 08:49   #3
Fantss
 
Регистрация: 22.03.2010
Сообщений: 7
По умолчанию

А как после всего заполнения автоматически с заполненными данными всё это выходило на печать?
Fantss вне форума Ответить с цитированием
Старый 23.03.2010, 15:39   #4
AlexanderKs
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 60
По умолчанию

Распечатать заполненный документ не сложно: заведите еще одну переменную
типа OleVariant ( в данном примере - docum ), и после кода заполнения напишите:

Код:
  docum := Word.ActiveDocument;
  docum.PrintOut;
AlexanderKs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Редактирование MS Word документа Johnson Общие вопросы Delphi 3 21.11.2009 15:20
И снова вопрос про автозаполнение документов Word hackPNZ Microsoft Office Word 4 20.10.2009 14:45
Автозаполнение таблицы excel данными из word Фауст Microsoft Office Excel 4 23.07.2009 03:07
Сообщение Автозаполнение в excel или word Николетта Microsoft Office Excel 3 24.04.2009 21:22
Автозаполнение в excel или word Николетта Помощь студентам 3 24.04.2009 19:42