:: Visual Foxpro, Foxpro for DOS
Re: передача данных из VFP в Excel долго идёт
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Пройди по шагам (оценивая время исполнения строки команды), или поставь WAIT-ики до и после обращения к Эксель, и найди эту долгую команду. Потом надо опять думать )

> Причём дома львиную долю ( секунд 15-25 занимает инициализация объекта ОФИСА ) Выдача данных в ячейки, что на работе, что дома около 2-4 сек )
Это неправильно. Ручной запуск эксел сколько секунд занимает? 100 ячеек должны заполняться "мгновенно". Кстати, игры на компе играют нормально?



Исправлено 2 раз(а). Последнее : of63, 20.03.17 21:04
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Да мало ли что может быть. Надо бы посмотреть загрузку процессора в течение этих 15-25 секунд. Чем занимается процессор в это время, какой процесс его юзает. Может быть проблема и в том, что недостаточно места на диске для свопинга, например.
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
DrDiesel7373
Автор

Сообщений: 267
Откуда: Алчевск
Дата регистрации: 21.02.2006
pasha_usue
DrDiesel7373
XLApp.Cells.Select
XLApp.Selection.Columns.AutoFit
XLApp.Selection.Font.Size = 8

А вот это место у вас сколько по времени выполняется? В 2010 и в 2003?

Только что дома запускал: менее 1 сек ( если считать, что TIME(2) показывает точно, то 2 мсек. НО с учётом дискретности тикания таймера - минимум 20 мсек )

Думаю, что тут всё чисто


------------------
Шушпанчики улыбаются так, что с нижнего этажа пожарные прибегают (с)
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
AndyNigmatec

Сообщений: 1574
Откуда: Волгоград
Дата регистрации: 28.06.2015
Вынести нафиг офис да установить его начистую - не?
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
DrDiesel7373
Автор

Сообщений: 267
Откуда: Алчевск
Дата регистрации: 21.02.2006
of63
Пройди по шагам (оценивая время исполнения строки команды), или поставь WAIT-ики до и после обращения к Эксель, и найди эту долгую команду. Потом надо опять думать )
> Причём дома львиную долю ( секунд 15-25 занимает инициализация объекта ОФИСА ) Выдача данных в ячейки, что на работе, что дома около 2-4 сек )
Это неправильно. Ручной запуск эксел сколько секунд занимает? 100 ячеек должны заполняться "мгновенно". Кстати, игры на компе играют нормально?

Да, да ))) Я так и сделал ( см. чуть выше в моих сообщениях ) ПОнатыкав везде где можно засечки времени ( TIME(2) ) вот как раз и нашёл, что дольше всего инициируется сам эксель. Причём дома (WInXP+SP3) 20-35 сек - это конечно ужос ! Вручную, через WIN+R "Excel" - МГНОВЕННО ! На работе (Win7-32 bit) - ну...2-3 сек.
В общем склоняюсь к мысли, что наверное система зАсрана.... Хотя на домашней ОСи никогда бы не подумал....

Игруль на домашнем совсем нет (кроме косынки и каких-то там шариков, раскладываемых по цветам ) На рабочем ДААА! КСС, какие-то шутеры и прочая лабуда...
Неужели игр мало?!


------------------
Шушпанчики улыбаются так, что с нижнего этажа пожарные прибегают (с)
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
AndyNigmatec

Сообщений: 1574
Откуда: Волгоград
Дата регистрации: 28.06.2015
Да, непорядок .... как же без игрухи то ... это ж не винда а черти чё получается
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
DrDiesel7373
Автор

Сообщений: 267
Откуда: Алчевск
Дата регистрации: 21.02.2006
AndyNigmatec
Вынести нафиг офис да установить его начистую - не?

Ммм.. да вариант конечно.. Думал об этом, но по видимому дела в винде и наверное в моей домашней слегка загрязнённой.

Попробую рекомендации AndyNigmatec по выводу массивом конечно...
Ну не получится, хрен с ним ! Буду пробовать у целевых заказчиков (10-12 тачек) во время бета-тестирования пронаблюдать.
На крайняк, отчётом стандартным запулю, хотя пользователь к офису приучен жутко. Прийдётся ломать стереотипы


------------------
Шушпанчики улыбаются так, что с нижнего этажа пожарные прибегают (с)
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
AndyNigmatec

Сообщений: 1574
Откуда: Волгоград
Дата регистрации: 28.06.2015
Тормоза у вас не из-за передачи данных как выяснилось ... но массивом все же лучшеЕ передавать - это на 5-10 строк разница незаметна, а если более будет? Тока метод этот не мой ))) - он честно стырен здесь же на форуме.

У меня в офис(эксель) практически все выводить требуется - нафиг никому бумага не нужна ... специфика задач



