передача данных из VFP в Excel долго идёт | |
---|---|
DrDiesel7373 Автор Сообщений: 267 Откуда: Алчевск Дата регистрации: 21.02.2006 |
Привет, коллеги !
В результате работы программы формируется временный курсор (ALL1) (Все поля текстовые 10 шт) Вывожу его для отчёта в Excel:
Выводится правильно. Но на машине на работе выводится довольно шустро (до 5-7 сек) Это всего лишь 10 строк временного курсора. Как бы всё равно многовато, но пока незаметно. Дома - этот же совсем маленький курсор выводится аж до 20-30 сек ! Время расторможения не зависит от того, открыт эксель или нет.. В чём может быть причина ? ( ДОма офис 2003. На работе почти везде 2007-2010 ) ПРимер запускался и там и там из VFP-9 в его среде. Железо , ОФИС или некоторая криворукость кода ? ------------------ Шушпанчики улыбаются так, что с нижнего этажа пожарные прибегают (с) |
Re: передача данных из VFP в Excel долго идёт | |
---|---|
dimuhametov Сообщений: 1562 Откуда: Костанай Дата регистрации: 01.11.2008 |
|
Re: передача данных из VFP в Excel долго идёт | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Даже не используя чего-либо специального, а работая также как и вы через ole-автоматизацию, возможно значительно ускорить вывод - для этого всего лишь не нужно поячеечно заливать туда данные - а либо добавить сразу все массивом, либо выгрузить в промежуточный текстовый (например csv) файл, который уже посредством ole открыть-разукрасить.
И еще одно такое наблюдение (не утверждение, а именно наблюдение) - вывод на машине с офисом-2003 происходит шустрее. Еще одно З.Ы. - может быть в вашем случае удобнее будет использовать готовые шаблоны в эксель - куда лишь останется только передать сами данные (желательно блоками) - а все форматирование уже подготовлено в самом шаблоне. Исправлено 3 раз(а). Последнее : AndyNigmatec, 20.03.17 06:37 |
Re: передача данных из VFP в Excel долго идёт | |
---|---|
pasha_usue Сообщений: 3649 Откуда: Е-бург Дата регистрации: 06.10.2006 |
10 строчек? По 10 элементов? 25-30 секунд. Не здесь собака порылась. Скорей всего, долго поднимается сам экземпляр офиса. Тем более, что присоединение к существующему экземпляру выполняется быстро. А почему он долго поднимается. Ну может плагинами всякими обвис. Или просто от старости (;Ж |
Re: передача данных из VFP в Excel долго идёт | |
---|---|
DrDiesel7373 Автор Сообщений: 267 Откуда: Алчевск Дата регистрации: 21.02.2006 |
На счёт добавить туда массивом - объсните пжлст, подробнее. С Экселем дружу буквально неделю. Если можно пример кода. По наблюдению: получается , что на 2003 офисе как раз медленнее... Про готовые шаблоны -увы, пока не совсем понял. Если не сложно - в 2 словах.. ------------------ Шушпанчики улыбаются так, что с нижнего этажа пожарные прибегают (с) |
Re: передача данных из VFP в Excel долго идёт | |
---|---|
DrDiesel7373 Автор Сообщений: 267 Откуда: Алчевск Дата регистрации: 21.02.2006 |
Вот да, долго поднимается... Наверное можно вынести определение экземпляра в начало программы, но красиво и правильно-ли будет так ? Не возникнут ли подводные глюки ? PS. Плагинами офисы по ходу не обросли.... ------------------ Шушпанчики улыбаются так, что с нижнего этажа пожарные прибегают (с) |
Re: передача данных из VFP в Excel долго идёт | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Ну так то что, он долго поднимается с фоксом никак не связано.
Попробуйте заставить его запускаться быстрее просто из среды - и будет вам счастье) Разберитесь, почему тормозит. ------------------ |
Re: передача данных из VFP в Excel долго идёт | |
---|---|
DrDiesel7373 Автор Сообщений: 267 Откуда: Алчевск Дата регистрации: 21.02.2006 |
так из среды как раз и долго запускается ! Из готового exe - тоже. Так что пока счастья мало... ------------------ Шушпанчики улыбаются так, что с нижнего этажа пожарные прибегают (с) |
Re: передача данных из VFP в Excel долго идёт | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Из среды, имелось ввиду, прямо из виндов.
------------------ |
Re: передача данных из VFP в Excel долго идёт | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
А из командной строки Windows как грузится?
Ну, типа Start Winword Или Start Winword myfile.doc Может быть, антивирус чего-то там поверяет при загрузке Word? Исправлено 1 раз(а). Последнее : Simple777, 20.03.17 09:53 |
Re: передача данных из VFP в Excel долго идёт | |
---|---|
DrDiesel7373 Автор Сообщений: 267 Откуда: Алчевск Дата регистрации: 21.02.2006 |
из командной строки запускается около 3-7 сек ( как повезет ) Офис2010 Я вот тут что замутил: ПОнатыкал в разных местах кода такую конструкцию: a1 = time(2) &&------- a2 = time(2) &&------- и т.д. В конце бооольшой MESSAGEBOX(a1+a2+....) Отчёт таков: 1) CreateObject - 1.5 сек 2) Подписи столбцов и их форматирование - 1,5 сек 3) Вывод данных в ячейки в цикле - 0,3 сек 4) Обведение всей этой городухи линиями, добавление в конец подписи с окантовкой - 1,8 сек (фигассе!) 5) Изменение параметров листа для печати - 1,5 сек 6) показ на экран (Visible=TRUE) 0.2 сек Пока видно, что жрёт время форматирование... ------------------ Шушпанчики улыбаются так, что с нижнего этажа пожарные прибегают (с) |
Re: передача данных из VFP в Excel долго идёт | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Так проблема то основная, как следует из предыдущего, с 2003? И еще, а если сразу заполнять шаблон, на котором все отформатировано? ------------------ |
Re: передача данных из VFP в Excel долго идёт | |
---|---|
pasha_usue Сообщений: 3649 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Отключите обновление в процессе создания документов. Код VBA:
|
Re: передача данных из VFP в Excel долго идёт | |
---|---|
DrDiesel7373 Автор Сообщений: 267 Откуда: Алчевск Дата регистрации: 21.02.2006 |
Не понял, конечно, что такое "обновление", но вставил отключение обновления после: XLApp = CREATEOBJECT('excel.application') XLApp.VISIBLE = .F. Вставил отключение обновления перед: XLApp.VISIBLE = .t. Попутно переменная xlCalculationManual ( = -4135 по справке VBA ) не нашлась. Также не нашлось: XLApp.ActiveSheet.DisplayPageBreaks = .F. (по VBA такой вообще-то нет, есть WorkSheet, всё равно не нашлось) В итоге - этот код не помог ------------------ Шушпанчики улыбаются так, что с нижнего этажа пожарные прибегают (с) |
Re: передача данных из VFP в Excel долго идёт | |
---|---|
DrDiesel7373 Автор Сообщений: 267 Откуда: Алчевск Дата регистрации: 21.02.2006 |
Нет, на офисе-2010 тормоза есть. 10-12 записей временного курсора передаются в Эксель около 5-6- сек. Про шаблон, увы, не понял. Ну, мало дел имел с экспортом в офис и сопутствующими знаниями... ------------------ Шушпанчики улыбаются так, что с нижнего этажа пожарные прибегают (с) |
Re: передача данных из VFP в Excel долго идёт | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Это чисто время передачи 100 значений, или ВСЁ - начиная от старта офиса и до его показа с уже готовым отчётом? Если чисто время передачи, то что-то не то с системой (вирус, антивирус, очень мало свободной памяти, перегруженный всякими разными работающими программами по самое не могу CPU) - очень уж это медленно. И да - прежде чем всё прочее "оптимизировать" следует заменить "поячеечную" вставку на вставку через массив. Примеры есть на форуме. ------------------ WBR, Igor |
Re: передача данных из VFP в Excel долго идёт | |
---|---|
pasha_usue Сообщений: 3649 Откуда: Е-бург Дата регистрации: 06.10.2006 |
А вот это место у вас сколько по времени выполняется? В 2010 и в 2003? |
Re: передача данных из VFP в Excel долго идёт | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
По скорости вывода народ уже высказался, выложу вам примерный код передачи массивом в диапазон ячеек:
в случае же использования шаблона - вам достоточно его подготовить - т.е. взять готовый форматированный эксель-файл что у вас получается - очистить его от данных и сохранить как шаблон в самом экселе - и в предыдушем коде в методе экселя Add() передать этот файл как параметр
где lcFileMask - ваш шаблон Исправлено 2 раз(а). Последнее : AndyNigmatec, 20.03.17 20:47 |
Re: передача данных из VFP в Excel долго идёт | |
---|---|
DrDiesel7373 Автор Сообщений: 267 Откуда: Алчевск Дата регистрации: 21.02.2006 |
Нет. На рабочем компе (WIn-7-32bit, в домене ( учётка ограничена ) антивирь есть, в момент испытаний Эксель-2010 запущен ( 2 книги открыто ) вообще конечно комп засран всякими нелепыми программами типа Менеджер прошивки телефонов на андроид и и т.п.) 5-6 сек - это время ВСЕГО ( начиная от старта офиса до появления на экран ) На домашнем компе (Win-XP+SP3 Corp, учётка ограниченная, антивирь ESS 8, Эксель-2003 НЕ запущен, памяти 2 гб ДДР-3, подкачка динамическая) - от запуска офиса до отображения на экран - 30-35 сек !(вне зависимости, запущен офис 2003 или нет) Причём дома львиную долю ( секунд 15-25 занимает инициализация объекта ОФИСА ) Выдача данных в ячейки, что на работе, что дома около 2-4 сек ) ------------------ Шушпанчики улыбаются так, что с нижнего этажа пожарные прибегают (с) |
Re: передача данных из VFP в Excel долго идёт | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
По скорости вы сами ответили на свой вопрос:
проблема в системе а не в коде VFP |
© 2000-2024 Fox Club  |