Страница 1 из 1

Галактика и Excel

Добавлено: 24 окт 2008, 12:52
hope
Добрый день, ВСЕМ!

Галактика 7.12.
Проблема с Excel и Excel-евскими отчетами из Галактики.
Если у пользователя на компе открыт какой-нибудь файл Excel и из Галактики формируется Excel-евский отчет, то происходит следующее: сначала с рабочего стола пропадает ранее открытый Excel-евский отчет, затем, после завершения формирования отчета в Галактике, на рабочем столе появляются оба отчета (и открытый до формирования отчета в Галактике и сам Галактический Excel-евский отчет). А могут так и не открыться оба отчета.

Видимо, я как-то неправильно открываю Excel-файл? Делаю так:
name_f:='ТовароОборачиваемость.xls';
xlCreateExcel(name_f, true);

Научите, как правильно делать? В чем суть проблемы?

Спасибо!

Добавлено: 24 окт 2008, 15:57
m0p3e
Невидимы т.к. при инициализации видимость принудительно выставляется в библиотеке 7.12. (Раньше зависело от пар-ра Visible).

Код: Выделить всё

        ExApp.Visible := false;
//  ExApp.Visible := Visible;
// Excel во время сессии всегда скрыт.
Это позволяет в разы ускорить формирование отчета.

Дабы предыдущий не блокировался можно попробовать связку:
1) Function xlOpenNewExcel(Visible : boolean) : boolean;
2) Function xlOpenWorkBook(FileName : shortstring) : boolean;
Не уверен, но возможно что поможет.

Добавлено: 27 окт 2008, 14:00
hope
Все правильно, Сергей! Все получилось! Спасибо!

Добавлено: 27 окт 2008, 14:27
m0p3e
Ну и ладушки :)

Добавлено: 08 дек 2009, 14:00
hope
Все работало как надо, пока на некоторые компы не установили Excel 2007. Галактика по прежнему 7,12 - в отчетах ничего не меняла.
В результате если у пользователя уже открыт Excel 2007, то при формировании xls-отчета из Галактики открывается еще один Excel. Пользователь сохраняет xls-отчет из Галактики в другой каталог с другим именем, закрывает Excel... и больше не может работать в Excel: ни один файл в Excel больше не открывается. Смотрю в диспетчере задач: там Excel запущен дважды, но ни один из них не отображается в панели задач.... Снимаю эти оба Excel - и работать можно.

Нужен еще какой-то вариант работы с Excel из Галактики в случае, когда уже открыт Excel.
Какие идеи будут?

Добавлено: 08 дек 2009, 14:56
lStep
У меня другая проблемма:
Если при выводе отчета Excel занят диалогом с пользователем (имя файла, формулы), то функции типа xl* возвращают ошибку. И помогает только "переЗайти в Галактику".

Выход: Требую от пользователей закраывать Excel перед запуском таких отчетов.
Неудобно.

Может есть другай метод оживить xl* функции?

Добавлено: 08 дек 2009, 15:09
Masygreen
из доки
есть функция pXL.CreateNewReport(wXLTFileName, True), которая не блокирует работу с Excel во время формирования отчета

сам не разу не пользовался, так может на мысль натолкнет ... есно только 8.1

Добавлено: 08 дек 2009, 15:30
edward_K
Xlkillexcell почаще вызывайте и будет нормально, а вообще давно пора на 810 перейти

Добавлено: 08 дек 2009, 17:03
hope
Насколько чаще использовать Xlkillexcell? Использую только в конце отчета.
Если пользователь закрывает все файлы Excel перед формирование xls-отчета из Галактики - то все отрабатывает корректно.

Скорее перейдут на 1С, чем на 8.1. Очень уж бухгалтера любят 1С, особенно непродвинутые. Решение уже принято: постепенно переходим на 1С.

Добавлено: 08 дек 2009, 19:41
edward_K
а можно и в начале - чтобы прибить все. Если Excel не инициализирован, ничего страшного не будет.

Добавлено: 04 фев 2010, 16:43
empyros
* ПРОБЛЕМА В ПИР: 102.69052
* ПЕРВОЕ РЕШЕНИЕ: 8.10.1.0
* КРАТКОЕ ОПИСАНИЕ: Не блокировать Excel в процессе формирования отчета
* ПРОЕКТ: Отчеты в Microsoft Office Excel
* ДЕТАЛИЗАЦИЯ: Отчеты в XLS в целом
# ЧТО ИЗМЕНЕНО: Во время подготовки отчета в Excel визуализация программы
пропадает и работа с ранее открытыми excel-файлами, не
касающимися подготавливаемого отчета, становится невозможной.

ПРЕДЛАГАЮ: использовать такой способ вызова Excel,
который бы не блокировал работу с Excel во время
формирования отчета.
# КАК ИЗМЕНЕНО: Добавил новую функцию pXL.CreateNewReport(wXLTFileName, True),
которая не блокирует работу с Excel во время формирования отчета
Это в стандартных отчетах уже присутствует? Нужна какая-нибудь регистрация? Или функцию сделали для самописанных отчетов?

Добавлено: 21 апр 2010, 07:22
Алексей
Есть функция xlWrapText - которая включает перенос по словам в ячейке.
А есть обратная функция, которая бы этот перенос отменила?