Исправлено 1 раз(а). Последнее : AndyNigmatec, 20.03.17 21:28
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
В крайнем случае есть CSV, есть COPY TO TYPE XL5 (если записей до 64К)
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
DrDiesel7373
Автор

Сообщений: 267
Откуда: Алчевск
Дата регистрации: 21.02.2006
of63
В крайнем случае есть CSV, есть COPY TO TYPE XL5 (если записей до 64К)

Да. В самом начале так и сделал "COPY TO TYPE XL5" - где-то в решениях высмотрел.
Но в итоговой таблице получилась какая-то каша.. Столбцы куда-то перенеслись в строки и чёрти-чё... В итога нашёл тут же, как мне кажется очень интуитивно-понятное решение, от которого и пляшу сейчас: www.foxclub.ru


------------------
Шушпанчики улыбаются так, что с нижнего этажа пожарные прибегают (с)
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
DrDiesel7373
На домашнем компе (Win-XP+SP3 Corp, учётка ограниченная, антивирь ESS 8, Эксель-2003 НЕ запущен, памяти 2 гб ДДР-3, подкачка динамическая) - от запуска офиса до отображения на экран - 30-35 сек !(вне зависимости, запущен офис 2003 или нет) Причём дома львиную долю ( секунд 15-25 занимает инициализация объекта ОФИСА )
Отключить антивирус, не поможет - снести напрочь.
Вообще как раз АВ могут вызывать такой эффект - "вручную" офис запускается быстро, а когда программно его шевелишь - то тормозит сильно. Некоторые старые касперские вообще не давали половину действий с экселем выполнить - например создать объект можно, открыть документ тоже, а вот новый создать - фигвам...
В общем АВ зло не меньшее чем сами вирусы


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
В COPY TO TYPE XL5 все хорошо.

Можно сделать этой командой XLS, потом его открыть офисом, раскрасить, и сохранить в новом формате, а старый файл удалить. (но есть грабли, новый файл "помнит" из кого он родился, бывает что-то непонятное...)
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
DrDiesel7373
Автор

Сообщений: 267
Откуда: Алчевск
Дата регистрации: 21.02.2006
of63
В COPY TO TYPE XL5 все хорошо.
Можно сделать этой командой XLS, потом его открыть офисом, раскрасить, и сохранить в новом формате, а старый файл удалить. (но есть грабли, новый файл "помнит" из кого он родился, бывает что-то непонятное...)

Да ! Сейчас тест небольшой запилил. Вроде работает. Раскраску наверное возьму из своей кучи )) Если не усну до завтра, отпишусь )))

По поводу граблей не совсем понял. Можно ведь оба файла грохнуть ? (мне в принципе хранить их нет надобности)


------------------
Шушпанчики улыбаются так, что с нижнего этажа пожарные прибегают (с)
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
DrDiesel7373
Автор

Сообщений: 267
Откуда: Алчевск
Дата регистрации: 21.02.2006
Igor Korolyov
DrDiesel7373
На домашнем компе (Win-XP+SP3 Corp, учётка ограниченная, антивирь ESS 8, Эксель-2003 НЕ запущен, памяти 2 гб ДДР-3, подкачка динамическая) - от запуска офиса до отображения на экран - 30-35 сек !(вне зависимости, запущен офис 2003 или нет) Причём дома львиную долю ( секунд 15-25 занимает инициализация объекта ОФИСА )
Отключить антивирус, не поможет - снести напрочь.
Вообще как раз АВ могут вызывать такой эффект - "вручную" офис запускается быстро, а когда программно его шевелишь - то тормозит сильно. Некоторые старые касперские вообще не давали половину действий с экселем выполнить - например создать объект можно, открыть документ тоже, а вот новый создать - фигвам...
В общем АВ зло не меньшее чем сами вирусы

Нууу.. отключать антивирь - даже для пробы "чёт очкую я, Славик (С)"

МОжет не в тему, НО:

На работе столкнулся со странным поведением антивиря:
В момент запуска моей программы создаётся модальная форма ЛОГИН в системе. Именно на ней антивирь один раз спрашивает: "Блокировать ? Блокировать всё? Разрешить ?"
после этого всё работает. При чём в коментах указывает, что идёт обращение к реестру в ветке, если не ошибаюсь, HKLM... ВОт НИЧЕГО в реестр ЯВНО не пишу !
Обычный доступ к БД, 3-4 запроса, наполнение комбобоксов, вывод картинки и всякая простая лабудень ! Как бы пока внимание не заостряю...


