2023 Dec 27 11:57 AM
The sap program which I created is not working and downloading the excel sheet with formatted allignment like centering the data in cells. I dont understand what the issue.
I have used vbak and vbap tables and then joined them and added into internal table lt_sales_data.
I want to use the internal table data and convert into excel using OLE to format the allignment and need downloading it. Can anybody tell that what is wrong with code.
Code:
REPORT zole_display.<br>INCLUDE ole2incl.<br>TYPES: BEGIN OF ty_sales_data,<br> salesdocument TYPE vbak-vbeln,<br> item TYPE vbap-posnr,<br> material TYPE vbap-matnr,<br> quantity TYPE vbap-kwmeng,<br> END OF ty_sales_data.<br>DATA: lt_sales_data TYPE TABLE OF ty_sales_data,<br> lo_excel TYPE ole2_object,<br> lo_workbook TYPE ole2_object,<br> lo_worksheet TYPE ole2_object,<br> lo_cells TYPE ole2_object,<br> lo_range TYPE ole2_object,<br> lv_row TYPE i,<br> lv_col TYPE i,<br> lv_filepath TYPE string,<br> lv_filename TYPE string.<br>SELECT vbak~vbeln<br> vbap~posnr<br> vbap~matnr<br> vbap~kwmeng<br> INTO TABLE lt_sales_data<br> FROM vbak<br> INNER JOIN vbap ON vbak~vbeln = vbap~vbeln<br> WHERE vbak~vdatu BETWEEN '19000101' AND '20231231'.
CREATE OBJECT lo_excel 'Excel.Application'.<br>SET PROPERTY OF lo_excel 'Visible' = 1.<br>CALL METHOD OF lo_excel 'Workbooks' = lo_workbook<br> EXPORTING<br> #1 = 1.
CALL METHOD OF lo_workbook 'Worksheets' = lo_worksheet<br> EXPORTING<br> #1 = 1.
CALL METHOD OF lo_worksheet 'Cells' = lo_cells.<br>lv_col = 1.<br>CALL METHOD OF lo_cells 'Item' = lo_range EXPORTING #1 = 1 #2 = lv_col.<br>SET PROPERTY OF lo_range 'Value' = 'Sales Document'.<br>SET PROPERTY OF lo_range 'Font.Bold' = 1.<br>SET PROPERTY OF lo_range 'HorizontalAlignment' = 3.
ADD 1 TO lv_col.<br>CALL METHOD OF lo_cells 'Item' = lo_range EXPORTING #1 = 1 #2 = lv_col.<br>SET PROPERTY OF lo_range 'Value' = 'Item'.<br>SET PROPERTY OF lo_range 'Font.Bold' = 1.<br>SET PROPERTY OF lo_range 'HorizontalAlignment' = 3.
ADD 1 TO lv_col.<br>CALL METHOD OF lo_cells 'Item' = lo_range EXPORTING #1 = 1 #2 = lv_col.<br>SET PROPERTY OF lo_range 'Value' = 'Material'.<br>SET PROPERTY OF lo_range 'Font.Bold' = 1.<br>SET PROPERTY OF lo_range 'HorizontalAlignment' = 3.
ADD 1 TO lv_col.<br>CALL METHOD OF lo_cells 'Item' = lo_range EXPORTING #1 = 1 #2 = lv_col.<br>SET PROPERTY OF lo_range 'Value' = 'Quantity'.<br>SET PROPERTY OF lo_range 'Font.Bold' = 1.<br>SET PROPERTY OF lo_range 'HorizontalAlignment' = 3.
lv_row = 2.<br>LOOP AT lt_sales_data INTO DATA(ls_sales_data).<br> lv_col = 1.
CALL METHOD OF lo_cells 'Item' = lo_range EXPORTING #1 = lv_row #2 = lv_col.<br> SET PROPERTY OF lo_range 'Value' = ls_sales_data-salesdocument.<br> SET PROPERTY OF lo_range 'HorizontalAlignment' = 3.
ADD 1 TO lv_col.<br> CALL METHOD OF lo_cells 'Item' = lo_range EXPORTING #1 = lv_row #2 = lv_col.<br> SET PROPERTY OF lo_range 'Value' = ls_sales_data-item.<br> SET PROPERTY OF lo_range 'HorizontalAlignment' = 3.
ADD 1 TO lv_col.<br> CALL METHOD OF lo_cells 'Item' = lo_range EXPORTING #1 = lv_row #2 = lv_col.<br> SET PROPERTY OF lo_range 'Value' = ls_sales_data-material.<br> SET PROPERTY OF lo_range 'HorizontalAlignment' = 3.
ADD 1 TO lv_col.<br> CALL METHOD OF lo_cells 'Item' = lo_range EXPORTING #1 = lv_row #2 = lv_col.<br> SET PROPERTY OF lo_range 'Value' = ls_sales_data-quantity.<br> SET PROPERTY OF lo_range 'HorizontalAlignment' = 3.
ADD 1 TO lv_row.<br>ENDLOOP.<br>CALL METHOD OF lo_worksheet 'Columns' = lo_range EXPORTING #1 = 1.<br>CALL METHOD OF lo_range 'AutoFit'.<br>lv_filename = 'C:\Users\LENOVO\Downloads\Book5.xls'.<br>CALL METHOD OF lo_workbook 'SaveAs' EXPORTING #1 = lv_filename.<br>CALL METHOD OF lo_excel 'Quit'.<br>FREE OBJECT lo_excel.
2023 Dec 27 12:16 PM
Please edit your question (Actions>Edit), select your code and press the button [CODE], which makes the code appear colored/indented, it'll be easier for people to look at it. Thanks!
2023 Dec 27 1:30 PM
Please check the format of your post after posting.
Ctrl+Shift+V (unformatted paste) may help you.
2024 Jan 08 10:48 AM