Галактика и Excel
Модераторы: m0p3e, edward_K, Модераторы
Галактика и Excel
Добрый день, ВСЕМ!
Галактика 7.12.
Проблема с Excel и Excel-евскими отчетами из Галактики.
Если у пользователя на компе открыт какой-нибудь файл Excel и из Галактики формируется Excel-евский отчет, то происходит следующее: сначала с рабочего стола пропадает ранее открытый Excel-евский отчет, затем, после завершения формирования отчета в Галактике, на рабочем столе появляются оба отчета (и открытый до формирования отчета в Галактике и сам Галактический Excel-евский отчет). А могут так и не открыться оба отчета.
Видимо, я как-то неправильно открываю Excel-файл? Делаю так:
name_f:='ТовароОборачиваемость.xls';
xlCreateExcel(name_f, true);
Научите, как правильно делать? В чем суть проблемы?
Спасибо!
Галактика 7.12.
Проблема с Excel и Excel-евскими отчетами из Галактики.
Если у пользователя на компе открыт какой-нибудь файл Excel и из Галактики формируется Excel-евский отчет, то происходит следующее: сначала с рабочего стола пропадает ранее открытый Excel-евский отчет, затем, после завершения формирования отчета в Галактике, на рабочем столе появляются оба отчета (и открытый до формирования отчета в Галактике и сам Галактический Excel-евский отчет). А могут так и не открыться оба отчета.
Видимо, я как-то неправильно открываю Excel-файл? Делаю так:
name_f:='ТовароОборачиваемость.xls';
xlCreateExcel(name_f, true);
Научите, как правильно делать? В чем суть проблемы?
Спасибо!
Невидимы т.к. при инициализации видимость принудительно выставляется в библиотеке 7.12. (Раньше зависело от пар-ра Visible).
Это позволяет в разы ускорить формирование отчета.
Дабы предыдущий не блокировался можно попробовать связку:
1) Function xlOpenNewExcel(Visible : boolean) : boolean;
2) Function xlOpenWorkBook(FileName : shortstring) : boolean;
Не уверен, но возможно что поможет.
Код: Выделить всё
ExApp.Visible := false;
// ExApp.Visible := Visible;
// Excel во время сессии всегда скрыт.
Дабы предыдущий не блокировался можно попробовать связку:
1) Function xlOpenNewExcel(Visible : boolean) : boolean;
2) Function xlOpenWorkBook(FileName : shortstring) : boolean;
Не уверен, но возможно что поможет.
Все работало как надо, пока на некоторые компы не установили Excel 2007. Галактика по прежнему 7,12 - в отчетах ничего не меняла.
В результате если у пользователя уже открыт Excel 2007, то при формировании xls-отчета из Галактики открывается еще один Excel. Пользователь сохраняет xls-отчет из Галактики в другой каталог с другим именем, закрывает Excel... и больше не может работать в Excel: ни один файл в Excel больше не открывается. Смотрю в диспетчере задач: там Excel запущен дважды, но ни один из них не отображается в панели задач.... Снимаю эти оба Excel - и работать можно.
Нужен еще какой-то вариант работы с Excel из Галактики в случае, когда уже открыт Excel.
Какие идеи будут?
В результате если у пользователя уже открыт Excel 2007, то при формировании xls-отчета из Галактики открывается еще один Excel. Пользователь сохраняет xls-отчет из Галактики в другой каталог с другим именем, закрывает Excel... и больше не может работать в Excel: ни один файл в Excel больше не открывается. Смотрю в диспетчере задач: там Excel запущен дважды, но ни один из них не отображается в панели задач.... Снимаю эти оба Excel - и работать можно.
Нужен еще какой-то вариант работы с Excel из Галактики в случае, когда уже открыт Excel.
Какие идеи будут?
У меня другая проблемма:
Если при выводе отчета Excel занят диалогом с пользователем (имя файла, формулы), то функции типа xl* возвращают ошибку. И помогает только "переЗайти в Галактику".
Выход: Требую от пользователей закраывать Excel перед запуском таких отчетов.
Неудобно.
Может есть другай метод оживить xl* функции?
Если при выводе отчета Excel занят диалогом с пользователем (имя файла, формулы), то функции типа xl* возвращают ошибку. И помогает только "переЗайти в Галактику".
Выход: Требую от пользователей закраывать Excel перед запуском таких отчетов.
Неудобно.
Может есть другай метод оживить xl* функции?
Насколько чаще использовать Xlkillexcell? Использую только в конце отчета.
Если пользователь закрывает все файлы Excel перед формирование xls-отчета из Галактики - то все отрабатывает корректно.
Скорее перейдут на 1С, чем на 8.1. Очень уж бухгалтера любят 1С, особенно непродвинутые. Решение уже принято: постепенно переходим на 1С.
Если пользователь закрывает все файлы Excel перед формирование xls-отчета из Галактики - то все отрабатывает корректно.
Скорее перейдут на 1С, чем на 8.1. Очень уж бухгалтера любят 1С, особенно непродвинутые. Решение уже принято: постепенно переходим на 1С.
Это в стандартных отчетах уже присутствует? Нужна какая-нибудь регистрация? Или функцию сделали для самописанных отчетов?* ПРОБЛЕМА В ПИР: 102.69052
* ПЕРВОЕ РЕШЕНИЕ: 8.10.1.0
* КРАТКОЕ ОПИСАНИЕ: Не блокировать Excel в процессе формирования отчета
* ПРОЕКТ: Отчеты в Microsoft Office Excel
* ДЕТАЛИЗАЦИЯ: Отчеты в XLS в целом
# ЧТО ИЗМЕНЕНО: Во время подготовки отчета в Excel визуализация программы
пропадает и работа с ранее открытыми excel-файлами, не
касающимися подготавливаемого отчета, становится невозможной.
ПРЕДЛАГАЮ: использовать такой способ вызова Excel,
который бы не блокировал работу с Excel во время
формирования отчета.
# КАК ИЗМЕНЕНО: Добавил новую функцию pXL.CreateNewReport(wXLTFileName, True),
которая не блокирует работу с Excel во время формирования отчета