![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Быстрая вставка данных в 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;