Skip to Content
0
Former Member
Apr 29, 2009 at 06:50 AM

Interactive report: third screen not displaying

53 Views

Hi Experts,

I am doing a interactive report in ALV grid...and my requirement is

when the user clicks on SPMON which is displayed on the initial screen the first screen

should display and in first screen when the user clicks LIFNR second screen should display..

I am able to display initial and first screen but second screen is not displaying...I am

pasting a pinch of my code please have a look and advice me..

FORM USER_COMM USING P_UCOMM LIKE SY-UCOMM
                           R_SELFIELD TYPE SLIS_SELFIELD.

  DATA : OK_CODE TYPE SY-UCOMM.
  OK_CODE = P_UCOMM.
  CASE OK_CODE.

    WHEN '&IC1'.
      IF R_SELFIELD-FIELDNAME = 'SPMON'.
        READ TABLE IT_TAB INDEX R_SELFIELD-TABINDEX.

        REFRESH IT_TAB_1[].
        CLEAR IT_TAB_1.

        LOOP AT IT_FIRST WHERE WERK EQ IT_TAB-WERK AND SPMON EQ IT_TAB-SPMON
                           AND ART = IT_TAB-ART.

          MOVE IT_FIRST-WERK       TO  IT_TAB_1-WERK.
          MOVE IT_FIRST-LIFNR      TO  IT_TAB_1-LIFNR.
          MOVE IT_FIRST-MEANQ      TO  IT_TAB_1-MEANQ.
          MOVE IT_FIRST-BASME_QM   TO  IT_TAB_1-BASME_QM.
           APPEND IT_TAB_1.
          CLEAR: IT_FIRST, IT_TAB_1.
        ENDLOOP.


        REFRESH IT_FIELDCAT1[].

        S_LAYOUT-ZEBRA = 'X' .
        S_LAYOUT-COLWIDTH_OPTIMIZE = 'X' .

        PERFORM FIELD_CATALOG1 TABLES IT_FIELDCAT1
        USING:

          'IT_TAB_1' 'WERK' ' ' 'PLANT' ' ' ' ',
          'IT_TAB_1' 'LIFNR' ' ' 'VENDOR NUMBER' ' ' ' ',
          'IT_TAB_1' 'MEANQ' ' ' 'MEANQSCORE' ' ' ' ',
          'IT_TAB_1' 'BASME_QM' ' ' 'BuM' ' ' ' ',
        
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
         EXPORTING
           I_CALLBACK_PROGRAM                = SY-CPROG
           I_CALLBACK_USER_COMMAND             = 'USER_COMM_1'
           IS_LAYOUT                         = S_LAYOUT
           IT_FIELDCAT                       = IT_FIELDCAT1[]
         TABLES
            T_OUTTAB                          = IT_TAB_1[]
                  .

      ENDIF.
  ENDCASE.
ENDFORM.                    "USER_COMM

For second screen : which is not working

FORM USER_COMM_1 USING P_UCOMM LIKE SY-UCOMM
                           R_SELFIELD TYPE SLIS_SELFIELD.
  DATA : OK_CODE TYPE SY-UCOMM.
  OK_CODE = P_UCOMM.
  CASE OK_CODE.

    WHEN '&IC2'.
      IF R_SELFIELD-FIELDNAME = 'LIFNR'.
        READ TABLE IT_TAB_1 INDEX R_SELFIELD-TABINDEX.

        REFRESH IT_TAB_2[].
        CLEAR IT_TAB_2.

        LOOP AT IT_SECOND WHERE WERK EQ IT_TAB_1-WERK AND 
SPMON EQ IT_TAB_1-SPMON AND ART = IT_TAB_1-ART AND LIFNR = IT_TAB_1-LIFNR.
                                   
          MOVE IT_SECOND-ART        TO  IT_TAB_2-ART.
          MOVE IT_SECOND-SPMON      TO  IT_TAB_2-SPMON.
          MOVE IT_SECOND-MATNR      TO  IT_TAB_2-MATNR.
               APPEND IT_TAB_2.
          CLEAR: IT_SECOND, IT_TAB_2.
        ENDLOOP.

        REFRESH IT_FIELDCAT2[].

        S_LAYOUT-ZEBRA = 'X' .
        S_LAYOUT-COLWIDTH_OPTIMIZE = 'X' .

        PERFORM FIELD_CATALOG1 TABLES IT_FIELDCAT2
                USING:

                  'IT_TAB_2' 'MATNR' ' ' 'MATERIAL NUMBER' ' ' ' ',
                  'IT_TAB_2' 'MEANQ' ' ' 'MEANQSCORE' ' ' ' ',
                  'IT_TAB_2' 'BASME_QM' ' ' 'BuM' ' ' ' ',
               
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
         EXPORTING
           I_CALLBACK_PROGRAM                = SY-CPROG
           IS_LAYOUT                         = S_LAYOUT
           IT_FIELDCAT                       = IT_FIELDCAT2[]
          TABLES
            T_OUTTAB                          = IT_TAB_2[]
                  .

      ENDIF.
  ENDCASE.
ENDFORM.                    "USER_COMM_1

Please advice

Karthik

Edited by: Karthik R on Apr 29, 2009 12:22 PM