------------------
Шушпанчики улыбаются так, что с нижнего этажа пожарные прибегают (с)
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> По поводу граблей не совсем понял
> новый файл "помнит" из кого он родился (из XLS-95)
не увидишь граблей, и хорошо. Я тоже не видел. на каких-то машинах, какие-то пользователи говорили. Будет песня, будет и день )
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
of63
В COPY TO TYPE XL5 все хорошо.
Формат ужасно древний. Лично у меня с ним всегда всё было ох... как плохо, словами не описать Там где это ещё прокатывало я использовал
COPY TO ... TYPE FOX2X AS 866
- их эксель и то гораздо лучше прожёвывал чем уродца XL5.

------------------
WBR, Igor
Ratings: 0 negative/1 positive
Re: передача данных из VFP в Excel долго идёт
DrDiesel7373
Автор

Сообщений: 267
Откуда: Алчевск
Дата регистрации: 21.02.2006
Simple777
Да мало ли что может быть. Надо бы посмотреть загрузку процессора в течение этих 15-25 секунд. Чем занимается процессор в это время, какой процесс его юзает. Может быть проблема и в том, что недостаточно места на диске для свопинга, например.

Воот ! Сделал очень простой кусочек кода. Запускал совместно с Process Explorer (с админ правами):
PUBLIC oXLObj as Object
USE e:\7\1.dbf ALIAS qq
SELECT qq
COPY TO e:\7\qq.xls TYPE XL5
lcFields = "ИМЯ:,Код_777"
lcFile = 'e:\7\qq.xls'
do QEDIT_XLS with lcFile, lcFields
oXLObj.Visible = .t.
RELEASE oXLObj
* ------------------------------------------------------------------------------
procedure QEDIT_XLS
lparameters cFileName, cFieldNames
local lnCycles, lnInd
oXLObj = createobject('Excel.application')
XLApp = oXLObj.application
oWB = XLApp.WorkBooks.open (cFileName)
lnCycles = getwordcount(cFieldNames,',')
for lnInd = 1 to lnCycles
oWB.ActiveSheet.Cells (1, lnInd).value = getwordnum(cFieldNames, lnInd, ',')

procedure QEDIT_XLS подсмотрел у BK58 forum.foxclub.ru

В таблице 5! записей ! Длится открытие 5-10 сек !

"PE показал", что вначале от SVHOSTa запускается эксель. Сам SVHOST жрёт до 25 % CPU где-то 2-3 сек. ПОтом какого то лешего запускается 1-2 а то и 3 экземпляра MSIEXEC [ C:\WINDOWS\system32\msiexec.exe /V ]( жрут до 40% CPU 4-7 сек ! ) И только потом в процессах появляется само величество EXCEL (через 1-2 сек он изволит появиться на экране)
Где-то вначале с первым запуском SVHOSTа также тянется некое "C:\WINDOWS\System32\spool\DRIVERS\W32X86\3\udceng.exe" -Embedding

(конвертор документов. ) После закрытия экселЯ процесс его убивается, как и положено, но остаются висеть:
1) msiexec.exe ( ?) Хто там шо хочет ставить ??!!
2) udceng.ex (тоже непорядок!)

Терзают смутные сомнения, что эксель хочет ЧТО-ТО упорно поставить, мне об этом не докладывает, пыхтит и под конец, тяжело выдохнув, осчастливливает меня своим присутствием !

Кто-то что-то понял ?Так понимаю, что такой лабуды ни у кого не наблюдается ?


------------------
Шушпанчики улыбаются так, что с нижнего этажа пожарные прибегают (с)
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
DrDiesel7373
Автор

Сообщений: 267
Откуда: Алчевск
Дата регистрации: 21.02.2006
Igor Korolyov
of63
В COPY TO TYPE XL5 все хорошо.
Формат ужасно древний. Лично у меня с ним всегда всё было ох... как плохо, словами не описать Там где это ещё прокатывало я использовал
COPY TO ... TYPE FOX2X AS 866
- их эксель и то гораздо лучше прожёвывал чем уродца XL5.

Забавно: поменял на FOX2X AS 866. Был приятно удивлён, что столбцы сразу показываются полностью, а не как в XLS5 обрезанными. Нам скорость, правда, не повлияло.
Буду использовать ЭТО. Спасибо за подсказку


------------------
Шушпанчики улыбаются так, что с нижнего этажа пожарные прибегают (с)
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Все сумел ) А выглядишь таким старым
Ratings: 0 negative/0 positive
Re: передача данных из VFP в Excel долго идёт
DrDiesel7373
Автор

Сообщений: 267
Откуда: Алчевск
Дата регистрации: 21.02.2006
of63
Все сумел ) А выглядишь таким старым
Нее ) Просто бриться лень !


------------------
Шушпанчики улыбаются так, что с нижнего этажа пожарные прибегают (с)
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 35 (Гостей: 35)

© 2000-2024 Fox Club 
Яндекс.Метрика