|
|
![]() |
|
|
Регистрация | Обмен опытом | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Отчет ~27000 строк ,17 колонок экспортируется 29 минут. Попробовал сделать экспорт программно, вышел на в общем-то приемлемые 2 минуты ( само формирование отчета - 15 сек). Правда, при таком программном экспорте есть принципиальное неудобство - пользователь еще не видя отчета должен решить, нужен ему этот экспорт или нет. Может быть можно как-то открыть доступ к ячейкам уже сформированного отчета - есть же он у штатной процедуры экспорта. Это и в других случаях может быть полезно.
|
#2
|
||||
|
||||
![]() Вот функция, мы ее когда-то давно использовали:
Код:
ФУНКЦИЯ ЭкспортВЭксель(СТРОКА: колонка;ЛОГИКА: вывод_яч) путь = ВЫБОР_ДИР("ВЫБЕРИТЕ ДИРЕКТОРИЮ") + "\" ЕСЛИ путь <> "\" ТО дбф = БД_СОЗДАТЬ(путь + "otchet") инд = "A" ЦИКЛ ЯЧЕЙКИВ (яч = "*") и = 1 ЕСЛИ ЯЧЕЙКА_СУЩ("Название",яч) И ЯЧЕЙКА["Название",яч] = "" ТО ПРОДОЛЖИТЬ ИНАЧЕ ЕСЛИ вывод_яч ТО дбф.ЗАП_ПОЛЕ(инд + СТР(и),ЯЧЕЙКАВЕРТ[яч],10) и++ КОНЕЦ_ЕСЛИ ЦИКЛ ЯЧЕЙКИ (яч1 = "*") ЕСЛИ ЯЧЕЙКАГОР[яч1] = колонка ТО ПРОДОЛЖИТЬ ИНАЧЕ ЕСЛИ ЗНАЧ_ТЕСТ(СТР(ЯЧЕЙКА[яч1,яч])) ИЛИ СТР(ЯЧЕЙКА[яч1,яч]) = "" ТО длина = 15 ИНАЧЕ длина = 100 КОНЕЦ_ЕСЛИ дбф.ЗАП_ПОЛЕ(инд + СТР(и),УБР_ПРОБ(СТР(ЯЧЕЙКА[яч1,яч],15,АТРИБУТЫ![яч1,яч,атТочность]) + СТР(АТРИБУТЫ![яч1,яч,атЕдиницы])) + ?(ЯЧЕЙКА[яч1,яч,1] = ПУСТО,"", " \ " + УБР_ПРОБ(СТР(ЯЧЕЙКА[яч1,яч,1],15,АТРИБУТЫ![яч1,яч,1,атТочность]))),длина) и++ КОНЕЦ_ЕСЛИ КОНЕЦ_ЦИКЛА дбф.ЗАПИСАТЬ КОНЕЦ_ЕСЛИ КОНЕЦ_ЦИКЛА ВЫПОЛНИТЬ(дбф.ФАЙЛ) дбф.ЗАКРЫТЬ КОНЕЦ_ЕСЛИ КОНЕЦ_ФУНКЦИИ Код:
ЕСЛИ ВОПРОС!("Вывод в Excel") ТО ЭкспортВЭксель("",НЕТ) КОНЕЦ_ЕСЛИ |
#3
|
||||
|
||||
![]() Соответственно, сначала запускается отчет на просмотр. Если надо в Excel, выставляется переключатель и запускается выгрузка в Excel.
|
#4
|
|||
|
|||
![]() Я делал примерно то же самое, разве что в excel не dbf открывал, а заливал через CopyFromRecordset. Речь то о другом была, хотелось бы решать вопрос нужен экспорт в excel или нет после формирования отчета, а не установкой его входных параметров. Через контекстное меню - как при вызове стандартной процедуры экспорта или еще как нибудь, но в любом случае для этого надо иметь возможность обратиться к ячейкам уже сформированного отчета.
|
#5
|
|||
|
|||
![]() Но ведь при этом отчет заново формироваться будет? Или как-то можно ранее сформированным воспользоваться?
|
#6
|
||||
|
||||
![]() Хорошо, мы подумаем над оптимизацией экспорта.
|
#7
|
||||
|
||||
![]() Оптимизировали. Версию выложили. Проверяйте!
|
#8
|
|||
|
|||
![]() По скорости теперь "супер" - тот же отчет теперь в Excel за 65 сек уходит. Нюанс, который был не особо важен при 29 минутном экспорте - текстовые ячейки с цифровой информацией при экспорте теряют ведущие нули. При программном экспорте я слева апостроф добавлял. А здесь этим можно как-то управлять?
И - уже безотносительно экспорта - все же доступ к ячейкам сформированного отчета был бы полезен, для "настройщиков ", по крайней мере ![]() Последний раз редактировалось Михаил,Тверь, 05.10.2008 в 15:40. Причина: уточнение |
#9
|
||||
|
||||
![]() Ок, сделали, выложили.
|
#10
|
|||
|
|||
![]() Еще мелочи всплыли, правда совсем уж непринципиальные:
1) Включенная опция "Выделение тысяч" из настроек форматов, не оказывая влияние на ячейки самого отчета, почему-то разбивает на триады ячейки Excel, ведущие нули при этом теряются 2) некоторые строки отчета, похоже при длинных строках в ячейках, но не только и не всегда, экспортируются в 2 объединенные строки Ехсеl. Это может несколько затруднить последующее использование данных, лучше бы увеличивалась высота строки А доступ к ячейкам отчета при такой скорости экспорта и не нужен, пожалуй - все при желании можно и из xls достать. Если когда-нибуть дойдут руки, хорошо бы в СТАРТ_ОТЧЕТ добавить параметр принудительного экспорта и синхронизировать СТАРТ_ОТЧЕТ с вызывающим бланком/топ, тогда ВО можно бы с комфортом использовать шире их нынешнего прямого предназначения |
#11
|
||||
|
||||
![]() Цитата:
Цитата:
Цитата:
|
#12
|
|||
|
|||
![]() 1) Уточнение - в отчете опция не влияет, да и не должна, на те самые "текстовые ячейки с цифровой информацией" ( ну как бы их покороче назвать?). При экспорте, при включенной опции, такие ячейки, видимо, ошибочно принимаются за число с соответствующими последствиями. Опция ".. в документах" в подобном не замечена.
2) По ссылкке речь идет об экспорте ячеек с подъячейками, в данном отчете я их не использую. Все же, при случае, можно бы где-то настройку добавить - старый/новый варианты. |
#13
|
||||
|
||||
![]() Может я и не по теме, но все же...
А зачем вы хотите экспортировать бланк в эксель? Почему не можете полностью обработать и как надо сформировать отчет в ИП2, средствами ИП2? Честно говоря, у своих клиентов мы этот эксель выводим как класс вредоносных программ, который часто присутствует как обязательная отрыжка остатков от 1с. Я согласен, что 1с без экселя работать не может. А в ИП2 все дополнительные правки расчетов, ВО можно практически всегда дооформить, досчитать тут же в ИП2 и распечатать, как после экселя. Это всегда будет точнее, оперативнее, проще, удобнее. Кроме того, каждый такой отчет обычно нужен для последующего анализа. А 27000 строк отчета даже просто просмотреть сложно. А как его потом анализировать человеку? Почему бы тут ему не помочь средствами вычислительной техники, ип2 наконец? ![]() PS Встречали только один патологический случай, когда удаленный "руководитель" умел смотреть присланные отчеты ТОЛЬКО через Excel. ![]()
__________________
С уважением, Виктор |
#14
|
|||
|
|||
![]() Что касается конкретного клиента, для которого делалась настройка, то - так уж сложилось - его сотрудники настоящие виртуозы в использовании этого дела, зачем же людей радостей жизни лишать )). Но и в общем, говоря о "вредоносных программах", Вы чересчур категоричны, мне кажется. Не умаляя достоинств ИП, все же считаю, что иногда использование эл. таблиц - при обмене даными , долгосрочном их хранении предпочтительнее. Отчет ИП - это часть программы, книгу эл.таблицы благодаря широкому распространению и высокой степени совместимости разных версий и разных продуктов (Excel,Calc) можно считать независимыми от программы данными. Если сейчас в конце года расчетчица сложит в xls лицевые счета сотрудников, то ( если носитель доживет) через NN-ое к-во лет их без труда откроет и дочь ее, и ее внучка. А попробуйте какого-нибудь проку добиться от ИБ пятнадцатилетней давности! Никого не агитирую, тем более не оправдываюсь - но у каждого свои пристрастия и взгляды.
|