Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8581

How to set break page within worksheet for Excel in SAP

$
0
0

Hi All,

 

I am using the OLE to download to Excel. My requirement is to set the break page within worksheet. Unfortunately, it does not work properly. I am not sure which part is not right. Here is my program. Can anyone suggest how to do it? Thanks in advance!

 

REPORT Z_TEST_PAGE_BREAK.

 

INCLUDE ole2incl.

 

*handles for OLE objects

DATA: h_excel TYPE ole2_object,         " Excel object      

            h_mapl TYPE ole2_object,         " list of workbooks      

            h_map TYPE ole2_object,          " workbook     

            h_cell TYPE ole2_object,            " cell      

            h_range TYPE ole2_object,        " range     

            h_f TYPE ole2_object.                " font

 

DATA: it_vbak LIKE vbak OCCURS 10 WITH HEADER LINE.

DATA: g_end(4),     

           g_beg(4),     

           g_last(4),      

           l_character(30) VALUE 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',      

           gv_row TYPE char10,     

           gv_column  TYPE i,     

           l_text(200).

 

DATA: gc_head_beg TYPE c VALUE 0,     

            gc_head_end TYPE c VALUE 1.

 

START-OF-SELECTION.

 

*read Sales order 

SELECT * FROM vbak INTO TABLE it_vbak UP TO 20 ROWS.

 

*start Excel 

CREATE OBJECT  h_excel  'EXCEL.APPLICATION'.  

 

SET PROPERTY OF h_excel  'Visible' = 1.

 

*get list of workbooks, initially empty  

CALL METHOD OF     

         h_excel     

         'Workbooks' = h_mapl.

 

*add a new workbook 

CALL METHOD OF     

         h_mapl     

         'Add'  = h_map.

 

*output column 

WRITE: / 'Starting Output'. 

gv_row = 20. 

 

LOOP AT it_vbak.

*copy vbak to active EXCEL sheet   

gv_row = gv_row + 1.   

g_beg   = l_character+gv_column(1).   

g_end   = l_character+gv_column(1).   

gv_column = gv_column + 1.   

SHIFT gv_row LEFT DELETING LEADING space.   

CONCATENATE g_beg gv_row INTO g_beg.   

CONCATENATE g_end gv_row INTO g_end.    

PERFORM fill_cell USING gv_row gv_column it_vbak-vbeln.    

 

g_beg     = l_character+gv_column(1).    

g_end     = l_character+gv_column(1).    

gv_column = gv_column + 1.    

PERFORM fill_cell USING gv_row gv_column it_vbak-erdat.   

 

g_beg     = l_character+gv_column(1).   

g_end     = l_character+gv_column(1).   

gv_column = gv_column + 1.   

PERFORM fill_cell USING gv_row gv_column it_vbak-vbtyp.   

 

g_beg     = l_character+gv_column(1).   

g_end     = l_character+gv_column(1).   

gv_column = gv_column + 1.   

PERFORM fill_cell USING gv_row gv_column it_vbak-audat.   

 

CLEAR: gv_column, g_beg, g_end. 

ENDLOOP. 

 

* Set for Page Break

CALL METHOD OF     

         h_excel     

         'HPageBreaks' = h_mapl   

     EXPORTING     

         #1            = 1.

 

SET PROPERTY OF h_mapl 'Location' = h_cell. 

 

LOOP AT it_vbak.

*copy vbak data to active EXCEL sheet   

gv_row = gv_row + 1.   

g_beg     = l_character+gv_column(1).   

g_end     = l_character+gv_column(1).   

gv_column = gv_column + 1.   

SHIFT gv_row LEFT DELETING LEADING space.   

CONCATENATE g_beg gv_row INTO g_beg.   

CONCATENATE g_end gv_row INTO g_end.   

PERFORM fill_cell USING gv_row gv_column it_vbak-vbeln.   

 

g_beg     = l_character+gv_column(1).   

g_end     = l_character+gv_column(1).   

gv_column = gv_column + 1.   

PERFORM fill_cell USING gv_row gv_column it_vbak-erdat.   

 

g_beg     = l_character+gv_column(1).   

g_end     = l_character+gv_column(1).   

gv_column = gv_column + 1.   

PERFORM fill_cell USING gv_row gv_column it_vbak-vbtyp.   

 

g_beg     = l_character+gv_column(1).   

g_end     = l_character+gv_column(1).   

gv_column = gv_column + 1.   

 

PERFORM fill_cell USING gv_row gv_column it_vbak-audat.   

CLEAR: gv_column, g_beg, g_end. 

ENDLOOP. 

 

GET PROPERTY OF h_excel 'ActiveWorkbook' = h_mapl. 

 

CALL METHOD OF     

         h_mapl     

        'SAVEAS'   

     EXPORTING     

         #1       = 'C:\TEST1.XLS'     

         #2       = 1     

         #3       = 'test'.              "password  

 

CALL METHOD OF      

         h_mapl     

         'CLOSE'. 

 

CALL METHOD OF     

         h_excel     

         'QUIT'.

 

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

*&      Form  FILL_CELL

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

*       text

*----------------------------------------------------------------------*

*      -->P_H  text

*      -->P_1      text

*      -->P_0      text

*      -->P_IT_VBAK_VBELN  text

*----------------------------------------------------------------------*

FORM fill_cell  USING  p_row 

                                      p_column

                                      p_value. 

 

CALL METHOD OF     

      h_excel     

      'Cells' = h_cell   

  EXPORTING     

      #1      = p_row     

      #2      = p_column. 

 

SET PROPERTY OF h_cell 'Value' = p_value.

 

ENDFORM.                    " FILL_CELL


Viewing all articles
Browse latest Browse all 8581

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>