Excel - Application.Visible

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Гость

Сообщение Гость »

Здравствуйте!

В старой проге на C5b используется работа с MS Excel через ole-контрол.
При выполнении операции в офисе 97
?Ole{'Application.ActiveWindow.WindowState'} = -4137
?Ole{'Application.Visible'}=1
окно Excel активировалось и получало фокус. Когда попробовал эту операцию сделать для офиса XP, то работать перестало. Наблюдается под Win2000 SP4 и WinXP SP1.
Может, кто знает, в чем проблема и как обойти?

С уважением,
Вячеслав Черников support@finsoft.ryazan.ru

(Добавление)

Hello!

Эта проблема и в сw55 при вызове из меню процедуры содержащей функции OfficeTemplates приводит к появлению окна запроса об отправке сообшения в MICROSOFT "tic_umc.exe has encountered a problem and needs to close.
We are sorry for the inconvenience."
Как решить проблему?

Владимир Виноградов

Не уверен насчет "Visible", но не отметить страннное поведение OLE в сочетании Win2000 SP4 / WinXP SP1 и офиса 2000 / XP просто не могу.
Странность заключается в том, что то передается активность Excel-окну, то нет.
Жму в программе кнопочку "Отчет в Excel" (выдается отчет) - если Excel-окно не стало активным; жму кнопку опять...
На очередном разе оно становится активным.

Пробовал API-функциями вернуть активность, уже после Destroy OLE-объекта, но как-то слабо помогает, но помогает (чаще активизирует окно Excel).
Кстати, сочетание WinXP и офис XP наиболее критично к данной проблеме

CW 5.5H
С уважением, Звигинцев Михаил.
Написал: ClaList(2)
Гость

Сообщение Гость »

Привет !

Уже не помню, откуда взято, но запуск MS Excel описанный ниже прекрасно
работает по всеми ОС, с C5.0 .... C6.1 под всеми OC. Попробуй ...
Интересно было бы услышать результат :)

С уважением, ТАТА

EO_ Long

Code

! --- Непосредственно запуск MS Excel

EO_ = Create(0,Create:Ole)
EO_{Prop:Create} = 'Excel.Sheet'

EO_{'Application.Visible'} = True

If EO_{'Application.Name'} = 'No ole automation interface'
Destroy(EO_)
Clear(EO_)
else
EO_{'Application.Visible'} = -1
EO_{'Application.Activate'}
EO_{'Application.WorkBooks.Add'}

! -- Экспорт в MS Excel ....

end
Гость

Сообщение Гость »

Hello Вячеслав,

Я обычно делаю так:
1. беру файл-заготовку
2. открываю его невидимым
3. сохраняю под другим именем
4. открываю Excel-ем через RUN

--
Best regards,
Иван mailto:shkmail@inbox.ru

Написал: ClaList(2)
Гость

Сообщение Гость »

Аналогично. Но в приведенном примере нужно именно активизировать окно Excel через Ole (это диалог самописного конструктора, в котором настраивается привязка переменных к ячейкам бланка Excel).
Пока решения проблемы найти не удалось. Закладка Excel мигает, но не восстанавливается.
Всплыла еще одна проблема с Office XP. Почему-то перестали переключаться листы через Ole. Точнее, то переключаются, то нет.

С уважением,
Вячеслав Черников
Написал: ClaList(2)
Ответить