Текущее время: Ср, июн 18 2025, 17:09

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Обработка OLE после создания документа через DOI
СообщениеДобавлено: Ср, апр 30 2008, 08:23 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Создаю документ Ёкселя:
Code:
    CALL METHOD C_OI_FACTORY_CREATOR=>GET_DOCUMENT_FACTORY
                      IMPORTING FACTORY = FACTORY
                                RETCODE = RETCODE.
    IF RETCODE NE C_OI_ERRORS=>RET_OK. EXIT. ENDIF.

    CALL METHOD FACTORY->START_FACTORY
             EXPORTING R3_APPLICATION_NAME = 'R/3 Basis'    "#EC NOTEXT
                        REGISTER_ON_CLOSE_EVENT = 'X'
                        REGISTER_ON_CUSTOM_EVENT = 'X'
                        NO_FLUSH  = 'X'
              IMPORTING RETCODE = RETCODE.
    CALL METHOD C_OI_ERRORS=>SHOW_MESSAGE EXPORTING TYPE = 'E'.

    CALL METHOD FACTORY->GET_DOCUMENT_PROXY
                      EXPORTING DOCUMENT_TYPE = DOCUMENT_TYPE
                                NO_FLUSH = 'X'
                      IMPORTING DOCUMENT_PROXY = DOCUMENT
                                RETCODE = RETCODE.
    CALL METHOD C_OI_ERRORS=>SHOW_MESSAGE EXPORTING TYPE = 'E'.

    CALL METHOD DOCUMENT->CREATE_DOCUMENT
      EXPORTING
        NO_FLUSH     = 'X'
      IMPORTING
        RETCODE = RETCODE.
    CALL METHOD C_OI_ERRORS=>SHOW_MESSAGE EXPORTING TYPE = 'E'.

    CALL METHOD DOCUMENT->GET_DOCUMENT_HANDLE
       EXPORTING
         NO_FLUSH = 'X'
       IMPORTING
        HANDLE   = OLE_EXCEL
        RETCODE  = RETCODE.

    SET PROPERTY OF OLE_EXCEL-OBJ 'Visible' = 0 .

Получаю ОЛЕ инстанцию через DOCUMENT->GET_DOCUMENT_HANDLE . Дальше тупик - не один ОЛЕ-метод к созданному документу не применяется. Подскажите где затупил...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 30 2008, 08:33 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
Может так?
Code:
DATA: h_excel TYPE ole2_object
...
CALL METHOD DOCUMENT->GET_DOCUMENT_HANDLE
       EXPORTING
         NO_FLUSH = 'X'
       IMPORTING
        HANDLE   = OLE_EXCEL
        RETCODE  = RETCODE.

    CALL FUNCTION 'FLUSH'.

    h_excel = OLE_EXCEL-OBJ.

SET PROPERTY OF h_excel 'Visible' = 0 .


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 30 2008, 08:40 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Alex80 написал:
Может так?
Code:
DATA: h_excel TYPE ole2_object

Пробовал. Не идет...


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
John Doe написал:
Пробовал. Не идет...

Чего пробовал: flush или h_excel TYPE ole2_object ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 30 2008, 09:05 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
flush в конце стоит, в этом куске кода не показал просто.
Подменять GS_EXCEL = OLE_EXCEL-OBJ пробовал.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 30 2008, 09:13 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
А если NO_FLUSH попробовать поснимать ?

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 30 2008, 09:15 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Lars написал:
А если NO_FLUSH попробовать поснимать ?

Так тоже пробовал, везде снимал, везде вставлял...


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Надо
Code:
C_OI_FACTORY_CREATOR=>GET_DOCUMENT_FACTORY
EXPORTING
      factory_type = 'OLE'  " !!!

ибо
Code:
CLASS-METHODS: GET_DOCUMENT_FACTORY
                 IMPORTING FACTORY_TYPE TYPE C DEFAULT 'PORTABLE'


Можно также попробовать по-старинке, без factory: http://sapboard.ru/forum/viewtopic.php?t=21271


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 30 2008, 12:39 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
sibrin написал:
Надо
Code:
C_OI_FACTORY_CREATOR=>GET_DOCUMENT_FACTORY
EXPORTING
      factory_type = 'OLE'  " !!!




Да, не факт.
В исходниках делается так
Code:
  IF factory is initial.
    CALL METHOD c_oi_factory_creator=>get_document_factory
                      IMPORTING factory = factory
                                retcode = retcode.


Там, вроде, factory_type и не обрабатывается ни где.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 30 2008, 13:28 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Пока что никак не помогло. Читаю хэлпы. :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 30 2008, 14:26 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
А если вот так попробовать, работает вроде:

Code:

data: document_handle type CNTL_HANDLE.
DOCUMENT->GET_DOCUMENT_HANDLE( EXPORTING  NO_FLUSH = ''
                                IMPORTING
                                    HANDLE   = document_handle
                                    RETCODE  = RETCODE ).

data: application type ole2_object.
  GET PROPERTY
    OF document_handle-obj 'Application' = application
    no flush
    queue-only
    .
  SET PROPERTY OF application 'Visible' = 0 .

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Последний раз редактировалось Lars Ср, апр 30 2008, 15:00, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 30 2008, 14:58 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, авг 17 2004, 08:49
Сообщения: 319
Откуда: Мариуполь
А вызов GET_DOCUMENT_HANDLE возвращает реальное значение ссылки на интерфейс?. А то может быть он возвращает пустую структуру. У меня было такое из-за опций no_flush при создание объектов. Т.к. похоже объекты еще не созданы...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 30 2008, 15:08 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Lars, похоже направление то. С последним вариантом 'Visible' заработал. Но самое нужное : 'Value', 'Font' и все остальное - не пашет.
Задумка была такая, выкинуть через ДОИ табличку в Ёксель, а потом с помощью ОЛЕ добавить красоты всякой. Первый шаг получился...

qwerty, заполненный объект. Насколько реальное значение ссылки - я не знаю как проверить. Но судя по тому, что что-то получается - скорее реальное, чем нет.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 30 2008, 15:25 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
John Doe написал:
Lars, похоже направление то. С последним вариантом 'Visible' заработал. Но самое нужное : 'Value', 'Font' и все остальное - не пашет.
Задумка была такая, выкинуть через ДОИ табличку в Ёксель, а потом с помощью ОЛЕ добавить красоты всякой. Первый шаг получился...



вся штука в том что

Code:
  GET PROPERTY
    OF document_handle-obj ... = ...
    no flush
    queue-only


нужно сделать для всех ole объектов
тоесть, после того как получен application, делается
Code:
  GET PROPERTY
    OF application 'Activesheet' = activesheet
    no flush
    queue-only.


Глубже не опускался, но видимо, там же должны быть, book, font и т.д.
Красоту таким образом не наводил, но строки вставлять. убирать, скрывать получалось.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 30 2008, 15:45 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Lars, с меня пиво. Начало получаться.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

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


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

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


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

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