******************************************************************
*& Report ZB_ALVOOPS
******************************************************************
REPORT zb_alvoops .
DATA gi_sflight TYPE STANDARD TABLE OF sflight.
DATA wa_sflight LIKE sflight.
DATA ok_code TYPE sy-ucomm.
DATA go_grid TYPE REF TO cl_gui_alv_grid.
DATA go_custom_container TYPE REF TO cl_gui_custom_container.
DATA : lt_fieldcat TYPE lvc_t_fcat,
ls_fieldcat LIKE LINE OF lt_fieldcat.
DATA ls_layout TYPE lvc_s_layo .
START-OF-SELECTION.
SET SCREEN '100'.
*--------------------------------------------------------------------
* MODULE STATUS_0100 OUTPUT
*--------------------------------------------------------------------
MODULE status_0100 OUTPUT .
SET PF-STATUS 'ZB_MYMENU'.
SET TITLEBAR 'ZB_MYMENU'.
IF go_custom_container IS INITIAL.
CREATE OBJECT go_custom_container
EXPORTING container_name = 'ALV_CONTAINER'.
CREATE OBJECT go_grid
EXPORTING
i_parent = go_custom_container.
PERFORM load_data_into_grid.
PERFORM build_field_catalog.
PERFORM set_layout.
PERFORM display_data.
ENDIF.
ENDMODULE. "STATUS_0100 OUTPUT
*&-------------------------------------------------------------------
*& Form load_data_into_grid
*&-------------------------------------------------------------------
FORM load_data_into_grid.
SELECT * FROM zsflight INTO CORRESPONDING FIELDS OF TABLE gi_sflight.
ENDFORM. "load_data_into_grid
*--------------------------------------------------------------------
* MODULE USER_COMMAND_0100 INPUT
*--------------------------------------------------------------------
MODULE user_command_0100 INPUT.
CASE ok_code.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'XLS'.
PERFORM export_to_excel.
ENDCASE.
ENDMODULE. "USER_COMMAND_0100 INPUT
*&-------------------------------------------------------------------
*& Form display_data
*&-------------------------------------------------------------------
FORM display_data.
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
i_save = 'A'
i_default = 'X'
is_layout = ls_layout
CHANGING
it_outtab = gi_sflight
it_fieldcatalog = lt_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
IF sy-subrc <> 0.
ENDIF.
ENDFORM. "display_data
*&-------------------------------------------------------------------
*& Form build_field_catalog
*&-------------------------------------------------------------------
FORM build_field_catalog .
REFRESH lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'CARRID'.
ls_fieldcat-coltext = 'Airline Code '.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO lt_fieldcat.
ls_fieldcat-fieldname = 'CONNID'.
ls_fieldcat-coltext = 'Flight Connection Number'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO lt_fieldcat.
ls_fieldcat-fieldname = 'FLDATE'.
ls_fieldcat-coltext = 'Flight Date'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO lt_fieldcat.
ls_fieldcat-fieldname = 'PRICE'.
ls_fieldcat-coltext = 'Airfare'.
APPEND ls_fieldcat TO lt_fieldcat.
ENDFORM. "build_field_catalog
*&-------------------------------------------------------------------
*& Form set_layout
*&-------------------------------------------------------------------
FORM set_layout.
ls_layout-grid_title = text-001.
ls_layout-sel_mode = 'B'.
ls_layout-edit = ''.
ls_layout-info_fname = 'color'.
ls_layout-no_toolbar = 'X'.
ls_layout-info_fname = 'COLOR'.
ENDFORM. "set_layout
DATA BEGIN OF xmplt_v OCCURS 1.
INCLUDE STRUCTURE gxxlt_v.
DATA END OF xmplt_v.
DATA BEGIN OF xmplt_o OCCURS 1.
INCLUDE STRUCTURE gxxlt_o.
DATA END OF xmplt_o.
DATA BEGIN OF xmplt_p OCCURS 1.
INCLUDE STRUCTURE gxxlt_p.
DATA END OF xmplt_p.
DATA BEGIN OF xmplt_v1 OCCURS 1.
INCLUDE STRUCTURE gxxlt_v.
DATA END OF xmplt_v1.
DATA BEGIN OF xmplt_o1 OCCURS 1.
INCLUDE STRUCTURE gxxlt_o.
DATA END OF xmplt_o1.
DATA BEGIN OF xmplt_p1 OCCURS 1.
INCLUDE STRUCTURE gxxlt_p.
DATA END OF xmplt_p1.
*&-------------------------------------------------------------------
*& Form export_to_excel
*&-------------------------------------------------------------------
FORM export_to_excel .
DATA: lt_data TYPE REF TO data,
out_line TYPE REF TO data,
wa_fieldcat LIKE LINE OF lt_fieldcat,
l_objtab LIKE STANDARD TABLE OF ddfieldin,
wa_objtab LIKE LINE OF l_objtab,
ws_count(3) TYPE c VALUE '1',
wa_gxxltv TYPE gxxlt_v.
FIELD-SYMBOLS: <l_fieldcat> TYPE lvc_t_fcat,
<l_field> LIKE LINE OF <l_fieldcat>,
<lt_table> TYPE table,
<l_line> TYPE ANY,
<fs_xlsdata> LIKE LINE OF gi_sflight,
<fs_data1> TYPE ANY,
<fs_data2> TYPE ANY.
* Get the frontend fieldcatalog
CALL METHOD go_grid->get_frontend_fieldcatalog
IMPORTING
et_fieldcatalog = lt_fieldcat.
DELETE lt_fieldcat WHERE no_out EQ 'X'.
*create dynamic table with the frontend fieldcatalog
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = lt_fieldcat
IMPORTING
ep_table = lt_data
EXCEPTIONS
generate_subpool_dir_full = 1
OTHERS = 2.
IF sy-subrc EQ 0.
ASSIGN lt_data->* TO <lt_table>.
ENDIF.
*create work area for the dynamic table
CREATE DATA out_line LIKE LINE OF <lt_table>.
ASSIGN out_line->* TO <l_line>.
LOOP AT lt_fieldcat ASSIGNING <l_field> WHERE no_out NE 'X'.
wa_objtab-tabname = 'V56I_DLNT_VIEW'.
wa_objtab-fieldname = <l_field>-fieldname.
APPEND wa_objtab TO l_objtab.
CALL FUNCTION 'DD_FIELDINFO_SET_GET'
EXPORTING
langu = sy-langu
TABLES
objinfo = l_objtab
EXCEPTIONS
internal_error = 1
OTHERS = 2.
IF sy-subrc EQ 0.
wa_gxxltv-col_no = ws_count.
wa_gxxltv-col_name = <l_field>-seltext.
APPEND wa_gxxltv TO xmplt_v1.
ADD 1 TO ws_count.
ENDIF.
ENDLOOP.
* Fill the dynamic table
LOOP AT gi_sflight ASSIGNING <fs_xlsdata>.
LOOP AT lt_fieldcat INTO wa_fieldcat.
ASSIGN COMPONENT wa_fieldcat-fieldname OF STRUCTURE
<fs_xlsdata> TO <fs_data1>.
ASSIGN COMPONENT wa_fieldcat-fieldname OF STRUCTURE
<l_line> TO <fs_data2>.
MOVE <fs_data1> TO <fs_data2>.
ENDLOOP.
APPEND <l_line> TO <lt_table>.
ENDLOOP.
xmplt_o1-line_no = 1.
xmplt_o1-info_name = text-013.
APPEND xmplt_o1.
xmplt_p1-line_no = 1.
xmplt_p1-text = text-013.
APPEND xmplt_p1.
* call to display the details in excel
CALL FUNCTION 'XXL_SIMPLE_API'
TABLES
col_text = xmplt_v1
data = <lt_table>
online_text = xmplt_o1
print_text = xmplt_p1
EXCEPTIONS
dim_mismatch_data = 1
file_open_error = 2
file_write_error = 3
inv_winsys = 4
inv_xxl = 5
OTHERS = 6.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " export_to_excel
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.