REPORT YOLE .

* This program stores or gets pictures and texts in/from SAP.
* If key has an initial value, it will store the picture and text in
* an SAP cluster.
* If key has no initial value it calls MsWord via OLE2 and displays
* the picture and the text.

TABLES : INDX.
INCLUDE OLE2INCL.
DATA: WRD TYPE OLE2_OBJECT,
      REC TYPE OLE2_OBJECT,
      PIC TYPE OLE2_OBJECT.
DATA: BEGIN OF ITAB1 OCCURS 20,
    LINE(1022) TYPE X,
END OF ITAB1.
DATA: BEGIN OF IREC OCCURS 1,
    LINE(1022) TYPE X,
END OF IREC.
DATA: BEGIN OF ITAB2 OCCURS 20,
    LINE(100),
END OF ITAB2.
*data: key like indx-srtfd value 'JJJ'.
DATA: KEY LIKE INDX-SRTFD.
DATA: MODE, SIZE TYPE I, TIM LIKE SY-UZEIT.

IF KEY <> ' '.             "Import the picture and text to SAP
  CALL FUNCTION 'WS_UPLOAD'
       EXPORTING
            FILENAME = 'c:\input\bubbles.bmp'
            FILETYPE = 'BIN'
       TABLES
            DATA_TAB = ITAB1.

  CALL FUNCTION 'WS_UPLOAD'
       EXPORTING
            FILENAME = 'c:\input\text.txt'
            FILETYPE = 'ASC'
       TABLES
            DATA_TAB = ITAB2.

  EXPORT ITAB1 ITAB2 TO DATABASE INDX(ST) ID KEY.

ELSE.                                  "Display the picture and text
  KEY = 'JJJ'.
  IMPORT ITAB1 ITAB2 FROM DATABASE INDX(ST) ID KEY.
  MODE = ''.
  LOOP AT ITAB1.
    CLEAR IREC.REFRESH IREC.
    IREC = ITAB1.
    APPEND IREC.

    CALL FUNCTION 'WS_DOWNLOAD'
         EXPORTING
              BIN_FILESIZE = 1022
              FILENAME     = 'c:\input\bub2.bmp'
              FILETYPE     = 'BIN'
              MODE         = MODE
         TABLES
              DATA_TAB     = IREC.
    MODE = 'A'.
  ENDLOOP.

  CALL FUNCTION 'WS_DOWNLOAD'
       EXPORTING
            FILENAME = 'c:\input\txt.txt'
       TABLES
            DATA_TAB = ITAB2.

 CREATE OBJECT WRD 'WORD.BASIC'.
 CALL METHOD OF WRD 'FILEOPEN' = REC EXPORTING #1 = 'C:\input\text.txt'.
 CALL METHOD OF WRD 'INSERTPICTURE' = PIC
             EXPORTING #1 = 'C:\input\bub2.bmp'.
ENDIF.

AT LINE-SELECTION.
  FREE OBJECT PIC.
  FREE OBJECT REC.
  FREE OBJECT WRD.