Форум: "Прочее";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];
ВнизЗамучился уже Найти похожие ветки
← →
Udaff © (2006-01-22 23:13) [0]есть процедура которая заполняет шаблон-отчет в ворде
var
i : integer;
DataEl : POutputDataEl;
FileName : OleVariant;
WordApp1 : TWordApplication;
begin
//Tragets:
// 1 - File
// 2 - Image
// 3 - Printer
WordApp1 := TWordApplication.Create(self);
WordApp1.AutoConnect := true;
WordApp1.AutoQuit := true;
FileName := ExtractFilePath(Application.ExeName) + "Шаблон.doc";
WordApp1.Application.Documents.Open(FileName,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
ViewForm1.ProgressBar1.Max := 10;
for i := 0 to OutputData.Count - 1 do
begin
DataEl := OutputData.Items[i];
if DataEl.Row > WordApp1.Application.ActiveDocument.Tables.Item(1).Rows.Count - 4 then
begin
WordApp1.Application.ActiveDocument.Tables.Item(1).Rows.Add(EmptyParam);
if WordApp1.Application.ActiveDocument.Tables.Item(1).Rows.Count > 5 then
WordApp1.Application.ActiveDocument.Tables.Item(1).Rows.Item(
WordApp1.Application.ActiveDocument.Tables.Item(1).Rows.Count).Borders.
Item(wdBorderTop).LineStyle := wdLineStyleNone;
end;
WordApp1.Application.ActiveDocument.Tables.Item(1).Cell(DataEl.Row + 4,DataEl.Col).
Range.Text := DataEl.Data;
ViewForm1.ProgressBar1.StepBy(1);
end;
WordApp1.Application.ActiveDocument.SaveAs(FileName,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
end;
величина OutputData.Count обычно под 1000. и все это дело выполняется очень долго. как можно оптимизировать етот процесс ?
← →
Palladin © (2006-01-23 02:45) [1]никак
← →
Джо © (2006-01-23 04:05) [2]Вот, а говорят, что вывод отчетов в MS Office рулит :0)
← →
QwertyKz © (2006-01-23 05:57) [3]fastreport.ru
:)
← →
Карелин Артем © (2006-01-23 06:19) [4]Есть мое мнение, что на пару порядков это можно ускорить изменением самого подхода к работе с Вордом. Если в екселе можно было загнать 3000 страниц(10 000 строк 6 шрифтом) в одну переменную типа вариант и потом запостить ее в нужном месте, что давало примерно 1000-кратный прирост скорости по сравнению с поячееяным выводом, то для Ворда наверно имеет смысл накопить данные в переменной, потом одним вызовом Ворда передать эти данные в документ и преобразовать в таблицу.
← →
Udaff © (2006-01-23 19:06) [5]2Карелин Артем
суть ясна но как такой финт провернуть ? формат таблицы ворда ж не известен. может примерчик какой-нить есть ?
← →
Карелин Артем © (2006-01-23 19:29) [6]Лениво немного мне делать пример, давно не пишу на дельфи, да и через компонеyты не с офисом...
ConvertToTable - вот метод Ворда, который преобразует текст в таблицу.
По аське могу что-нибудь еще вспомнить... 217579306
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c