Текущее время: Сб, июл 19 2025, 22:04

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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