Search This Blog

Search This Blog

SY-LISEL Example

REPORT  ZSYLISEL.

TYPES: BEGIN OF TY_T001,
         BUKRS TYPE BUKRS," COMPANY CODE
         BUTXT TYPE BUTXT," NAME OF THE COMPANY
         ORT01 TYPE ORT01," CITY
         LAND1 TYPE LAND1," COUNTRY CODE
         WAERS TYPE WAERS," CURRENCY KEY
       END OF TY_T001.

DATA: IT_T001 TYPE STANDARD TABLE OF TY_T001,
      WA_T001 TYPE TY_T001.

DATA: V_BUKRS TYPE BUKRS.


TYPES: BEGIN OF TY_CUSTOMER,
         KUNNR TYPE KUNNR," CUSTOMER NO
         BUKRS TYPE BUKRS," COMPANY CODE
         AKONT TYPE AKONT," RECONCILIATION ACCOUNT
       END OF TY_CUSTOMER.

DATA: IT_CUSTOMER TYPE STANDARD TABLE OF TY_CUSTOMER,
      WA_CUSTOMER TYPE TY_CUSTOMER.


SELECT-OPTIONS: S_BUKRS FOR V_BUKRS.

***************************************************
*                START-OF-SELECTION.              *
***************************************************
START-OF-SELECTION.

SELECT BUKRS
       BUTXT
       ORT01
       LAND1
       WAERS
  INTO TABLE IT_T001
  FROM T001 WHERE BUKRS IN S_BUKRS.

***************************************************
*                END-OF-SELECTION.              *
***************************************************
END-OF-SELECTION.

  IF NOT IT_T001 IS INITIAL.

     WRITE:/5 'COM.CODE',15 'TEXT',45 'CITY',70 'COUNTRY'.

     ULINE.

    LOOP AT IT_T001 INTO WA_T001.

      WRITE:/5 WA_T001-BUKRS,
            15 WA_T001-BUTXT,
            45 WA_T001-ORT01,
            70 WA_T001-LAND1.
      CLEAR WA_T001.
   ENDLOOP.
  ENDIF.

***************************************************
*                AT LINE-SELECTION                *
***************************************************
AT LINE-SELECTION.

CASE SY-LSIND.

*----1
 WHEN 1.

   V_BUKRS = SY-LISEL+4(4).

*RETRIEVE ALL THE CUSTOMERS FOR THE SELECTED COMPANY CODE.

         SELECT KUNNR
                BUKRS
                AKONT INTO TABLE IT_CUSTOMER FROM KNB1
               WHERE BUKRS = V_BUKRS.


*DISPLAY THE DATA.

        IF NOT IT_CUSTOMER IS INITIAL.

          WRITE:/5 'COM.CODE',15 'CUSTOMER',30 'RECON.ACC'.

          ULINE.

         LOOP AT IT_CUSTOMER INTO WA_CUSTOMER.

          WRITE:/5 WA_CUSTOMER-BUKRS,
                15 WA_CUSTOMER-KUNNR,
                30 WA_CUSTOMER-AKONT.

          CLEAR WA_CUSTOMER.
         ENDLOOP.
        ELSE.

          WRITE:/ 'NO FURTHER DETAILS FOUND FOR THE SELECTED COMP.CODE'.

        ENDIF.

 ENDCASE.

DOUBLE CLICK ON 1000.

 

CONVERSION_EXIT_ALPHA_INPUT

REPORT  ZCLASS_G17.

TABLES VBAK.

SELECT-OPTIONS S_VBELN FOR VBAK-VBELN.

DATA: BEGIN OF IT_VBAK OCCURS 0,
        VBELN LIKE VBAK-VBELN,
        ERDAT LIKE VBAK-ERDAT,
        ERNAM LIKE VBAK-ERNAM,
        KUNNR LIKE VBAK-KUNNR,
        NETWR LIKE VBAK-NETWR,
      END OF IT_VBAK.


