SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Динамическая вставка картинки в excel



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
den
Старший специалист
Старший специалист



Joined: 11 Oct 2007
Posts: 103

PostPosted: Thu Feb 26, 2009 11:58 am    Post subject: Динамическая вставка картинки в excel Reply with quote

Здравствуйте!
Поставили такую задачу:
В выходную форму Excel динамически вставлять подпись отвественного лица в виде картинки. Причем отвественный может меняться, поэтому нужно иметь возможность загружать картинку с подписью в хранилище картинок прямо в продуктиве.

Поэтому возник ряд вопросов:
- На чем организовать хранилище картинок? Хотелось бы использовать SAP Web Repositary (smw0), но он не дает сохранять только в DEV, но не в PROD
- Как динамически вставить картинку в EXCEL?
Back to top
View user's profile Send private message
John Doe
Модератор
Модератор


Age: 46
Joined: 05 Nov 2007
Posts: 725
Location: КраснАдар

PostPosted: Thu Feb 26, 2009 1:04 pm    Post subject: Re: Динамическая вставка картинки в excel Reply with quote

den wrote:
- На чем организовать хранилище картинок? Хотелось бы использовать SAP Web Repositary (smw0), но он не дает сохранять только в DEV, но не в PROD

Я бы использовал репозитарий бизнес-документов, транзакция OAOR.
Back to top
View user's profile Send private message Blog
ghost
Специалист
Специалист


Age: 37
Joined: 18 Jan 2008
Posts: 71
Location: Tashkent-Astana-Moscow

PostPosted: Thu Feb 26, 2009 1:51 pm    Post subject: Re: Динамическая вставка картинки в excel Reply with quote

John Doe wrote:
den wrote:
- На чем организовать хранилище картинок? Хотелось бы использовать SAP Web Repositary (smw0), но он не дает сохранять только в DEV, но не в PROD

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


а почему именно OAOR, а не SMW0 ?. так для справки , может есть какие-то преимущества перед SWM0, которые мне например не известны ?

Заранее спс Smile

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)
Back to top
View user's profile Send private message Send e-mail Blog
John Doe
Модератор
Модератор


Age: 46
Joined: 05 Nov 2007
Posts: 725
Location: КраснАдар

PostPosted: Thu Feb 26, 2009 2:00 pm    Post subject: Re: Динамическая вставка картинки в excel Reply with quote

ghost wrote:
а почему именно OAOR, а не SMW0 ?. так для справки , может есть какие-то преимущества перед SWM0, которые мне например не известны ?

Заранее спс Smile


den wrote:
нужно иметь возможность загружать картинку с подписью в хранилище картинок прямо в продуктиве

Я не по преимуществу, а по задаче выбрал. OAOR транспортный запрос не создает.
Back to top
View user's profile Send private message Blog
ghost
Специалист
Специалист


Age: 37
Joined: 18 Jan 2008
Posts: 71
Location: Tashkent-Astana-Moscow

PostPosted: Thu Feb 26, 2009 2:04 pm    Post subject: Re: Динамическая вставка картинки в excel Reply with quote

John Doe wrote:
ghost wrote:
а почему именно OAOR, а не SMW0 ?. так для справки , может есть какие-то преимущества перед SWM0, которые мне например не известны ?

Заранее спс Smile


den wrote:
нужно иметь возможность загружать картинку с подписью в хранилище картинок прямо в продуктиве

Я не по преимуществу, а по задаче выбрал. OAOR транспортный запрос не создает.


ааа ясно Smile значит просто не правильно ваш ответ понял Embarassed

спс

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)
Back to top
View user's profile Send private message Send e-mail Blog
vga
Мастер
Мастер


Age: 180
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Thu Feb 26, 2009 4:38 pm    Post subject: Reply with quote

Могу предложить другой способ.
- Закачивать картинку как файл FM GUI_UPLOAD во внутреннюю таблицу и сохранять в бинарном виде в пользовательской таблице в DB.
- Перед использованием скачивать из базы и сохранять на компьютер клиента FM GUI_DOWNLOAD под уникальным именем.

В шаблон экселя вставить картинку. Через OLE получить объект картинки и вставить из локального файла.

Код примерный:
Code:
      CALL METHOD  OF m_worksheet 'Pictures' = m_pictures.
  *Add new Picture
        CALL METHOD OF m_pictures 'Insert' = m_picture
          EXPORTING #1 = 'C:\Temp\my_pict.bmp'.

         IF NOT m_picture IS INITIAL.
   *Set name of picture
             SEPARATED BY c_underline.
           SET PROPERTY OF m_picture:
             'Name'       = 'Signature',
             'Placement'  = xlmoveandsize.
       ENDIF.

- Удалить файл на клиенте.
Back to top
View user's profile Send private message Blog Visit poster's website
den
Старший специалист
Старший специалист



Joined: 11 Oct 2007
Posts: 103

PostPosted: Fri Feb 27, 2009 10:18 am    Post subject: Reply with quote

Спасибо за ответы!

vga wrote:
В шаблон экселя вставить картинку.


Можно поподробней, в каком виде картинку вставлять?
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 180
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Fri Feb 27, 2009 11:56 am    Post subject: Reply with quote

В шаблоне экселя выделяете несколько ячеек, в позиции которых хотите вставить картинку и именуете их 'PICTURE'. Далее позиционируете созданную картинку в нужные размеры кодом:

Code:
TYPES: BEGIN OF ty_range,
        name         TYPE soi_range_item-name,
        object       TYPE ole2_object,
        top          TYPE i,
        left         TYPE i,
        height       TYPE i,
        width        TYPE i,
        row          TYPE i,
        column       TYPE i,
        rows_count   TYPE i.
TYPES: END   OF ty_range.
DATA: ls_picture TYPE ty_range.
DATA: l_rows TYPE ole2_object.
DATA: l_border TYPE ole2_object.

CALL METHOD OF m_worksheet 'Range' = ls_picture-object
    EXPORTING #1 = 'PICTURE'.

IF NOT ls_picture-object IS INITIAL.

  GET PROPERTY OF ls_picture-object:
    'Top'    = ls_picture-top     no flush,
    'Left'   = ls_picture-left    no flush,
    'Height' = ls_picture-height  no flush,
    'Width'  = ls_picture-width   no flush,
    'Row'    = ls_picture-row     no flush,
    'Column' = ls_picture-column  no flush.

  CALL METHOD OF ls_picture-object 'Rows' = l_rows.

  IF NOT l_rows IS INITIAL.
    GET PROPERTY OF l_rows 'Count' = ls_picture-rows_count.
  ENDIF.

*  format picture
  IF NOT m_picture IS INITIAL.
    ADD 1 TO ls_picture-top.
    SET PROPERTY OF m_picture:
      'Top'    = ls_picture-top    no flush,
      'Left'   = ls_picture-left   no flush,
      'Width'  = ls_picture-width  no flush,
      'Height' = ls_picture-height no flush.

*set border style
    GET PROPERTY OF m_picture 'Border' = l_border.
    IF NOT l_border IS INITIAL.
      SET PROPERTY OF l_border 'LineStyle' = xlcontinuous.
    ENDIF.
  ENDIF.
ENDIF.
Back to top
View user's profile Send private message Blog Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.