Текущее время: Вс, июл 20 2025, 01:40

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: DIO + BDS
СообщениеДобавлено: Пт, июл 05 2013, 12:05 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 07 2006, 16:32
Сообщения: 131
Откуда: Украина, Мариуполь
Пол: Мужской
Здравствуйте коллеги.

Возникла задача выгружать данные в Word из шаблона OAER. В нем есть текст и таблицы. Хотел предложить заказчику затянуть в систему великолепную разработку Parazit-а. Сказали что фу-фу-фу... Надо через DOI и BDS. Нашел почитать про это тут http://abaphr.ru/bds_oaor/ и тут http://abaphr.ru/bds_aba/. Шаблон выгрузили круто, отдельные поля можно заменить через места типа <FIELD> а что делать если надо табличку заполнить какую...
Есть какие-то известные методы?

Заранее благодарен.

_________________
я в пути и нет у меня никаких тревог и забот. одинокая лодка моя рассекая волну плывет...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIO + BDS
СообщениеДобавлено: Пт, июл 05 2013, 13:35 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Пн, июл 09 2007, 15:51
Сообщения: 24
Так тут же на форуме было - Амосова Виктора инклуд, не оно ?
Вот ссылка:
viewtopic.php?f=13&t=46704


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIO + BDS
СообщениеДобавлено: Сб, июл 06 2013, 17:18 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 07 2006, 16:32
Сообщения: 131
Откуда: Украина, Мариуполь
Пол: Мужской
немного не то, но спасибо за ссылку.

еще вопрос. пробую открыть документ, сохраненный в BDS по примеру http://abaphr.ru/bds_aba/ шаблон открывается и тут же закрывается! что же не так? и еще написано что потом с ним можно работать через OLE через стандартные CALL METHOD OF, GET PROPERTY OF, SET PROPERTY OF. как это осуществить?
вот код:
Code:
REPORT ztest_001f.

TYPE-POOLS: sbdst.

INCLUDE:  officeintegrationinclude.


DATA:   url(255)
      , doc_uris            TYPE           sbdst_uri
      , doc_url             TYPE           c LENGTH 255
      , doc_signature       TYPE           sbdst_signature
      , doc_components      TYPE           sbdst_components
      , doc_properties      TYPE           sbdst_properties
      , wa_doc_components   LIKE LINE OF   doc_components
      , wa_doc_properties   LIKE LINE OF   doc_properties
      , wa_doc_uris         LIKE LINE OF   doc_uris
      , document_mimetype   TYPE           bapicompon-mimetype
      , doc_mimetype        LIKE           bapicompon-mimetype
      , bds_instance        TYPE REF TO    cl_bds_document_set
      , container           TYPE REF TO    cl_gui_custom_container
      , control             TYPE REF TO    i_oi_container_control
      , document            TYPE REF TO    i_oi_document_proxy
      , iword               TYPE REF TO    i_oi_word_processor_document
      , retcode             TYPE           soi_ret_string
      , rptnam              TYPE           char40
      , factory             TYPE REF TO    i_oi_document_factory
      , classname           TYPE           sbdst_classname
      , classtype           TYPE           sbdst_classtype
      , object_key          TYPE           bds_typeid
      , formular            TYPE           bds_compid.

START-OF-SELECTION.
* Создаём объект BDS
  CREATE OBJECT bds_instance.

  classname = 'ZTEST'.
  classtype = 'OT'.

* Собираем информацию обо всех шаблонах в каталоге (ключ объекта)
  CALL METHOD bds_instance->get_info
    EXPORTING
      classname       = classname
      classtype       = classtype
      object_key      = object_key
    CHANGING
      components      = doc_components
      signature       = doc_signature
    EXCEPTIONS
      nothing_found   = 1
      error_kpro      = 2
      internal_error  = 3
      parameter_error = 4
      not_authorized  = 5
      not_allowed     = 6.

* Ищем адреса хранения шаблонов
  REFRESH  doc_signature.
  CALL METHOD bds_instance->get_with_url
    EXPORTING
      classname       = classname
      classtype       = classtype
      object_key      = object_key
    CHANGING
      uris            = doc_uris
      signature       = doc_signature
    EXCEPTIONS
      nothing_found   = 1
      error_kpro      = 2
      internal_error  = 3
      parameter_error = 4
      not_authorized  = 5
      not_allowed     = 6.


  formular = 'Шаблон.doc'.
* Отыскиваем интересующий нас шаблон
  READ TABLE doc_components INTO wa_doc_components
    WITH KEY comp_id = formular.

* Ищем адрес нашего шаблона
  READ TABLE doc_uris INTO wa_doc_uris
    WITH KEY comp_count = wa_doc_components-comp_count
             doc_count = wa_doc_components-doc_count.

  document_mimetype = doc_mimetype.
  doc_url = wa_doc_uris-uri.

* Создаём OLE-соединение
  CALL METHOD c_oi_factory_creator=>get_document_factory
    EXPORTING
      factory_type = 'OLE'
    IMPORTING
      factory      = factory
      retcode      = retcode.

  CALL METHOD factory->start_factory
    EXPORTING
      r3_application_name      = 'Справка-объективка'
      register_on_close_event  = 'X'
      register_on_custom_event = 'X'
    IMPORTING
      retcode                  = retcode.

  CALL METHOD factory->get_document_proxy
    EXPORTING
      document_type  = 'Word.Document.8'
    IMPORTING
      document_proxy = document
      retcode        = retcode.

* Открываем документ
  CALL METHOD document->open_document
    EXPORTING
      document_url = doc_url
      open_inplace = space
    IMPORTING
      retcode      = retcode.

  CALL METHOD document->save_as
    EXPORTING
      file_name   = 'c:\file.doc'
      no_flush    = ' '
      prompt_user = ' '
    IMPORTING
      retcode     = retcode.

  CALL METHOD document->get_wordprocessor_interface
    IMPORTING
      wp_interface = iword.

_________________
я в пути и нет у меня никаких тревог и забот. одинокая лодка моя рассекая волну плывет...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DIO + BDS
СообщениеДобавлено: Ср, июл 31 2013, 18:58 
Начинающий
Начинающий

Зарегистрирован:
Ср, июл 31 2013, 11:13
Сообщения: 6
Что бы шаблон не закрывался можно написать обычный write с каким либо текстом, или сообщение вывести. тут инфо http://nikolay1880.blogspot.ru/2013/07/ ... rvice.html


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

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


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

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


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

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