DATA IT_VBAP LIKE VBAP OCCURS 0 WITH HEADER LINE.

TYPE-POOLS SLIS.

DATA IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA WA_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA IT_SORT TYPE SLIS_T_SORTINFO_ALV.
DATA WA_SORT TYPE SLIS_SORTINFO_ALV.

START-OF-SELECTION.

  SELECT VBELN
         ERDAT
         ERNAM
         KUNNR
         NETWR INTO TABLE IT_VBAK
               FROM VBAK
               WHERE VBELN IN S_VBELN.

END-OF-SELECTION.

  PERFORM BUILD_FIELDS USING 'VBELN' 'Sales Doc' 'X' 20 ' ' ' ' ' '.

  PERFORM BUILD_FIELDS USING 'ERDAT' 'Date' ' ' 10 '__-__-____' ' ' ' '.

  PERFORM BUILD_FIELDS USING 'ERNAM' 'User' ' ' ' ' ' ' ' ' ' '.

  PERFORM BUILD_FIELDS USING 'KUNNR' 'Customer' ' ' ' ' ' ' 'C710' ' '.

  PERFORM BUILD_FIELDS USING 'NETWR' 'Amount' ' ' ' ' ' ' ' ' 'X'.


*---
  WA_LAYOUT-ZEBRA = 'X'.
  WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

*--
  WA_SORT-FIELDNAME = 'KUNNR'.
  WA_SORT-UP = 'X'.
  WA_SORT-SUBTOT = 'X'.

  APPEND WA_SORT TO IT_SORT.

*--
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
   I_CALLBACK_PROGRAM                = SY-CPROG
   I_CALLBACK_PF_STATUS_SET          = 'ALV_PF'
   I_CALLBACK_USER_COMMAND           = 'SECOND_LIST'
     I_CALLBACK_TOP_OF_PAGE            = 'TOP_PAGE'
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
*   I_STRUCTURE_NAME                  =
*   I_BACKGROUND_ID                   = ' '
*   I_GRID_TITLE                      =
*   I_GRID_SETTINGS                   =
     IS_LAYOUT                         = WA_LAYOUT
     IT_FIELDCAT                       = IT_FIELDCAT
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           = IT_SORT
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
*   IT_EVENTS                         =
*   IT_EVENT_EXIT                     =
*   IS_PRINT                          =
*   IS_REPREP_ID                      =
*   I_SCREEN_START_COLUMN             = 0
*   I_SCREEN_START_LINE               = 0
*   I_SCREEN_END_COLUMN               = 0
*   I_SCREEN_END_LINE                 = 0
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
    TABLES
      T_OUTTAB                          = IT_VBAK
* EXCEPTIONS
*   PROGRAM_ERROR                     = 1
*   OTHERS                            = 2
            .
  IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


*&---------------------------------------------------------------------*
*&      Form  TOP_PAGE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM TOP_PAGE.

  DATA IT_HEADER TYPE  SLIS_T_LISTHEADER.
  DATA WA_HEADER TYPE SLIS_LISTHEADER.

  WA_HEADER-TYP = 'H'.
  WA_HEADER-INFO = 'Sales Document Header Details'.

  APPEND WA_HEADER TO IT_HEADER.


  WA_HEADER-TYP = 'S'.
  WA_HEADER-INFO = 'Sales Document Header Details'.

  APPEND WA_HEADER TO IT_HEADER.


  WA_HEADER-TYP = 'A'.
  WA_HEADER-INFO = 'Sales Document Header Details'.

  APPEND WA_HEADER TO IT_HEADER.



  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY       = IT_HEADER
   I_LOGO                   = 'ZG01'
*   I_END_OF_LIST_GRID       =
*   I_ALV_FORM               =
            .

