Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / форма для отчета на Экселе / 10 сообщений из 10, страница 1 из 1
11.07.2006, 14:56
    #33845232
A/\EKC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
форма для отчета на Экселе
Передача данных из программы в эксель осуществляется средствами OLE:
a=CreateObject('EXCEL.Application'), далее происходит непосредственно передача данных. В результате после окончания передачи я показываю результат в экселе (VISIBLE=.T.). Таким образом, эксель с основной программой никак не связан (эксель появляется отдельным окном на панели задач, выход из программы не завершает приложение экселя). Возможно ли книгу экселя запускать на форме внутри программы так чтобы приложение экселя было дочерним по отношению г основной программе, например при создании объекта CreateObject('EXCEL.Application') передавать в качестве параметра объект-форму-создатель приложения экселя чтоб при уничтожениии этой формы уничтожалось и приложение экселя?
...
Рейтинг: 0 / 0
11.07.2006, 15:00
    #33845248
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
форма для отчета на Экселе
Как раз наоборот, нужно в фоксе хранить указатели на созданные Эксель-объекты и убивать их при закрытии программы. А для этого они (указатели) должны быть PUBLIC.
...
Рейтинг: 0 / 0
11.07.2006, 15:13
    #33845309
A/\EKC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
форма для отчета на Экселе
а чтоб не было значка экселя на панели задач и приложение экселя переремещалось только в пределах основного окна фокса (дочернее окно приложения экселя) реально сделать?
...
Рейтинг: 0 / 0
11.07.2006, 15:17
    #33845324
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
форма для отчета на Экселе
Реально положить лист экселя на форму и выводить отчет в него, но выглядит он не особо презентабельно, когда контрол экселя не активен.
...
Рейтинг: 0 / 0
11.07.2006, 15:35
    #33845381
A/\EKC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
форма для отчета на Экселе
Имеется в виду ActiveX Control (OleControl)? Да, в том то все и дело что некрасиво получится, вот я и предположил что существует способ при CreateObject('EXCEL.Application') передать в качестве параметра объект, который вызвал создание эксель-приложения.
Корень вопроса вот в чем: сформированный отчет у меня взаимодействует с программой по средствам перехвата события WorkbookEvents_SheetBeforeDoubleClick(Sh AS VARIANT, Target AS VARIANT, Cancel AS LOGICAL @) AS VOID (так я сделал расшифровку ячейки Экселя).
При ДБЛКлике на ячейку у меня выполняется подпрограмма: запускается форма с параметром значения в этой ячейке (Target). При этом естесственно не происходит активация основного окна ФоксПро, активное остается приложение Эксель. Поэтому после ДБЛКлика приходится самостоятельно переходить в окно ФоксПро. Это, естественно, неудобно для пользователя.
...
Рейтинг: 0 / 0
12.07.2006, 02:53
    #33846492
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
форма для отчета на Экселе
Hi A/EKC!

В винде можно практически любое окно засунуть внутрь другого окна - это
элементарный АПИ вызов - вот получить хэндлы обоих окон порой бывает
довольно сложно - насколько это в результате будет красиво и удобно я умолчу
:)

> При этом естесственно не происходит активация основного окна ФоксПро

Опять же при помощи АПИ можно активировать нужное окно - правда тут могут
быть небольшие заморочки от ОС - в современной винде есть такая фишка, как
борьба с программами "ворующими" фокус - ну это когда ты себе спокойно
набиваешь текст, а какая-то нехорошая утилита "всплывает" в некоторый момент
и получается что добрый кусок твоего текста уходит "не туда" (или вообще "в
никуда").

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
12.07.2006, 06:04
    #33846520
ДП
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
форма для отчета на Экселе
2 АЛЕКС
можете попробовать DsoFramer.OCX
Заточен для показа офисных документов
...
Рейтинг: 0 / 0
12.07.2006, 10:03
    #33846829
A/\EKC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
форма для отчета на Экселе
Igor Korolyov, вы не погли бы привести пример кода программы, как с помощью АПИ можно одно окно по Hwnd засунуть в другое? Форму в основной программе можно создать динамически, определить у нее Hwnd, а так же можно узнать Hwnd у объекта созданного: CREATEO('EXCEL.APPLICATION'), так что возможно это именно то что мне нужно.
...
Рейтинг: 0 / 0
12.07.2006, 10:06
    #33846838
A/\EKC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
форма для отчета на Экселе
А где можно взять библиотеку DsoFramer.OCX?
Если это возможно, пришлите мне, пожалуйста на ящик :
zaharov-aa@sarts.votgk.com
...
Рейтинг: 0 / 0
12.07.2006, 14:52
    #33848263
A/\EKC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
форма для отчета на Экселе
Воспользовался АПИ функцией
Declare Long SetParent in Win32API Long ByVal,Long ByVal1
(Переопределяем родителя окна приложения Экселя)
В качестве первого параметра указал приложение Экселя, второй параметр- окно основной программы.
Большое всем спасибо.
Вопрос снят.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / форма для отчета на Экселе / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]