Site hosted by Angelfire.com: Build your free website today!

*&---------------------------------------------------------------------*

*&Sreeni Meka's program for OLE Automation

*& Dated 01/11/98.

*&---------------------------------------------------------------------*

REPORT ZOLEXCL.

* Including OLE types

INCLUDE OLE2INCL.

* Tables and variables for later use

TABLES: KNA1.

DATA: APPLICATION TYPE OLE2_OBJECT,

WORKBOOK TYPE OLE2_OBJECT,

SHEET TYPE OLE2_OBJECT,

CELLS TYPE OLE2_OBJECT.

DATA: Z_INTKNA1 LIKE KNA1 OCCURS 0 WITH HEADER LINE .

* Creating an object

CREATE OBJECT APPLICATION 'excel.application'.

IF SY-SUBRC NE 0.

WRITE: / 'Error when opening excel.application', SY-MSGLI.

ENDIF.

* Setting properties

SET PROPERTY OF APPLICATION 'Visible' = 1.

* Calling methods

CALL METHOD OF APPLICATION 'Workbooks' = WORKBOOK.

PERFORM ERRORS.

CALL METHOD OF WORKBOOK 'Add'.

PERFORM ERRORS.

CALL METHOD OF APPLICATION 'Worksheets' = SHEET EXPORTING #1 = 1.

PERFORM ERRORS.

CALL METHOD OF SHEET 'Activate'.

PERFORM ERRORS.

PERFORM FILL_SHEET.

 

* Subroutine for filling the spread sheet

FORM FILL_SHEET.

DATA: ROW_MAX TYPE I VALUE 256,

INDEX TYPE I.

FIELD-SYMBOLS: <NAME>.

 

SELECT * FROM KNA1 INTO TABLE Z_INTKNA1 UP TO 50 ROWS. "UP TO 50 ROWS.

LOOP AT Z_INTKNA1.

INDEX = ROW_MAX * ( SY-TABIX - 1 ) + 1. "TABIX IS COUNTER FOR INTTAB

DO 10 TIMES.

ASSIGN COMPONENT SY-INDEX OF STRUCTURE Z_INTKNA1 TO <NAME>.

CALL METHOD OF SHEET 'Cells' = CELLS

EXPORTING #1 = INDEX.

SET PROPERTY OF CELLS 'Value' = <NAME>.

ADD 1 TO INDEX.

ENDDO.

ENDLOOP.

 

ENDFORM.

* Subroutine for error handling

FORM ERRORS.

IF SY-SUBRC NE 0.

WRITE: / 'Error in OLE call', SY-MSGLI.

EXIT.

ENDIF.

ENDFORM.