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

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

Быстрая вставка данных в Word [D7, Win2k]


Wowa-K ©   (2005-02-16 06:19:00) 

Я формирую отчеты в Worde XP
вставить из Query 200 записей занимает много времени как это ускорить


PZ   (2005-02-22 16:03:00) [1]

Я буквально вчера наткнулся на ссылку www.kornjakov.ru. Там серия статей о работе с Word в Delphi: Суперфункции


Набережных С.   (2005-02-21 11:45:00) [2]

Пример чего??? Вставки твоих данных в твой документ? Это как?
В офисе есть возможность автоматически записать свои действия в виде макроса, воспользуйся этим + справка по VBA. Да и действия там практически те же, что и в дельфийском коде.


Wowa-K   (2005-02-21 10:18:00) [3]

Как я понимаю нужно отдельно сделать вордовский "шаблон" и написать макрос в этом файле. Пример макроса не дадите


Набережных С.   (2005-02-16 13:33:00) [4]

Написать макрос, принимающий массив и производящий вставку. Либо внедрить макросом свой СОМ объект, подключиться к нему из приложения через таблицу активных СОМ-объектов, и потом уже ему передавать массив, а он будет работать с документами. Первый способ я использовал в Word, второй - в AutoCad. В обоих случаях ускорение в несколько раз за счет сокращения межпроцессного обмена. Недостаток - исполнение макросов может быть запрещено.


Virgo_Style   (2005-02-16 12:08:00) [5]


> а как содержимое Query загнать в буфер

А если "AsString" перевести на русский - ни на какие мысли не наводит? ;)

Сформировать строку да ее и загнать. Новая строка отделяется с помощью #13. Кажется. :)


Wowa-K   (2005-02-16 11:54:00) [6]

не поверю что никто в Worde отчеты не делал


Dimman   (2005-02-16 10:14:00) [7]

а почему бы не использовать Excel?
Вот принцип как в Excel "быстро" выгружать:
  ArrayData:=VarArrayCreate([1, RowCount, 1, ColCount], varVariant);
  for i:=1 to RowCount do
   for j:=1 to ColCount do ArrayData[i,j]:='qwe';
  Cell1:=WorkBook.WorkSheets[1].Cells[BeginRow,BeginCol];
  Cell2:=WorkBook.WorkSheets[1].Cells[BeginRow+RowCount-1,BeginCol+ColCount-1];
  Range:=WorkBook.WorkSheets[1].Range[Cell1, Cell2];
  Range.Value:=ArrayData;


Wowa-K   (2005-02-16 08:49:00) [8]

а как содержимое Query загнать в буфер
а потом в Worde вставить в таблицу


Virgo_Style   (2005-02-16 08:01:00) [9]

Через буфер.
Clipboard.AsText:=что-то
WordApp.трампарам.Paste;


Наверх

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