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

Re: alv grid not displaying with oops alv

$
0
0

Hi ,

 

i was just practicing displaying alv grid output using alv grid . i have made the container also in screen and have used the following code . however alv grid output is blank as in screenshots attached but data there in final internal table . what might be the issue ? screenshots attached . kindly help .

 

Thanks

screen_0600.jpg

*&---------------------------------------------------------------------*
*& Report  ZABAP_ALV_OOPS_LEARNING
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZABAP_ALV_OOPS_LEARNING.


****ALV report listing all the infotypes that are customized in a SAP system with the structure name

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

BREAK-POINT .

  SELECT infty
          pnnnn
          FROM t582a
          INTO TABLE it_table.

*Select the infotype texts

BREAK-POINT .

  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

BREAK-POINT .


  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.

  BREAK-POINT .


* Calling the ALV screen with 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 screen painter.
*Now a normal screen with number 600 is created which holds the ALV grid.

* PBO of the actual screen , Here we can give a title and customized menus
*&---------------------------------------------------------------------*
*&      Module  STATUS_0600  OUTPUT
*&---------------------------------------------------------------------*
*      text
*----------------------------------------------------------------------*
module STATUS_0600 output.
  SET PF-STATUS 'STATUS'.
***  SET TITLEBAR 'xxx'.
***
***  SET PF-STATUS 'STANDARD_FULLSCREEN' OF PROGRAM 'SAPLKKBL'.
***  SET TITLEBAR 'ALV REPORT AA JAO'.


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


output.jpg


Viewing all articles
Browse latest Browse all 2878

Trending Articles



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