ENDFORM.                    "TOP_PAGE
*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDS
*&---------------------------------------------------------------------*
FORM BUILD_FIELDS  USING    VALUE(P_0081)
                            VALUE(P_0082)
                            VALUE(P_0083)
                            VALUE(P_20)
                            VALUE(P_0085)
                            VALUE(P_0086)
                            VALUE(P_0087).

  WA_FIELDCAT-FIELDNAME =  P_0081.
  WA_FIELDCAT-SELTEXT_L = P_0082.
  WA_FIELDCAT-KEY = P_0083.
  WA_FIELDCAT-OUTPUTLEN = P_20.
  WA_FIELDCAT-EDIT_MASK = P_0085.
  WA_FIELDCAT-EMPHASIZE = P_0086.
  WA_FIELDCAT-DO_SUM = P_0087.


  APPEND WA_FIELDCAT TO IT_FIELDCAT.
  CLEAR WA_FIELDCAT.

ENDFORM.                    " BUILD_FIELDS

*&---------------------------------------------------------------------*
*&      Form  SECOND_LIST
*&---------------------------------------------------------------------*
FORM SECOND_LIST USING LV_UCOMM TYPE SY-UCOMM
                       LV_FIELD TYPE SLIS_SELFIELD.

*  DATA L_VBELN(10) TYPE N.
*  IF LV_UCOMM EQ '&IC1' OR LV_UCOMM EQ 'VBAP'.
*
*    IF LV_FIELD-FIELDNAME EQ 'VBELN'.
*      L_VBELN = LV_FIELD-VALUE.

*      SELECT * FROM VBAP INTO TABLE IT_VBAP WHERE VBELN EQ L_VBELN.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    INPUT         = LV_FIELD-VALUE
 IMPORTING
    OUTPUT        = IT_VBAK-VBELN.

 SELECT * FROM VBAP INTO TABLE IT_VBAP
                          WHERE VBELN EQ IT_VBAK-VBELN.

      REFRESH IT_FIELDCAT[].

      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
         I_PROGRAM_NAME               = SY-CPROG
         I_INTERNAL_TABNAME           = 'IT_VBAP'
         I_STRUCTURE_NAME             = 'VBAP'
*   I_CLIENT_NEVER_DISPLAY       = 'X'
*   I_INCLNAME                   =
*   I_BYPASSING_BUFFER           =
*   I_BUFFER_ACTIVE              =
        CHANGING
          CT_FIELDCAT                  = IT_FIELDCAT
* EXCEPTIONS
*   INCONSISTENT_INTERFACE       = 1
*   PROGRAM_ERROR                = 2
*   OTHERS                       = 3
                .
      IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.



      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
   I_CALLBACK_PROGRAM                = SY-CPROG
*   I_CALLBACK_PF_STATUS_SET          = ' '
*   I_CALLBACK_USER_COMMAND           = ' '
   I_CALLBACK_TOP_OF_PAGE            = 'TOP_PAGE'
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
*   I_STRUCTURE_NAME                  =
*   I_BACKGROUND_ID                   = ' '
*   I_GRID_TITLE                      =
*   I_GRID_SETTINGS                   =
*   IS_LAYOUT                         =
         IT_FIELDCAT                       = IT_FIELDCAT
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
*   IT_EVENTS                         =
*   IT_EVENT_EXIT                     =
*   IS_PRINT                          =
*   IS_REPREP_ID                      =
*   I_SCREEN_START_COLUMN             = 0
*   I_SCREEN_START_LINE               = 0
*   I_SCREEN_END_COLUMN               = 0
*   I_SCREEN_END_LINE                 = 0
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
        TABLES
          T_OUTTAB                          = IT_VBAP
* EXCEPTIONS
*   PROGRAM_ERROR                     = 1
*   OTHERS                            = 2
                .
      IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.


*    ENDIF.

*  ENDIF.


ENDFORM.                    "SECOND_LIST

*&---------------------------------------------------------------------*
*&      Form  ALV_PF
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->LV_TABLE   text
*----------------------------------------------------------------------*
FORM ALV_PF USING LV_TABLE TYPE SLIS_T_EXTAB.

  SET PF-STATUS 'ZG17'.

ENDFORM.                    "ALV_PF






































CLICK ON