Текущее время: Пн, июл 21 2025, 00:26

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: "Зависание" Excel-a при обращении по OLE
СообщениеДобавлено: Ср, сен 05 2007, 09:36 
Начинающий
Начинающий

Зарегистрирован:
Ср, сен 05 2007, 07:53
Сообщения: 2
Ситуация такая:

Работаю с Экселем через DOI + OLE ( ну мне так кажется :) ). Открываю документ через DOI в inplace режиме, получаю его хэндлер и далее передаю данные из внутренней таблицы в Excel посредством OLE, поскольку в 4.0 DOI какой то "недоделанный".

Code:
  call function 'CONTROL_INIT'   
       exceptions               
         control_init_error = 1 
         others             = 2.
  call method c_oi_ole_control_creator=>get_ole_container_control 
        importing control = control                                 
                  retcode = retcode.                               
  shell_style = ws_visible + ws_child + ws_border + ws_clipchildren.
  inplace_mode = control->inplace_mode_enabled +                       
                                          control->inplace_mode_scroll.
  call method control->init_control                                     
       exporting                                                       
               r3_application_name = '' "#EC NOTEXT                     
               inplace_mode = inplace_mode                             
               shell_style = shell_style                               
      receiving retcode = retcode.

  call method control->get_document_proxy                       
              exporting document_type = document_type             
              importing document_proxy = document                 
                        retcode = retcode.                         

.............

   call method document->open_document   
        exporting document_url = doc_url
                  open_inplace = 'X'     
        receiving retcode = retcode. 
   
   call method document->get_document_handle
           importing                           
               handle   = hnd                 
               retcode = retcode .             


Далее идет запись в ячейки в цикле из внутренней таблицы, все нормально проходит.

Потом пользователь изменяет данные в эксель-ячейках и затем, нажимая кнопку в SAP GUI, инициализирует процедуры передачи данных из экселевых ячеек во внутреннюю таблицу.

Code:
  call method of app 'WorkSheets' = activesheet   
       exporting                                 
             #1 = sheet_name.                     
  call method of activesheet 'Activate'.         
...........
  call method of app 'Cells' = cells
          exporting #1 = i           
                    #2 = j.           
  get property of cells 'Value' = value.


Так вот, если при нажатии этой кнопки пользователь не вышел из ячейки, то есть оставил в ней курсор при вводе данных, то происходит "зависание" приложения экселя, SAP GUI через некоторое время рапортует , что "Действие не может быть завершено, т.к. другая программа занята..." При этом в отладке в ABAPе процесс стоит на "call method ..." или "get property of ...", то есть идет безуспешная попытка достучаться до Экселя. После снятия Экселя из процессов в таскманагере программа продолжает работу.

Вопрос - что делать? :) Как заставить Эксель очнуться, вывести у него курсор из ячейки или что я не так делаю или наоборот не делаю? Может кто то с таким сталкивался...

===========
SAP server - 4.0B
SAP GUI 6404.4.14.1012
Code:
Code:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 05 2007, 10:03 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
А версия Екселя какая?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, сен 05 2007, 10:25 
Начинающий
Начинающий

Зарегистрирован:
Ср, сен 05 2007, 07:53
Сообщения: 2
Office 2003


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB