|
|
|
5 Most Popular Contributions
|
|
|
Home Tips and Tricks ABAP Reports ALV report to find the list of infotypes configured in a SAP System
|
|
|
|
ALV report to find the list of infotypes configured in a SAP System |
|
|
|
|
Written by Swarna S
|
|
Wednesday, 27 February 2008 |
ALV report to find the list of infotypes configured in a SAP System
*&---------------------------------------------------------------------* *& Report ZINFOTYPE * *& Author : Swarna. S * *&---------------------------------------------------------------------* *& * *& AS: This program lists all the infotypes maintained in SAP system * *&---------------------------------------------------------------------* REPORT zinfotype . TYPE-POOLS : slis. *Structure declaration for Infotypes for customer TYPES : BEGIN OF ty_table, infty TYPE infty, pnnnn TYPE pnnnn_d, END OF ty_table. *Structure for infotype text TYPES : BEGIN OF ty_itext, infty TYPE infty, itext TYPE intxt, sprsl TYPE sprsl, END OF ty_itext. *Structure for output display TYPES : BEGIN OF ty_output, infty TYPE infty, itext TYPE intxt, pnnnn TYPE pnnnn_d, END OF ty_output. *internal table and work area declarations DATA : it_table TYPE STANDARD TABLE OF ty_table INITIAL SIZE 0, it_output TYPE STANDARD TABLE OF ty_output INITIAL SIZE 0, it_ittext TYPE STANDARD TABLE OF ty_itext INITIAL SIZE 0, wa_table TYPE ty_table, wa_output TYPE ty_output, wa_ittext TYPE ty_itext. *Data declarations for ALV DATA: c_ccont TYPE REF TO cl_gui_custom_container, "Custom container object c_alvgd TYPE REF TO cl_gui_alv_grid, "ALV grid object it_fcat TYPE lvc_t_fcat, "Field catalogue it_layout TYPE lvc_s_layo. "Layout INITIALIZATION. START-OF-SELECTION. *select the infotypes maintained SELECT infty pnnnn FROM t582a INTO TABLE it_table. *Select the infotype texts IF it_table[] IS NOT INITIAL. SELECT itext infty sprsl FROM t582s INTO CORRESPONDING FIELDS OF TABLE it_ittext FOR ALL ENTRIES IN it_table WHERE infty = it_table-infty AND sprsl = 'E'. ENDIF. *Apppending the data to the internal table of ALV output LOOP AT it_table INTO wa_table. wa_output-infty = wa_table-infty. wa_output-pnnnn = wa_table-pnnnn. * For texts READ TABLE it_ittext INTO wa_ittext WITH KEY infty = wa_table-infty. wa_output-itext = wa_ittext-itext. APPEND wa_output TO it_output. CLEAR wa_output. ENDLOOP. * Calling the ALV screen wiht custom container CALL SCREEN 0600. *On this statement double click it takes you to the screen painter SE51. Enter the attributes *Create a Custom container and name it CC_CONT and OK code as OK_CODE. *Save check and Activate the scren painter. *NOw a normal screen witn number 600 is created which holds the ALV grid. * PBO of the actual screen , Here we can give a title and customized menuss *&---------------------------------------------------------------------* *& Module STATUS_0600 OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* module STATUS_0600 output. * SET PF-STATUS 'xxxxxxxx'. * SET TITLEBAR 'xxx'. endmodule. " STATUS_0600 OUTPUT * calling the PBO module ALV_GRID. *&---------------------------------------------------------------------* *& Module ALV_GRID OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE alv_grid OUTPUT. CREATE OBJECT c_ccont EXPORTING container_name = 'CC_CONT'. CREATE OBJECT c_alvgd EXPORTING i_parent = c_ccont. * Set field for ALV PERFORM alv_build_fieldcat. * Set ALV attributes FOR LAYOUT PERFORM alv_report_layout. CHECK NOT c_alvgd IS INITIAL. * Call ALV GRID CALL METHOD c_alvgd->set_table_for_first_display EXPORTING is_layout = it_layout CHANGING it_outtab = it_output it_fieldcatalog = it_fcat EXCEPTIONS invalid_parameter_combination = 1 program_error = 2 too_many_lines = 3 OTHERS = 4. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDMODULE. " ALV_GRID OUTPUT *&---------------------------------------------------------------------* *& Form alv_build_fieldcat *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * <--P_IT_FCAT text *----------------------------------------------------------------------* FORM alv_build_fieldcat. DATA lv_fldcat TYPE lvc_s_fcat. CLEAR lv_fldcat. lv_fldcat-row_pos = '1'. lv_fldcat-col_pos = '1'. lv_fldcat-fieldname = 'INFTY'. lv_fldcat-tabname = 'IT_OUTPUT'. lv_fldcat-outputlen = 8. lv_fldcat-scrtext_m = 'Infotype'. lv_fldcat-icon = 'X'. APPEND lv_fldcat TO it_fcat. CLEAR lv_fldcat. lv_fldcat-row_pos = '1'. lv_fldcat-col_pos = '2'. lv_fldcat-fieldname = 'PNNNN'. lv_fldcat-tabname = 'IT_OUTPUT'. lv_fldcat-outputlen = 15. lv_fldcat-scrtext_m = 'Structure'. lv_fldcat-icon = ''. APPEND lv_fldcat TO it_fcat. CLEAR lv_fldcat. lv_fldcat-row_pos = '1'. lv_fldcat-col_pos = '3'. lv_fldcat-fieldname = 'ITEXT'. lv_fldcat-tabname = 'IT_OUTPUT'. lv_fldcat-outputlen = 60. lv_fldcat-scrtext_m = 'Description'. lv_fldcat-icon = ''. APPEND lv_fldcat TO it_fcat. CLEAR lv_fldcat. ENDFORM. " alv_build_fieldcat *&---------------------------------------------------------------------* *& Form alv_report_layout *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * <--P_IT_LAYOUT text *----------------------------------------------------------------------* FORM alv_report_layout. it_layout-cwidth_opt = 'X'. it_layout-zebra = 'X'. ENDFORM. " alv_report_layout * PAI module of the screen created. In case we use an interactive ALV or *for additional functionalities we can create OK codes and based on the user command *we can do the coding. *&---------------------------------------------------------------------* *& Module USER_COMMAND_0600 INPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* module USER_COMMAND_0600 input. endmodule. " USER_COMMAND_0600 INPUT Steps to be done for creation of a screen 0600 with custom container.
- Create the screen 0600 for the above program and place a custom container on the same.
- Create a Custom container
- Name the custom container CC_CONT and give ok code as OK_CODE.
- In the Flow Logic enter a PBO Module as ALV_GRID.
- Activate and Execute the Code.
Related Items:
|
|
Last Updated ( Wednesday, 27 February 2008 )
|
|