Check boxes on pushbuttons

hi all,
   I want to put checkboxes on the pushbuttons present in the first column of ALV Grid.
it is a very urgent requirement.
regards,
santosh

Hi,
try like below ...
ull get the push  button on first column..........
type-pools: slis.
DATA: begin of itab6 occurs 0,
chk type c,
a type p decimals 2,
b type p decimals 2,
c type c,
end of itab6.
data: ls_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
wa_layout TYPE slis_layout_alv.
itab6-a = '1.12'.
itab6-b = '2.25'.
itab6-c = '+'.
append itab6.
append itab6.
append itab6.
append itab6.
ls_fieldcat-fieldname = 'A'.
ls_fieldcat-seltext_m = 'A'.
append ls_fieldcat.
ls_fieldcat-fieldname = 'B'.
ls_fieldcat-seltext_m = 'B'.
ls_fieldcat-decimals_out = 0.
append ls_fieldcat.
ls_fieldcat-fieldname = 'C'.
ls_fieldcat-seltext_m = 'C'.
append ls_fieldcat.
wa_layout-box_tabname = 'ITAB6'.
wa_layout-box_fieldname = 'CHK'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = ls_fieldcat[]
IS_LAYOUT = wa_layout
TABLES
t_outtab = itab6[].
Cheers,
jose.

Similar Messages

  • ALV GRID N CHECK BOX N PUSHBUTTON

    HOW TO DO MULTIPLE SELECTION IN ALV REPORT USING checkbox and how to display selected records using
    pushbutton.send me sample code ASAP.

    Hello Sivaranjhani Rajapadmanabhan 
           To get a check box in ALV you can create your Field Catalog with following way.
    _ fieldcatalog-fieldname   = 'CK'.
      fieldcatalog-seltext_m   = 'CHECKM BOX'.
      fieldcatalog-col_pos     = 0.
      fieldcatalog-outputlen   = 10.
      fieldcatalog-CHECKBOX    = 'X'.
      fieldcatalog-EDIT        = 'X'.
      fieldcatalog-key         = ''.
      append fieldcatalog to fieldcatalog.
      clear  fieldcatalog._
    And how to get a push button on alv you have to copy the pf Status from se80 tcode in your program.
    Function Group : SAlv.
    if you want more details , will provid you , let me know.
    regards
    Swato namdeo.

  • How to select the output list check boxes

    Hi ABAP gurus,
       I am developing the on report, it display the output list, in that output list first column is Check box,
    here i created the 3 Pushbuttons on application tool bar,  one pushbutton is SELECT ALL, 2nd one is DESELECT ALL , 3rd one is CREDIT NOT CREATE,
    here when i click on the Select all button it will select all the check boxs and click on the credit not button  it will create credit memos for all the customers,  if i select the one or more than one check boxs, it will not working means (Credit note will not be created for that paricular customer)
    plz tell me answer, if u know the any example programs related to this program plz send me.

    Hi,
    refer this sample code.
    AT USER-COMMAND.
      CASE sy-ucomm.
        WHEN 'F2'.
          PERFORM selection.
        WHEN 'SELECTALL'.
          PERFORM selectall.
        WHEN 'DESELECTAL'.
          PERFORM deselectall.
      ENDCASE.                             " CASE SY-UCOMM
    *&      Form  selection                                                *
          Selecting records of basic list and display flight information *
          No parameters transferred                                      *
    FORM selection .
      DO w_lines TIMES.
        READ LINE w_lineno FIELD VALUE w_checkbox INTO w_checkbox
                                    fs_spfli-carrid INTO fs_spfli-carrid
                                    fs_spfli-connid INTO fs_spfli-connid
                                    w_mark INTO w_mark.
        IF sy-subrc EQ 0.
          IF w_checkbox EQ 'X' AND w_mark NE '*'.
            w_mark = '*'.
            MODIFY CURRENT LINE FIELD VALUE w_mark
                                FIELD FORMAT w_checkbox INPUT OFF.
            SELECT carrid                  " Airline Code
                   connid                  " Flight Connection Number
                   fldate                  " Flight date
                   seatsmax                " Maximum capacity
                   seatsocc                " Occupied seats
              FROM sflight
              INTO CORRESPONDING FIELDS OF TABLE t_sflight
              WHERE carrid EQ fs_spfli-carrid AND connid EQ fs_spfli-connid.
            IF sy-subrc EQ 0.
              LOOP AT t_sflight INTO fs_sflight.
                WRITE :/2 fs_sflight-carrid,
                       10 fs_sflight-fldate,
                       25 fs_sflight-seatsmax,
                       45 fs_sflight-seatsocc.
              ENDLOOP.                     " LOOP AT T_SFLIGHT INTO....
              ULINE.
              CLEAR t_sflight.
            ELSE.
              MESSAGE text-001 TYPE 'S'.
            ENDIF.                         " IF SY-SUBRC EQ 0
          ENDIF.                           " IF W_CHECKBOX EQ 'X' AND .....
        ENDIF.                             " IF SY-SUBRC EQ 0
        ADD 1 TO w_lineno.
        CLEAR w_checkbox.
      ENDDO.                               " DO W_LINES TIMES
      w_lineno = 3.
    ENDFORM.                               " Selection

  • Check box.

    Hello Frnds,
             i need  check box in my hierarchial alv list display.
    i am produing my  code.pls specify the changes.
    *& Report  ZCASE9_ORDERSLISTREPORT
    REPORT  ZCASE9_ORDERSLISTREPORT.
    TYPE-POOLS: VRM,SLIS.
    TABLES:VBAK,
           VBAP,
           VBKD,
           VBEP,
           KNA1,
           VBPA,
           MAKT,
           VBUP,
           TVBST.
    TYPES:BEGIN OF ST_VBAK,
            VBELN TYPE VBAK-VBELN,
            ERDAT TYPE VBAK-ERDAT,
            ERZET TYPE VBAK-ERZET,
            ERNAM TYPE VBAK-ERNAM,
            AUDAT TYPE VBAK-AUDAT,
            LIFSK TYPE VBAK-LIFSK,
            VDATU TYPE VBAK-VDATU,
            VSBED TYPE VBAK-VSBED,
            BSTNK TYPE VBAK-BSTNK,
            BNAME TYPE VBAK-BNAME,
            AEDAT TYPE VBAK-AEDAT,
          END OF ST_VBAK,
          BEGIN OF ST_VBAP,
            VBELN1 TYPE VBAP-VBELN,
            MATNR TYPE VBAP-MATNR,
            CHARG TYPE VBAP-CHARG,
            PSTYV TYPE VBAP-PSTYV,
            ABGRU TYPE VBAP-ABGRU,
            MEINS TYPE VBAP-MEINS,
            VKAUS TYPE VBAP-VKAUS,
            KWMENG TYPE VBAP-KWMENG,
            LPRIO TYPE VBAP-LPRIO,
            WERKS TYPE VBAP-WERKS,
            LGORT TYPE VBAP-LGORT,
            VSTEL TYPE VBAP-VSTEL,
            ROUTE TYPE VBAP-ROUTE,
            MVGR5 TYPE VBAP-MVGR5,
          END OF ST_VBAP,
          BEGIN OF ST_VBPA,
            VBELN TYPE VBPA-VBELN,
            KUNNR TYPE VBPA-KUNNR,
          END OF ST_VBPA,
          BEGIN OF ST_KNA1,
            KUNNR TYPE KNA1-KUNNR,
            NAME1 TYPE KNA1-NAME1,
            TELF1 TYPE KNA1-TELF1,
          END OF ST_KNA1,
          BEGIN OF ST_MAKT,
            MATNR TYPE MAKT-MATNR,
            MAKTX TYPE MAKT-MAKTX,
          END OF ST_MAKT,
          BEGIN OF ST_VBEP,
            VBELN TYPE VBEP-VBELN,
            ETENR TYPE VBEP-ETENR,
            WADAT TYPE VBEP-WADAT,
          END OF ST_VBEP,
          BEGIN OF ST_VBUP,
            VBELN TYPE VBUP-VBELN,
            LFSTA TYPE VBUP-LFSTA,
            GBSTA TYPE VBUP-GBSTA,
          END OF ST_VBUP,
          begin of st_finalHDR,
            VBELN TYPE VBAK-VBELN,
            ERDAT TYPE VBAK-ERDAT,
            ERZET TYPE VBAK-ERZET,
            ERNAM TYPE VBAK-ERNAM,
            AUDAT TYPE VBAK-AUDAT,
            LIFSK TYPE VBAK-LIFSK,
            VDATU TYPE VBAK-VDATU,
            VSBED TYPE VBAK-VSBED,
            BSTNK TYPE VBAK-BSTNK,
            BNAME TYPE VBAK-BNAME,
            AEDAT TYPE VBAK-AEDAT,
            KUNNR TYPE VBPA-KUNNR,
            NAME1 TYPE KNA1-NAME1,
            TELF1 TYPE KNA1-TELF1,
          end of st_finalHDR,
          BEGIN OF ST_FINALTEM,
            VBELN1 TYPE VBAP-VBELN,
            LPRIO TYPE VBAP-LPRIO,
            WERKS TYPE VBAP-WERKS,
            LGORT TYPE VBAP-LGORT,
            VSTEL TYPE VBAP-VSTEL,
            ROUTE TYPE VBAP-ROUTE,
            MVGR5 TYPE VBAP-MVGR5,
            MATNR TYPE VBAP-MATNR,
            CHARG TYPE VBAP-CHARG,
            PSTYV TYPE VBAP-PSTYV,
            ABGRU TYPE VBAP-ABGRU,
            MEINS TYPE VBAP-MEINS,
            VKAUS TYPE VBAP-VKAUS,
            KWMENG TYPE VBAP-KWMENG,
            MAKTX TYPE MAKT-MAKTX,
            ETENR TYPE VBEP-ETENR,
            WADAT TYPE VBEP-WADAT,
            LFSTA TYPE VBUP-LFSTA,
            GBSTA TYPE VBUP-GBSTA,
          END OF ST_FINALTEM.
    DATA:IT_VBAK TYPE STANDARD TABLE OF ST_VBAK,
         IT_VBAP TYPE STANDARD TABLE OF ST_VBAP,
         IT_VBPA TYPE STANDARD TABLE OF ST_VBPA,
         IT_KNA1 TYPE STANDARD TABLE OF ST_KNA1,
         IT_MAKT TYPE STANDARD TABLE OF ST_MAKT,
         IT_VBEP TYPE STANDARD TABLE OF ST_VBEP,
         IT_VBUP TYPE STANDARD TABLE OF ST_VBUP,
         IT_FINALHDR TYPE STANDARD TABLE OF ST_FINALHDR,
         IT_FINALTEM TYPE STANDARD TABLE OF ST_FINALTEM,
         WA_VBAK TYPE ST_VBAK,
         WA_VBAP TYPE ST_VBAP,
         WA_VBPA TYPE ST_VBPA,
         WA_KNA1 TYPE ST_KNA1,
         WA_MAKT TYPE ST_MAKT,
         WA_VBEP TYPE ST_VBEP,
         WA_VBUP TYPE ST_VBUP,
         WA_FINALHDR TYPE ST_FINALHDR,
         WA_FINALTEM TYPE ST_FINALTEM.
    DATA: NAME TYPE VRM_ID,
          LIST TYPE VRM_VALUES,
          VALUE LIKE LINE OF LIST,
          REPID TYPE SY-REPID,
         TY_KEYINFO TYPE SLIS_KEYINFO_ALV, " key information type.
         IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
         WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,    " field catalog type
         IT_HEADER TYPE SLIS_TABNAME,    " table to store header data
         IT_ITEM TYPE SLIS_TABNAME. " table to store item data
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETERS:OPEN_ORD RADIOBUTTON GROUP g1 DEFAULT 'X',                  " DOWNLOAD TO APPLICATION SERVER
               ALL_ORD RADIOBUTTON GROUP g1,
               MY_ORD AS CHECKBOX.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
    PARAMETERS:PF(25) AS LISTBOX VISIBLE LENGTH 20,  P_KUNNR TYPE VBAK-KUNNR,
               P_MATNR TYPE VBAP-MATNR,
               P_BSTNK TYPE VBAK-BSTNK.
    SELECTION-SCREEN END OF BLOCK B2.
    SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-003.
    SELECT-OPTIONS:S_AUDAT FOR VBAK-AUDAT,
                   S_VBELN FOR VBAK-VBELN,
                   S_AUART FOR VBAK-AUART,
                   S_LPRIO FOR VBAP-LPRIO,
                   S_PRSDT FOR VBKD-PRSDT,
                   S_WADAT FOR VBEP-WADAT,
                   S_VSBED FOR VBAK-VSBED,
                   S_EDATU FOR VBEP-EDATU,
                   S_LIFSK FOR VBAK-LIFSK,
                   S_ERNAM FOR VBAK-ERNAM.
    SELECTION-SCREEN END OF BLOCK B3.
    SELECTION-SCREEN BEGIN OF BLOCK B4 WITH FRAME TITLE TEXT-004.
    SELECT-OPTIONS:S_VKORG FOR VBAK-VKORG,
                   S_VTWEG FOR VBAK-VTWEG,
                   S_SPART FOR VBAP-SPART,
                   S_VKGRP FOR VBAK-VKGRP,
                   S_VKBUR FOR VBAK-VKBUR,
                   S_WERKS FOR VBAP-WERKS.
    SELECTION-SCREEN END OF BLOCK B4.
    INITIALIZATION.
    NAME = 'PF'.
    VALUE-KEY = '1'.
    VALUE-TEXT = 'SHIP TO'.
    APPEND VALUE TO LIST.
    NAME = 'PF'.
    VALUE-KEY = '2'.
    VALUE-TEXT = 'SOLD TO'.
    APPEND VALUE TO LIST.
    NAME = 'PF'.
    VALUE-KEY = '3'.
    VALUE-TEXT = 'BILL TO'.
    APPEND VALUE TO LIST.
    CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
    ID = NAME
    VALUES = LIST.
    REPID = SY-REPID.            " variable having the program name
    IT_HEADER = 'IT_FINALHDR'.
    IT_ITEM = 'IT_FINALTEM'.
    CLEAR TY_KEYINFO.
    TY_KEYINFO-HEADER01 = 'VBELN'." comparing the keys and relating the header and item internal tables
    TY_KEYINFO-ITEM01 = 'VBELN1'.
    START-OF-SELECTION.
    IF OPEN_ORD ='X'.
          PERFORM RETRIEVE_VBAK.
          PERFORM RETRIEVE_VBAP.
          PERFORM RETRIEVE_VBPA.
          PERFORM RETRIEVE_KNA1.
          PERFORM RETRIEVE_MAKT.
          PERFORM RETRIEVE_VBEP.
          PERFORM RETRIEVE_VBUP1.
    ELSE.
         PERFORM RETRIEVE_VBAK.
         PERFORM RETRIEVE_VBAP.
         PERFORM RETRIEVE_VBPA.
         PERFORM RETRIEVE_KNA1.
         PERFORM RETRIEVE_MAKT.
         PERFORM RETRIEVE_VBEP.
         PERFORM RETRIEVE_VBUP.
    ENDIF.
    IF IT_VBAK IS NOT INITIAL.
       LOOP AT IT_VBAK INTO WA_VBAK.
            READ TABLE IT_VBAP INTO WA_VBAP WITH KEY VBELN1 = WA_VBAK-VBELN.
                 CHECK SY-SUBRC EQ 0.
            READ TABLE IT_VBPA INTO WA_VBPA WITH KEY VBELN = WA_VBAP-VBELN1.
                 CHECK SY-SUBRC EQ 0.
            READ TABLE IT_KNA1 INTO WA_KNA1 WITH KEY KUNNR = WA_VBPA-KUNNR.
                 CHECK SY-SUBRC EQ 0.
            READ TABLE IT_MAKT INTO WA_MAKT WITH KEY MATNR = WA_VBAP-MATNR.
                 CHECK SY-SUBRC EQ 0.
            READ TABLE IT_VBEP INTO WA_VBEP WITH KEY VBELN = WA_VBAP-VBELN1.
                 CHECK SY-SUBRC EQ 0.
            READ TABLE IT_VBUP INTO WA_VBUP WITH KEY VBELN = WA_VBAP-VBELN1.
                 CHECK SY-SUBRC EQ 0.
                 WA_FINALHDR-VBELN = WA_VBAK-VBELN.
                 WA_FINALHDR-ERNAM = WA_VBAK-ERNAM.
                 WA_FINALHDR-ERDAT = WA_VBAK-ERDAT.
                 WA_FINALHDR-ERZET = WA_VBAK-ERZET.
                 WA_FINALHDR-AEDAT = WA_VBAK-AEDAT.
                 WA_FINALHDR-AUDAT = WA_VBAK-AUDAT.
                 WA_FINALHDR-LIFSK = WA_VBAK-LIFSK.
                 WA_FINALHDR-VDATU = WA_VBAK-VDATU.
                 WA_FINALHDR-VSBED = WA_VBAK-VSBED.
                 WA_FINALHDR-BNAME = WA_VBAK-BNAME.
                 WA_FINALHDR-BSTNK = WA_VBAK-BSTNK.
                 WA_FINALHDR-TELF1 = WA_KNA1-TELF1.
                 WA_FINALHDR-NAME1 = WA_KNA1-NAME1.
                 WA_FINALHDR-KUNNR = WA_VBPA-KUNNR.
                 WA_FINALTEM-VBELN1 = WA_VBAP-VBELN1.
                 WA_FINALTEM-LPRIO = WA_VBAP-LPRIO.
                 WA_FINALTEM-MATNR = WA_VBAP-MATNR.
                 WA_FINALTEM-CHARG = WA_VBAP-CHARG.
                 WA_FINALTEM-MAKTX = WA_MAKT-MAKTX.
                 WA_FINALTEM-LGORT = WA_VBAP-LGORT.
                 WA_FINALTEM-MVGR5 = WA_VBAP-MVGR5.
                 WA_FINALTEM-ETENR = WA_VBEP-ETENR.
                 WA_FINALTEM-KWMENG = WA_VBAP-KWMENG.
                 WA_FINALTEM-GBSTA = WA_VBUP-GBSTA.
                 WA_FINALTEM-LFSTA = WA_VBUP-LFSTA.
                 WA_FINALTEM-VSTEL = WA_VBAP-VSTEL.
                 WA_FINALTEM-PSTYV = WA_VBAP-PSTYV.
                 WA_FINALTEM-ABGRU = WA_VBAP-ABGRU.
                 WA_FINALTEM-MEINS = WA_VBAP-MEINS.
                 WA_FINALTEM-VKAUS = WA_VBAP-VKAUS.
                 WA_FINALTEM-WERKS = WA_VBAP-WERKS.
                 WA_FINALTEM-ROUTE = WA_VBAP-ROUTE.
                 WA_FINALTEM-WADAT = WA_VBEP-WADAT.
                 APPEND WA_FINALHDR TO IT_FINALHDR.
                 APPEND WA_FINALTEM TO IT_FINALTEM.
       ENDLOOP.
    ENDIF.
      SORT iT_FINALHDR.
      DELETE ADJACENT DUPLICATES FROM iT_FINALHDR COMPARING ALL FIELDS.
      SORT iT_FINALTEM.
      DELETE ADJACENT DUPLICATES FROM iT_FINALTEM COMPARING ALL FIELDS.
    *wa_fieldcat-d = 'X'.
    WA_FIELDCAT-TABNAME = 'IT_FINALHDR'.
    WA_FIELDCAT-FIELDNAME = 'VBELN'.
    WA_FIELDCAT-SELTEXT_L = 'SALES DOC NO'.
    WA_FIELDCAT-COL_POS = 1.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALHDR'.
    WA_FIELDCAT-FIELDNAME = 'ERNAM'.
    WA_FIELDCAT-SELTEXT_L = 'CREATED BY'.
    WA_FIELDCAT-COL_POS = 2.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALHDR'.
    WA_FIELDCAT-FIELDNAME = 'ERDAT'.
    WA_FIELDCAT-SELTEXT_L = 'CREATED ON'.
    WA_FIELDCAT-COL_POS = 3.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALHDR'.
    WA_FIELDCAT-FIELDNAME = 'ERZET'.
    WA_FIELDCAT-SELTEXT_L = 'CREATED TIME'.
    WA_FIELDCAT-COL_POS = 4.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALHDR'.
    WA_FIELDCAT-FIELDNAME = 'AEDAT'.
    WA_FIELDCAT-SELTEXT_L = 'CHANGED ON'.
    WA_FIELDCAT-COL_POS = 5.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALHDR'.
    WA_FIELDCAT-FIELDNAME = 'AUDAT'.
    WA_FIELDCAT-SELTEXT_L = 'DOCUMENT DATE'.
    WA_FIELDCAT-COL_POS = 6.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALHDR'.
    WA_FIELDCAT-FIELDNAME = 'LIFSK'.
    WA_FIELDCAT-SELTEXT_L = 'DELIVERY BLOCK'.
    WA_FIELDCAT-COL_POS = 7.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALHDR'.
    WA_FIELDCAT-FIELDNAME = 'VDATU'.
    WA_FIELDCAT-SELTEXT_L = 'REQ DEL. DATE'.
    WA_FIELDCAT-COL_POS = 8.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALHDR'.
    WA_FIELDCAT-FIELDNAME = 'VSBED'.
    WA_FIELDCAT-SELTEXT_L = 'SHIPPING CONDITION'.
    WA_FIELDCAT-COL_POS = 9.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALHDR'.
    WA_FIELDCAT-FIELDNAME = 'BNAME'.
    WA_FIELDCAT-SELTEXT_L = 'NAME OF THE ORDERER'.
    WA_FIELDCAT-COL_POS = 10.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALHDR'.
    WA_FIELDCAT-FIELDNAME = 'TELF1'.
    WA_FIELDCAT-SELTEXT_L = 'SHIP 2 PARTY TELEPHONE'.
    WA_FIELDCAT-COL_POS = 11.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALHDR'.
    WA_FIELDCAT-FIELDNAME = 'BSTNK'.
    WA_FIELDCAT-SELTEXT_L = 'PURCHASE ORDER NO'.
    WA_FIELDCAT-COL_POS = 12.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALHDR'.
    WA_FIELDCAT-FIELDNAME = 'KUNNR'.
    WA_FIELDCAT-SELTEXT_L = 'SHIP 2 PARTY'.
    WA_FIELDCAT-COL_POS = 13.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALHDR'.
    WA_FIELDCAT-FIELDNAME = 'NAME1'.
    WA_FIELDCAT-SELTEXT_L = 'SHIP 2 PARTY NAME'.
    WA_FIELDCAT-COL_POS = 14.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'VBELN1'.
    WA_FIELDCAT-SELTEXT_L = 'SALES DOC'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'LPRIO'.
    WA_FIELDCAT-SELTEXT_L = 'DEL. PRIORITY'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'MATNR'.
    WA_FIELDCAT-SELTEXT_L = 'MATERIAL'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'CHARG'.
    WA_FIELDCAT-SELTEXT_L = 'BATCH'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'MAKTX'.
    WA_FIELDCAT-SELTEXT_L = 'MAT DESC'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'LGORT'.
    WA_FIELDCAT-SELTEXT_L = 'STORAGE LOC'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'MVGR5'.
    WA_FIELDCAT-SELTEXT_L = 'MAT GROUP'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'ETENR'.
    WA_FIELDCAT-SELTEXT_L = 'SCHED LINE NO'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'KWMENG'.
    WA_FIELDCAT-SELTEXT_L = 'ORD QUANTITY'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'GBSTA'.
    WA_FIELDCAT-SELTEXT_L = 'OVERALL STATUS'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'LFSTA'.
    WA_FIELDCAT-SELTEXT_L = 'DEL. STATUS'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'VSTEL'.
    WA_FIELDCAT-SELTEXT_L = 'SHIPPING POINT'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'PSTYV'.
    WA_FIELDCAT-SELTEXT_L = 'ITEM CATEGORY'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'ABGRU'.
    WA_FIELDCAT-SELTEXT_L = 'REASON 4 REJECTION'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'MEINS'.
    WA_FIELDCAT-SELTEXT_L = 'BASE UOM'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'VKAUS'.
    WA_FIELDCAT-SELTEXT_L = 'USAGE'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'WERKS'.
    WA_FIELDCAT-SELTEXT_L = 'PLANT'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'ROUTE'.
    WA_FIELDCAT-SELTEXT_L = 'ROUTE'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-TABNAME = 'IT_FINALTEM'.
    WA_FIELDCAT-FIELDNAME = 'WADAT'.
    WA_FIELDCAT-SELTEXT_L = 'GOODS ISSUE DATE'.
    APPEND WA_FIELDCAT TO IT_FIELDCAT.
    CLEAR WA_FIELDCAT.
    *CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
      I_CALLBACK_PROGRAM                = REPID
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = ' '
      I_CALLBACK_TOP_OF_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_FINALHDR
    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.
    CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
      EXPORTING
      I_INTERFACE_CHECK              = ' '
       I_CALLBACK_PROGRAM             = REPID
      I_CALLBACK_PF_STATUS_SET       = ' '
      I_CALLBACK_USER_COMMAND        = ' '
      IS_LAYOUT                      =
       IT_FIELDCAT                    = IT_FIELDCAT
      IT_EXCLUDING                   =
      IT_SPECIAL_GROUPS              =
      IT_SORT                        =
      IT_FILTER                      =
      IS_SEL_HIDE                    =
      I_SCREEN_START_COLUMN          = 0
      I_SCREEN_START_LINE            = 0
      I_SCREEN_END_COLUMN            = 0
      I_SCREEN_END_LINE              = 0
      I_DEFAULT                      = 'X'
      I_SAVE                         = ' '
      IS_VARIANT                     =
      IT_EVENTS                      =
      IT_EVENT_EXIT                  =
        i_tabname_header               = IT_HEADER
        i_tabname_item                 = IT_ITEM
      I_STRUCTURE_NAME_HEADER        =
      I_STRUCTURE_NAME_ITEM          =
        is_keyinfo                     = TY_KEYINFO
      IS_PRINT                       =
      IS_REPREP_ID                   =
      I_BYPASSING_BUFFER             =
      I_BUFFER_ACTIVE                =
      IR_SALV_HIERSEQ_ADAPTER        =
      IT_EXCEPT_QINFO                =
      I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        =
      ES_EXIT_CAUSED_BY_USER         =
      tables
        t_outtab_header                = IT_FINALHDR
        t_outtab_item                  = IT_FINALTEM.
    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  RETRIEVE_VBAK
          text
    -->  p1        text
    <--  p2        text
    form RETRIEVE_VBAK .
    SELECT VBELN
           ERDAT
           ERZET
           ERNAM
           AUDAT
           LIFSK
           VDATU
           VSBED
           BSTNK
           BNAME
           AEDAT INTO TABLE IT_VBAK FROM VBAK WHERE VBELN IN S_VBELN AND
                                                    ERNAM IN S_ERNAM AND
                                                    AUDAT IN S_AUDAT AND
                                                    AUART IN S_AUART AND
                                                    LIFSK IN S_LIFSK AND
                                                    VKORG IN S_VKORG AND
                                                    VTWEG IN S_VTWEG AND
                                                    VSBED IN S_VSBED AND
                                                    VKGRP IN S_VKGRP AND
                                                    VKBUR IN S_VKBUR.
    IF SY-SUBRC NE 0.
       MESSAGE E099(ZMMCASE) WITH 'NO VBAK HDR DATA FOUND'.
    ENDIF.
    endform.                    " RETRIEVE_VBAK
    *&      Form  RETRIEVE_VBAP
          text
    -->  p1        text
    <--  p2        text
    form RETRIEVE_VBAP .
    SELECT VBELN
           MATNR
           CHARG
           PSTYV
           ABGRU
           MEINS
           VKAUS
           KWMENG
           LPRIO
           WERKS
           LGORT
           VSTEL
           ROUTE
           MVGR5 INTO TABLE IT_VBAP FROM VBAP
                      FOR ALL ENTRIES IN IT_VBAK
                      WHERE VBELN = IT_VBAK-VBELN AND
                            SPART IN S_SPART AND
                            LPRIO IN S_LPRIO.
    IF SY-SUBRC NE 0.
       MESSAGE E098(ZMMCASE) WITH 'NO DATA FOUND IN TABLE VBAP'.
    ENDIF.
    endform.                    " RETRIEVE_VBAP
    *&      Form  RETRIEVE_VBPA
          text
    -->  p1        text
    <--  p2        text
    form RETRIEVE_VBPA .
    SELECT VBELN
           KUNNR INTO TABLE IT_VBPA FROM VBPA
                      FOR ALL ENTRIES IN IT_VBAP
                      WHERE VBELN = IT_VBAP-VBELN1.
    IF SY-SUBRC NE 0.
       MESSAGE E097(ZMMCASE) WITH 'NO DATA FOUND IN TABLE VBPA'.
    ENDIF.
    endform.                    " RETRIEVE_VBPA
    *&      Form  RETRIEVE_KNA1
          text
    -->  p1        text
    <--  p2        text
    form RETRIEVE_KNA1 .
    SELECT KUNNR
           NAME1
           TELF1 INTO TABLE IT_KNA1 FROM KNA1
                      FOR ALL ENTRIES IN IT_VBPA
                      WHERE KUNNR = IT_VBPA-KUNNR.
    IF SY-SUBRC NE 0.
       MESSAGE E096(ZMMCASE) WITH 'NO DATA FOUND IN TABLE KNA1'.
    ENDIF.
    endform.                    " RETRIEVE_KNA1
    *&      Form  RETRIEVE_MAKT
          text
    -->  p1        text
    <--  p2        text
    form RETRIEVE_MAKT .
    SELECT MATNR
           MAKTX INTO TABLE IT_MAKT FROM MAKT
                      FOR ALL ENTRIES IN IT_VBAP
                      WHERE MATNR = IT_VBAP-MATNR.
    IF SY-SUBRC NE 0.
       MESSAGE E095(ZMMCASE) WITH 'NO DATA FOUND IN TABLE MAKT'.
    ENDIF.
    endform.                    " RETRIEVE_MAKT
    *&      Form  RETRIEVE_VBEP
          text
    -->  p1        text
    <--  p2        text
    form RETRIEVE_VBEP .
    SELECT VBELN
           ETENR
           WADAT INTO TABLE IT_VBEP FROM VBEP
                 FOR ALL ENTRIES IN IT_VBAP
                 WHERE VBELN = IT_VBAP-VBELN1 AND
                       EDATU IN S_EDATU AND
                       WADAT IN S_WADAT.
    IF SY-SUBRC NE 0.
       MESSAGE E094(ZMMCASE) WITH 'NO DATA FOUND IN TABLE VBEP'.
    ENDIF.
    endform.                    " RETRIEVE_VBEP
    *&      Form  RETRIEVE_VBUP
          text
    -->  p1        text
    <--  p2        text
    form RETRIEVE_VBUP .
    SELECT VBELN
           LFSTA
           GBSTA INTO TABLE IT_VBUP FROM VBUP
                 FOR ALL ENTRIES IN IT_VBAP
                 WHERE VBELN = IT_VBAP-VBELN1.
    IF SY-SUBRC NE 0.
       MESSAGE E093(ZMMCASE) WITH 'NO DATA FOUND IN TABLE VBUP'.
    ENDIF.
    endform.                    " RETRIEVE_VBUP
    *&      Form  RETRIEVE_VBUP1
          text
    -->  p1        text
    <--  p2        text
    form RETRIEVE_VBUP1 .
    SELECT A~VBELN
           A~LFSTA
           AGBSTA FROM VBUP AS A INNER JOIN VBAP AS B ON AVBELN = B~VBELN INTO TABLE IT_VBUP
                 FOR ALL ENTRIES IN IT_VBAP
                 WHERE A~VBELN = IT_VBAP-VBELN1 AND
                 GBSTA IN ('A','B').
    IF SY-SUBRC NE 0.
       MESSAGE E093(ZMMCASE) WITH 'NO DATA FOUND IN TABLE VBUP'.
    ENDIF.
    endform.                    " RETRIEVE_VBUP1

    Hi yes you can perform some action on that by useing that check boxes
    by creating some pushbuttons in SE41 PF-STATUS
    In order modify PF_STATUS of ALV grid report you need to perform the following steps:
    1. Update 'REUSE_ALV_GRID_DISPLAY' FM call to include:
    i_callback_pf_status_set = 'SET_PF_STATUS' statement.
    2. Create 'SET_PF_STATUS' FORM
    3. Create pf_status (i.e. 'ZNEWSTATUS').
    - It is recommend that you copy standard status'STANDARD' from function group SALV and modify it accordingly. ALV standard function codes always start with '&'.
    call function 'REUSE_ALV_GRID_DISPLAY'
    exporting
    i_callback_program = gd_repid
    i_callback_top_of_page = 'TOP-OF-PAGE'
    i_callback_pf_status_set = 'SET_PF_STATUS' "see FORM
    is_layout = gd_layout
    it_fieldcat = fieldcatalog[]
    i_save = 'X'
    tables
    t_outtab = it_ekko
    exceptions
    program_error = 1
    others = 2.
    FORM SET_PF_STATUS *
    FORM set_pf_status USING rt_extab TYPE slis_t_extab.
    SET PF-STATUS 'ZNEWSTATUS'.
    "Copy of 'STANDARD' pf_status from fgroup SALV
    ENDFORM.
    exmple2
    This example shows how to use checkboxes within an ALV Grid Control. You learn:
    (1) how to define a column for editable checkboxes for an attribute of your list
    (2) how to evaluate the checked checkboxes
    (3) how to switch between editable and non-editable checkboxes
    program bcalv_edit_05.
    Purpose:
    ~~~~~~~~
    This example shows how to use checkboxes within an ALV Grid Control.
    You learn:
    o how to define a column for editable checkboxes for an attribute
       of your list (see also remark below)
    o how to evaluate the checked checkboxes
    o how to switch between editable and non-editable checkboxes
    Important Remark
    ~~~~~~~~~~~~~~~~
    The checkbox functionality has been replaced by selection buttons
    in front of each row (field SEL_MODE of the layout structure
    set to 'A' or 'D'; when using the editable ALV Grid Control,
    these selection buttons are always visible).
    Class methods like GET_SELECTED_ROWS work only for this new
    functionality and not for checkboxes.
    Thus checkboxes should not be used for line selection but for
    a column as an additional or for an already existing attribute
    (like field SMOKER in SBOOK).
    To check program behavior
    ~~~~~~~~~~~~~~~~~~~~~~~~~
    Try out the functions displayed in the application toolbar:
    o The first sets all checked lines to initial values.
      (see form reset_selected_entries)
    o The seconds marks all checkboxes that are input enabled
    o The third unmarks all checkboxes that are input enabled
    o To try the forth, you have to select a line first using
      the selection buttons on the left.
      The function deactivates/activates a checkbox.
    Checkboxes may be locked/unlocked using a double click on the
    checkbox cell.
    Essential steps (search for '§')
    ~~~~~~~~~~~~~~~
    This example focusses on two aspects of checkboxes in an
    editable ALV Grid Control:
    A How to integrate, set, reset and evaluate checkboxes
    B What you must do to lock particular checkboxes against input
    A) Integrate, set, reset and evaluate checkboxes
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    A1.Extend your output table by a checkbox field.
    A2.Add an entry for the checkbox in the fieldcatalog
    A3.Optionally, check checkboxes initially after selecting data.
    A4.Before you (a)set, (b)reset, (c)(de)activate or
       (d)evaluate checkboxes, you must check the input cells.
    B) Lock particular checkboxes against input
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    B1.Extend your output table by a field to dis- or enable
        cells for input.
    B2.After selecting data,
        assign a style for each row of your checkbox column.
    B3.Use the layout structure to aquaint additional field to ALV.
    B4.Switch the style to dis- or enable a cell for input
    class lcl_event_receiver definition deferred.  "for event handling
    data: ok_code like sy-ucomm,
          save_ok like sy-ucomm,
          g_container type scrfname value 'BCALV_GRID_DEMO_0100_CONT1',
          g_grid  type ref to cl_gui_alv_grid,
          g_custom_container type ref to cl_gui_custom_container,
          g_event_receiver type ref to lcl_event_receiver,
          gt_fieldcat type lvc_t_fcat,
          gs_layout type lvc_s_layo,
          g_max type i value 100.
    *§A1.Extend your output table by a checkbox field.
        If you do not want to lock sole checkboxes against input
        you do not need field 'celltab'.
    types: begin of gs_outtab.
    types: checkbox type c.                "field for checkbox
    §B1.Extend your output table by a field to dis- or enable
        cells for input.
    types: celltab type lvc_t_styl.        "field to switch editability
            include structure sflight.
    types: end of gs_outtab.
    data: gt_outtab type gs_outtab occurs 0 with header line.
    LOCAL CLASSES
    This local class only handles event DOUBLE_CLICK.
    Wenn the user double clicks on a checkbox cell the status of
    this cell is switched from editable to not editable and vice versa.
    class lcl_event_receiver definition.
    public section.
    methods: catch_doubleclick
             for event double_click of cl_gui_alv_grid
             importing
                e_column
                es_row_no
                sender.
    endclass.
    class lcl_event_receiver implementation.
    method catch_doubleclick.
      data: ls_outtab type gs_outtab,
            ls_celltab type lvc_s_styl.
    Function:
    Switch between 'editable' and 'not editable' checkbox.
    If the user clicked on another column there is
    nothing to do.
      if e_column-fieldname ne 'CHECKBOX'.
        exit.
      endif.
      read table gt_outtab into ls_outtab index es_row_no-row_id.
    The loop is only needed if there are other columns that
    use checkboxes. At this point the loop could be
    replaced by a READ of the first line of CELLTAB.
          loop at ls_outtab-celltab into ls_celltab.
            if ls_celltab-fieldname eq 'CHECKBOX'.
    §B4.Switch the style to dis- or enable a cell for input
             if ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
              ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
             else.
              ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
             endif.
             modify ls_outtab-celltab from ls_celltab.
            endif.
          endloop.
          modify gt_outtab from ls_outtab index es_row_no-row_id.
        call method sender->refresh_table_display.
    endmethod.
    endclass.
          MAIN                                                          *
    end-of-selection.
      call screen 100.
          MODULE PBO OUTPUT                                             *
    module pbo output.
      set pf-status 'MAIN100'.
      set titlebar 'MAIN100'.
      if g_custom_container is initial.
        perform create_and_init_alv.
      endif.
    endmodule.
          MODULE PAI INPUT                                              *
    module pai input.
      save_ok = ok_code.
      clear ok_code.
      case save_ok.
        when 'EXIT'.
          perform exit_program.
        when 'SELECT'.
          perform select_all_entries changing gt_outtab[].
        when 'DESELECT'.
          perform deselect_all_entries changing gt_outtab[].
        when 'RESET'.
          perform reset_selected_entries changing gt_outtab[].
        when 'SWITCH'.
          perform switch_activation changing gt_outtab[].
      endcase.
    endmodule.
          FORM EXIT_PROGRAM                                             *
    form exit_program.
      leave program.
    endform.
    *&      Form  BUILD_FIELDCAT
          text
         <--P_GT_FIELDCAT  text
    form build_fieldcat changing pt_fieldcat type lvc_t_fcat.
      data ls_fcat type lvc_s_fcat.
      call function 'LVC_FIELDCATALOG_MERGE'
           exporting
                i_structure_name = 'SFLIGHT'
           changing
                ct_fieldcat      = pt_fieldcat.
    *§A2.Add an entry for the checkbox in the fieldcatalog
      clear ls_fcat.
      ls_fcat-fieldname = 'CHECKBOX'.
    Essential: declare field as checkbox and
               mark it as editable field:
      ls_fcat-checkbox = 'X'.
      ls_fcat-edit = 'X'.
    do not forget to provide texts for this extra field
      ls_fcat-coltext = text-f01.
      ls_fcat-tooltip = text-f02.
      ls_fcat-seltext = text-f03.
    optional: set column width
      ls_fcat-outputlen = 10.
      append ls_fcat to pt_fieldcat.
    endform.
    *&      Form  CREATE_AND_INIT_ALV
          text
         <--P_GT_OUTTAB  text
         <--P_GT_FIELDCAT  text
         <--P_GS_LAYOUT  text
    form create_and_init_alv.
      data: lt_exclude type ui_functions.
      create object g_custom_container
             exporting container_name = g_container.
      create object g_grid
             exporting i_parent = g_custom_container.
      perform build_fieldcat changing gt_fieldcat.
    Exclude all edit functions in this example since we do not need them:
      perform exclude_tb_functions changing lt_exclude.
      perform build_data.
    *§ B3.Use the layout structure to aquaint additional field to ALV.
      gs_layout-stylefname = 'CELLTAB'.
      call method g_grid->set_table_for_first_display
           exporting is_layout             = gs_layout
                     it_toolbar_excluding  = lt_exclude
           changing  it_fieldcatalog       = gt_fieldcat
                     it_outtab             = gt_outtab[].
      create object g_event_receiver.
      set handler g_event_receiver->catch_doubleclick for g_grid.
    Set editable cells to ready for input initially
      call method g_grid->set_ready_for_input
       exporting
        i_ready_for_input = 1.
    endform.                               "CREATE_AND_INIT_ALV
    *&      Form  EXCLUDE_TB_FUNCTIONS
          text
         <--P_LT_EXCLUDE  text
    form exclude_tb_functions changing pt_exclude type ui_functions.
      data ls_exclude type ui_func.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
      append ls_exclude to pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row.
      append ls_exclude to pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.
      append ls_exclude to pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.
      append ls_exclude to pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_move_row.
      append ls_exclude to pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy.
      append ls_exclude to pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_cut.
      append ls_exclude to pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste.
      append ls_exclude to pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste_new_row.
      append ls_exclude to pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo.
      append ls_exclude to pt_exclude.
    endform.                               " EXCLUDE_TB_FUNCTIONS
    *&      Form  build_data
          text
    -->  p1        text
    <--  p2        text
    form build_data.
      data: lt_sflight type table of sflight,
            ls_sflight type sflight,
            ls_celltab type lvc_s_styl,
            lt_celltab type lvc_t_styl,
            l_index type i.
      select * from sflight into table lt_sflight up to g_max rows.
      if sy-subrc ne 0.
    generate own entries if db-table is empty so that this example
    still works
        perform generate_entries changing lt_sflight.
      endif.
    *§A3.Optionally, check checkboxes initially after selecting data.
    (Omitted in this example)
      loop at lt_sflight into ls_sflight.
        move-corresponding ls_sflight to gt_outtab.
      if gt_outtab-connid eq '400'.
        gt_outtab-checkbox = 'X'.
      endif.
        append gt_outtab.
      endloop.
    §B2.After selecting data,
       assign a style for each row of your checkbox column.
    Initially, set all checkbox cells editable.
      ls_celltab-fieldname = 'CHECKBOX'.
      ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
      loop at gt_outtab.
        l_index = sy-tabix.
        refresh lt_celltab.
        ls_celltab-fieldname = 'CHECKBOX'.
        ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
        insert ls_celltab into table lt_celltab.
        insert lines of lt_celltab into table gt_outtab-celltab.
        modify gt_outtab index l_index.
      endloop.
    endform.                               " build_data
    *&      Form  generate_entries
          text
         <--P_LT_SLFIGHT  text
    form generate_entries changing pt_slfight type standard table.
    This form is only needed for the case that there is no
    data in database table SFLIGHT.
      data: ls_sflight type sflight,
            l_month(2) type c,
            l_day(2) type c,
            l_date(8) type c.
      ls_sflight-carrid = 'LH'.
      ls_sflight-connid = '0400'.
      ls_sflight-currency = 'DEM'.
      ls_sflight-planetype = '747-400'.
      ls_sflight-seatsmax = 660.
      do 110 times.
        ls_sflight-price = sy-index * 100.
        ls_sflight-seatsocc = 660 - sy-index * 6.
        ls_sflight-paymentsum = ls_sflight-seatsocc * ls_sflight-price.
        l_month = sy-index / 10 + 1.
        do 2 times.
          l_day = l_month + sy-index * 2.
          l_date+0(4) = '2000'.
          l_date4(2) = l_month0(2).
          l_date6(2) = l_day0(2).
          ls_sflight-fldate = l_date.
          append ls_sflight to pt_slfight.
        enddo.
      enddo.
    endform.                               " generate_entries
    *&      Form  select_all_entries
          text
         <--P_GT_OUTTAB  text
    form select_all_entries changing pt_outtab type standard table.
      data: ls_outtab type gs_outtab.
      data: l_valid type c,
            l_locked type c.
    *§A4ad. Before you (a)set, reset or (d)evaluate checkboxes,
          you must check the input cells.
    If all entries are ok, ALV transferes new values to the output
    table which you then can modify.
      call method g_grid->check_changed_data
                  importing
                     e_valid = l_valid.
      if l_valid eq 'X'.
        loop at pt_outtab into ls_outtab.
          perform check_lock using    ls_outtab
                             changing l_locked.
          if l_locked is initial
             and not ls_outtab-checkbox eq '-'.
            ls_outtab-checkbox = 'X'.
          endif.
          modify pt_outtab from ls_outtab.
        endloop.
        call method g_grid->refresh_table_display.
      endif.
    endform.                               " select_all_entries
    *&      Form  deselect_all_entries
          text
         <--P_GT_OUTTAB[]  text
    form deselect_all_entries changing pt_outtab type standard table.
      data: ls_outtab type gs_outtab.
      data: l_valid type c,
            l_locked type c.
    *§A4ad. Before you (a)set, reset or (d)evaluate checkboxes,
          you must check the input cells.
    If all entries are ok, ALV transferes new values to the output
    table which you then can modify.
      call method g_grid->check_changed_data
                  importing
                     e_valid = l_valid.
      if l_valid eq 'X'.
        loop at pt_outtab into ls_outtab.
          perform check_lock using    ls_outtab
                           changing l_locked.
          if l_locked is initial
             and not ls_outtab-checkbox eq '-'.
            ls_outtab-checkbox = ' '.
          endif.
          modify pt_outtab from ls_outtab.
        endloop.
        call method g_grid->refresh_table_display.
      endif.
    endform.                               " deselect_all_entries
    *&      Form  reset_selected_entries
          text
         <--P_GT_OUTTAB[]  text
    form reset_selected_entries changing pt_outtab type standard table.
      data: ls_outtab type gs_outtab.
      data: l_valid type c.
    *§A4b. Before you set, (b)reset or evaluate checkboxes,
         you must check the input cells.
    If all entries are ok, ALV transferes new values to the output
    table which you then can modify.
      call method g_grid->check_changed_data
                  importing
                     e_valid = l_valid.
      if l_valid eq 'X'.
        loop at pt_outtab into ls_outtab.
          if     not ls_outtab-checkbox is initial
             and not ls_outtab-checkbox eq '-'.
            clear ls_outtab.
            modify pt_outtab from ls_outtab.
          endif.
        endloop.
        call method g_grid->refresh_table_display.
      endif.
    endform.                               " reset_selected_entries
    form switch_activation changing pt_outtab type standard table.
      data: ls_outtab type gs_outtab.
      data: l_valid type c,
            lt_row_no type lvc_t_roid with header line.
    *§A4c. Before you set, reset, (c)(de)activate
         or evaluate checkboxes, you must check the input cells.
    If all entries are ok, ALV transferes new values to the output
    table which you then can modify.
      call method g_grid->check_changed_data
                  importing
                     e_valid = l_valid.
      if l_valid eq 'X'.
        call method g_grid->get_selected_rows
          importing
             et_row_no     = lt_row_no[].
        loop at lt_row_no.
           read table pt_outtab into ls_outtab index lt_row_no-row_id.
           if ls_outtab-checkbox ne '-'.
             ls_outtab-checkbox = '-'.
           else.
             ls_outtab-checkbox = ' '.
           endif.
           modify pt_outtab from ls_outtab index lt_row_no-row_id.
        endloop.
        call method g_grid->refresh_table_display.
      endif.
    endform.                               " switch_activation
    *&      Form  check_lock
          text
         -->P_LS_OUTTAB  text
         <--P_L_LOCKED  text
    form check_lock using    ps_outtab type gs_outtab
                    changing p_locked.
      data ls_celltab type lvc_s_styl.
      loop at ps_outtab-celltab into ls_celltab.
        if ls_celltab-fieldname = 'CHECKBOX'.
          if ls_celltab-style eq cl_gui_alv_grid=>mc_style_disabled.
            p_locked = 'X'.
          else.
            p_locked = space.
          endif.
        endif.
      endloop.
    endform.                               " check_lock

  • Capturing check box value into internal table

    Hi all,
    I am displaying the output including check box through following internal table.
    The checkbox is displayed before every record.
      <b>LOOP AT it_qals.
        WRITE:/  it_qals-t_val  AS CHECKBOX,
               5 it_qals-werk,
              12 it_qals-prueflos,
              30 it_qals-matnr,
              50 it_qals-charg,
              62 it_qals-lagortchrg.
        hide: it_qals .
      ENDLOOP.</b>
    I selected some of the records through check the checkboxes. when i click the <b>PUSHBUTTON TRANSFER</b>, those selected records only should transfer. i don't know how to modify the internal table with latest checkbox values. Initially checkbox values are blank.
    Is there any solution except Function Module.
    i would appreciate an earlier reply.
    Regards
    Prabhu

    Hello,
    Create one more table and transfer your entries into new table.
    I have attached my code for you.
    Regards,
    Naimesh
    REPORT ZTEST_NP NO STANDARD PAGE HEADING.
    TABLES: MARA, MAKT.
    DATA: BEGIN OF IT_MARA OCCURS 0,
          MATNR LIKE MARA-MATNR,
          MAKTX LIKE MAKT-MAKTX,
          SEL,
          END   OF IT_MARA.
    DATA: IT_MARA1 LIKE IT_MARA OCCURS 0 WITH HEADER LINE.
    START-OF-SELECTION.
      SET PF-STATUS 'ZTEST'.
      PERFORM GET_DATA.
      PERFORM WRITE_DATA.
    TOP-OF-PAGE.
      PERFORM HEADER.
    AT USER-COMMAND.
      CASE SY-UCOMM.
      WHEN 'SELECT'.
        PERFORM GET_DATA_SELECTED.
        PERFORM WRITE_DATA_SELE.
      WHEN 'SELALL'.
        PERFORM SELECT_ALL.
        SY-LSIND = 0.
        PERFORM HEADER.
        PERFORM WRITE_DATA.
      WHEN 'DESEL'.
        PERFORM DESELECT_ALL.
        SY-LSIND = 0.
        PERFORM HEADER.
        PERFORM WRITE_DATA.
      ENDCASE.
    *&      Form  GET_DATA
    FORM GET_DATA.
      SELECT MATNR
             INTO TABLE IT_MARA
             FROM MARA
             WHERE MATNR LIKE 'IN10020%'.
      LOOP AT IT_MARA.
        SELECT SINGLE MAKTX
               INTO   IT_MARA-MAKTX
               FROM   MAKT
               WHERE  MATNR = IT_MARA-MATNR
               AND    SPRAS = SY-LANGU.
        MODIFY IT_MARA.
        CLEAR  IT_MARA.
      ENDLOOP.
    ENDFORM.                    " GET_DATA
    *&      Form  WRITE_DATA
    FORM WRITE_DATA.
      ULINE /(50).
      LOOP AT IT_MARA.
        WRITE: / '|' NO-GAP,   IT_MARA-SEL AS CHECKBOX NO-GAP,
                 '|' NO-GAP, (10) IT_MARA-MATNR NO-GAP,
                 '|' NO-GAP, (35) IT_MARA-MAKTX NO-GAP,
                 '|' NO-GAP.
      ENDLOOP.
      ULINE /(50).
    ENDFORM.                    " WRITE_DATA
    *&      Form  HEADER
    FORM HEADER.
      ULINE /(50).
      WRITE: / '|' NO-GAP, (1) ' ' NO-GAP,
               '|' NO-GAP, (10) 'Material'    NO-GAP,
               '|' NO-GAP, (35) 'Description' NO-GAP,
               '|' NO-GAP.
    ENDFORM.                    " HEADER
    *&      Form  GET_DATA_SELECTED
    FORM GET_DATA_SELECTED.
      DATA:  L_CNT TYPE I.
      DO.
        L_CNT = L_CNT + 1.
        READ LINE L_CNT FIELD VALUE IT_MARA-MATNR INTO IT_MARA1-MATNR
                                    IT_MARA-MAKTX INTO IT_MARA1-MAKTX
                                    IT_MARA-SEL   INTO IT_MARA1-SEL.
        IF SY-SUBRC = 0.
          IF IT_MARA1-SEL = 'X'.
            APPEND IT_MARA1.
            CLEAR  IT_MARA1.
          ENDIF.
        ELSE.
          EXIT.
        ENDIF.
      ENDDO.
    ENDFORM.                    " GET_DATA_SELECTED
    *&      Form  WRITE_DATA_SELE
    FORM WRITE_DATA_SELE.
      PERFORM HEADER.
      ULINE /(50).
      LOOP AT IT_MARA1.
        WRITE: / '|' NO-GAP,   IT_MARA1-SEL AS CHECKBOX,
                 '|' NO-GAP, (10) IT_MARA1-MATNR NO-GAP,
                 '|' NO-GAP, (35) IT_MARA1-MAKTX NO-GAP,
                 '|' NO-GAP.
      ENDLOOP.
      ULINE /(50).
    ENDFORM.                    " WRITE_DATA_SELE
    *&      Form  SELECT_ALL
    FORM SELECT_ALL.
      LOOP AT IT_MARA.
        IT_MARA-SEL = 'X'.
        MODIFY IT_MARA.
        CLEAR  IT_MARA.
      ENDLOOP.
    ENDFORM.                    " SELECT_ALL
    *&      Form  DESELECT_ALL
    FORM DESELECT_ALL.
      LOOP AT IT_MARA.
        IT_MARA-SEL = ' '.
        MODIFY IT_MARA.
        CLEAR  IT_MARA.
      ENDLOOP.
    ENDFORM.                    " DESELECT_ALL

  • Check box in ALV BLOCK List

    Hi All,
    iam Using ALV BLOCK list to print the output along with check boxes, iam able to print the output along with the check boxes but when i select any of the check box and click button on application tool bar it is going to dump  and saying,
    FIELD SYMBOL HAS NOT YET BEEN ASSIGNED.
    i populated layout with following fields.
      w_layout-box_fieldname = 'BOX'.
      w_layout-box_tabname = 'T_FINAL2'.
    Plz Help me out.
    Thanks in Advance.
    Neha

    *& Report  BCALV_TEST_BLOCK_LIST
    report  bcalv_test_block_list.
    types: g_ty_t_carrid  type standard table of alv_tab,
           g_ty_t_connid  type standard table of alv_chck,
           g_ty_t_curr    type standard table of alv_cur,
           g_ty_s_sflight type alv_t_t2,
           g_ty_s_carrid  type alv_tab,
           g_ty_s_connid  type alv_chck,
           g_ty_s_curr    type alv_cur.
    constants: con_sflight type lvc_fname value 'ALV_T_T2',
               con_scarr   type lvc_fname value 'ALV_TAB',
               con_spfli   type lvc_fname value 'ALV_CHCK',
               con_scurx   type lvc_fname value 'ALV_CUR',
               con_event_01 type lvc_fname value 'PF_STATUS_SET',
               con_event_02 type lvc_fname value 'USER_COMMAND',
               con_event_03 type lvc_fname value 'CALLER_EXIT',
               con_event_04 type lvc_fname value 'LIST_MODIFY',
               con_event_05 type lvc_fname value 'BEFORE_LINE_OUTPUT',
               con_event_06 type lvc_fname value 'AFTER_LINE_OUTPUT',
               con_event_07 type lvc_fname value 'SUBTOTAL_TEXT',
               con_event_08 type lvc_fname value 'REPREP_MODIFY',
               con_event_09 type lvc_fname value 'TOP_OF_PAGE',
               con_event_10 type lvc_fname value 'END_OF_PAGE',
               con_event_11 type lvc_fname value 'TOP_OF_LIST',
               con_event_12 type lvc_fname value 'END_OF_LIST',
               con_event_13 type lvc_fname value 'TOP_OF_COVERPAGE',
               con_event_14 type lvc_fname value 'END_OF_COVERPAGE',
               con_event_15 type lvc_fname value 'TOP_OF_FOREIGN_PAGE',
               con_event_16 type lvc_fname value 'END_OF_FOREIGN_PAGE',
               con_event_17 type lvc_fname value 'GROUPLEVEL_CHANGE'.
    DATA                                                                 *
    tables: sscrfields.   " for processing the FCODEs in Selektion screens
    include <icon>.
    include <symbol>.
    type-pools: slis, kkblo.
    types: g_ty_t_icon  type standard table of icon,
           g_ty_t_icont type standard table of icont,
           begin of g_ty_s_plane,
             carrid    type g_ty_s_sflight-carrid,
             connid    type g_ty_s_sflight-connid,
             planetype type g_ty_s_sflight-planetype,
             seatsmax  type g_ty_s_sflight-seatsmax,
           end   of g_ty_s_plane,
           g_ty_t_plane type sorted table of g_ty_s_plane
                             with unique key carrid connid,
           begin of g_ty_s_fcat_curr,
             fieldname  type lvc_fname,
             cfieldname type lvc_fname,
             currency   type lvc_s_fcat-currency,
           end   of g_ty_s_fcat_curr,
           g_ty_t_fcat_curr type sorted table of g_ty_s_fcat_curr
                                 with unique key fieldname,
           begin of g_ty_s_sort.
    include type slis_sortinfo_alv.
    types: end   of g_ty_s_sort,
           g_ty_t_sort type sorted table of g_ty_s_sort
                            with unique key spos fieldname,
           begin of g_ty_s_test,
             list_amount              type num1,
             select_amount            type i,
             only_db_info             type char1,
             db_short                 type char1,
             excp_display             type char1,
             excp_condense            type char1,
             layo_title               type lvc_s_layo-grid_title,
             layo_zebra               type char1,
             layo_no_vert_lines       type char1,
             layo_no_horiz_lines      type char1,
             layo_cell_merge          type char1,
             layo_count               type char1,
             layo_box                 type char1,
             layo_no_colhead          type char1,
             layo_column_optimize     type char1,
             layo_keys_hotspot        type char1,
             layo_no_keyfix           type char1,
             layo_no_hotspot          type char1,
             layo_hotspot_rows        type i occurs 0,
             layo_hotspot_columns     type lvc_fname occurs 0,
             layo_no_scrolling        type char1,
             layo_no_authcheck        type char1,
             layo_no_min_linesize     type char1,
             layo_min_linesize        type sylinsz,
             layo_max_linesize        type sylinsz,
             layo_group_change_edit   type char1,
             layo_get_selinfo         type char1,
             layo_confirmation_prompt type char1,
             layo_f2code              type syucomm,
             layo_reprep              type char1,
             sum_before               type char1,
             sum_no_sumline           type char1,
             sum_no_sumchoice         type char1,
             sum_numc                 type char1,
             sum_no_unitsplit         type char1,
             sum_totals_only          type char1,
             sum_totals_text          type symsgli,
             sum_no_subtotals         type char1,
             sum_no_subchoice         type char1,
             sum_subtotals_text       type symsgli,
             prnt_print               type char1,
             prnt_reserve_lines       type lvc_s_prnt-reservelns,
             prnt_no_listinfo         type char1,
             prnt_no_selinfo          type char1,
             prnt_with_title          type char1,
             prnt_footline            type lvc_s_prnt-footline,
             prnt_printinfo           type char1,
             prnt_no_coverpage        type char1,
             prnt_no_new_page         type char1,
             prnt_no_change_print_params type char1,
             color_rows               type i occurs 0,
             color_fields_column      type lvc_fname occurs 0,
             color_fields_cell        type lvc_fname occurs 0,
             fcat_no_out_fields       type lvc_fname occurs 0,
             fcat_tech_fields         type lvc_fname occurs 0,
             fcat_fix_column_fields   type lvc_fname occurs 0,
             fcat_do_sum_fields       type lvc_fname occurs 0,
             fcat_no_sum_fields       type lvc_fname occurs 0,
             fcat_curr_fields         type g_ty_t_fcat_curr,
             curr_amount              type i,
             curr_space               type char1,
             t_sort                   type g_ty_t_sort,
             no_info_popup            type char1,
             info_popup_once          type char1,
             events_info_popup        type lvc_fname occurs 0,
             events                   type lvc_fname occurs 0,
             buffer_active            type char1,
             bypassing_buffer         type char1,
           end   of g_ty_s_test,
           begin of g_ty_s_outtab.
    include type g_ty_s_sflight.
    types:   list                 type num1,
             box                  type char1,
             count                type i,
             lights               type char1,
             checkbox             type char1,
             hotspot              type char1,
             color(4)             type c,
             tabcolor             type slis_t_specialcol_alv,
             price2               type g_ty_s_sflight-price,
             currency2            type g_ty_s_sflight-currency,
             char(10)             type c,
             string               type string,
             int1                 type int1,
             int2                 type int2,
             int4                 type int4,
             numc(10)             type n,
             dec(10)              type p decimals 2,
             fltp                 type f,
             dats                 type d,
             tims                 type t,
             icon                 type icon-id,
             icon_qinfo           type icon-name,
             symbol               type icon-id,
           end   of g_ty_s_outtab,
           g_ty_t_outtab type table of g_ty_s_outtab.
    constants: con_true         type char1 value 'X',
               con_ok   type sy-ucomm value 'OK',
               con_exit type sy-ucomm value 'EXIT',
               con_canc type sy-ucomm value 'CANC',
               con_back type sy-ucomm value 'BACK'.
    data: gt_outtab1 type g_ty_t_outtab,
          gt_outtab2 type g_ty_t_outtab,
          gt_outtab3 type g_ty_t_outtab,
          gt_outtab4 type g_ty_t_outtab,
          gt_outtab5 type g_ty_t_outtab,
          gt_outtab6 type g_ty_t_outtab,
          gt_outtab7 type g_ty_t_outtab,
          gt_outtab8 type g_ty_t_outtab,
          gt_outtab9 type g_ty_t_outtab.
    data: gt_outtab   type g_ty_t_outtab with header line,
          gs_test     type g_ty_s_test.
    data: g_repid     type sy-repid.
    data: g_field     type lvc_s_fcat-fieldname,
          g_int_field type i.
          CLASS random DEFINITION
    class random definition.
      public section.
        types:
          value(16) type p decimals 0,
          numcv(15) type n.
        constants:
          max type random=>value value 4294967295.
        class-methods:
      computes a random natural number from the set {0, ..., random=>max}.
          number returning value(rval) type random=>value,
      computes a random character from the set {A-Za-z0-9}
          c returning value(rval) type char01,
      computes a random string consisting of "len" random characters
          string importing len type i
                 returning value(rval) type string,
      computes a date
          dats returning value(rval) type d,
      computes a time
          time returning value(rval) type t,
      computes a random numc from the set {low, ..., high}
          numc importing low type random=>numcv high type random=>numcv
            returning value(rval) type random=>numcv,
      computes a random integer from the set {low, ..., high}
          i importing low type i high type i
            returning value(rval) type i,
      computes a random integer from the set {low, ..., high}
          int2 importing low type int2 high type int2
               returning value(rval) type int2,
      computes a random integer from the set {low, ..., high}
          int1 importing low type int1 high type int1
               returning value(rval) type int1,
      computes a random float from the interval [low ; high]
          f importing low type f high type f
            returning value(rval) type f,
      computes a random character from the set {A-F0-9}
          hex returning value(rval) type char01,
      computes a random character from the set {0-1}
          x returning value(rval) type char01,
      method "random=>class_constructor"
          class_constructor.
      private section.
        class-data:
      precomputed maximal index (= string length - 1) of "random=>chars"
      or of "random=>x_data".
          charsmax type i,
          xmax type i,
      random number seed value.
      (Used in method "random=>number".)
          seed type random=>value.
        constants:
      characters for class-method "random=>hex"
          hex_data(100) type c value 'ABCDEF' &
                                     '0123456789',
      characters for class-method "random=>x"
          x_data(100) type c value '01',
      characters for class-metshod "random=>c"
          chars(100) type c value 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' &
                                  'abcdefghijklmnopqrstuvwxyz' &
                                  '0123456789'.
    endclass.                    "random DEFINITION
          CLASS random IMPLEMENTATION
    class random implementation.
    implementation of the methods for randomizing the values
      method x.
        data: ri type i.
        ri = random=>i( low = 0  high = random=>xmax ).
        move x_data+ri(1) to rval.
      endmethod.                    "x
      method hex.
        data: ri type i.
        ri = random=>i( low = 0  high = random=>charsmax ).
        move hex_data+ri(1) to rval.
      endmethod.                    "hex
      method number.
        constants:
          a(3) type p  value 67301,        " Coefficient
          c(1) type p  value 1,            " Increment
          m(6) type p  value 4294967296.   " Modulus 2**32
        random=>seed = ( a * random=>seed + c ) mod m.
        rval = random=>seed.
      endmethod.                    "number
      method c.
        data:
          ri type i.
        ri = random=>i( low = 0  high = random=>charsmax ).
        move chars+ri(1) to rval.
      endmethod.                    "c
      method string.
        data:
          char(1) type c.
        clear rval.
        do len times.
          char = random=>c( ).
          concatenate rval char into rval.
        enddo.
      endmethod.                    "string
      method dats.
        data: l_date      type sy-datum,
              l_day(2)    type n,
              l_month(2)  type n,
              l_year(4)   type n,
              l_value     type random=>numcv,
              l_low       type random=>numcv,
              l_high      type random=>numcv.
        l_year  = sy-datum+0(4).
        l_low   = l_year - 5.
        l_high  = l_year + 5.
        l_value = random=>numc( low = l_low high = l_high ).
        l_year  = l_value+11(4).
        l_value = random=>numc( low = 1 high = 12 ).
        l_month = l_value+13(2).
        case l_month.
          when 2.
            l_high = 28.
          when 4 or 6 or 9 or 11.
            l_high = 30.
          when others.
            l_high = 31.
        endcase.
        l_value = random=>numc( low = 1 high = l_high ).
        l_day   = l_value+13(2).
        l_date+0(4) = l_year.
        l_date+4(2) = l_month.
        l_date+6(2) = l_day.
        rval = l_date.
      endmethod.                    "dats
      method time.
        data: l_time      type t,
              l_hour(2)   type n,
              l_min(2)    type n,
              l_sec(2)    type n,
              l_value     type random=>numcv.
        l_value = random=>numc( low = 0 high = 60 ).
        l_sec   = l_value+13(2).
        l_value = random=>numc( low = 0 high = 60 ).
        l_min   = l_value+13(2).
        l_value = random=>numc( low = 1 high = 24 ).
        l_hour  = l_value+13(2).
        l_time+0(2) = l_hour.
        l_time+2(2) = l_min.
        l_time+4(2) = l_sec.
        rval = l_time.
      endmethod. "time
      method numc.
      Go from {0,...,random=>max} to {low,...,high} with ABAP rounding
        data: l_dec(16)   type p,
              l_char(16)  type c.
        l_dec = ( ( high - low + 1 ) * random=>number( ) ) / random=>max
               + '0.5'.
        subtract 1 from l_dec.
        add low to l_dec.
        data: lr_type_descr  type ref to cl_abap_typedescr,
              lr_elem_descr  type ref to cl_abap_elemdescr.
        lr_type_descr =
                 cl_abap_typedescr=>describe_by_data( rval ).
        lr_elem_descr ?= lr_type_descr.
        l_char = l_dec.
        shift l_char left deleting leading space.
        rval = l_char+0(lr_elem_descr->output_length).
      endmethod.                    "i
      method i.
      Go from {0,...,random=>max} to {low,...,high} with ABAP rounding
        data: l_dec(16)   type p,
              l_char(16)  type c.
        l_dec = ( ( high - low + 1 ) * random=>number( ) ) / random=>max
               + '0.5'.
        subtract 1 from l_dec.
        add low to l_dec.
        data: lr_type_descr  type ref to cl_abap_typedescr,
              lr_elem_descr  type ref to cl_abap_elemdescr.
        lr_type_descr =
                 cl_abap_typedescr=>describe_by_data( rval ).
        lr_elem_descr ?= lr_type_descr.
        l_char = l_dec.
        shift l_char left deleting leading space.
        rval = l_char+0(lr_elem_descr->output_length).
      endmethod.                    "i
      method int2.
      Go from {0,...,random=>max} to {low,...,high} with ABAP rounding
        data: l_dec(16)   type p,
              l_char(16)  type c.
        l_dec = ( ( high - low + 1 ) * random=>number( ) ) / random=>max
               + '0.5'.
        subtract 1 from l_dec.
        add low to l_dec.
        data: lr_type_descr  type ref to cl_abap_typedescr,
              lr_elem_descr  type ref to cl_abap_elemdescr.
        lr_type_descr =
                 cl_abap_typedescr=>describe_by_data( rval ).
        lr_elem_descr ?= lr_type_descr.
        l_char = l_dec.
        shift l_char left deleting leading space.
        rval = l_char+0(lr_elem_descr->output_length).
      endmethod.                    "i
      method int1.
      Go from {0,...,random=>max} to {low,...,high} with ABAP rounding
        data: l_dec(16)   type p,
              l_char(16)  type c.
        l_dec = ( ( high - low + 1 ) * random=>number( ) ) / random=>max
               + '0.5'.
        subtract 1 from l_dec.
        add low to l_dec.
        data: lr_type_descr  type ref to cl_abap_typedescr,
              lr_elem_descr  type ref to cl_abap_elemdescr.
        lr_type_descr =
                 cl_abap_typedescr=>describe_by_data( rval ).
        lr_elem_descr ?= lr_type_descr.
        l_char = l_dec.
        shift l_char left deleting leading space.
        rval = l_char+0(lr_elem_descr->output_length).
      endmethod.                    "i
      method f.
      Go from {0,...,random=>max} to [low;high]
        rval = ( ( high - low ) * random=>number( ) ) / random=>max
               + low.
      endmethod.                    "f
      method class_constructor.
        charsmax = strlen( chars ) - 1.
        xmax = strlen( x_data ) - 1.
        seed = 1.
      endmethod.                    "class_constructor
    endclass.                    "random IMPLEMENTATION
    SELECTION-SCREEN                                                     *
    selection-screen begin of block gen with frame.
    parameters:
    p_amount type i default 30,
    p_dbinfo as checkbox,
    p_dbshrt as checkbox.
    selection-screen end of block gen.
    parameters:
    p_list type num1 default 3.
    selection-screen begin of block tit with frame title text-tit.
    parameters:
    p_tit01 type lvc_s_layo-grid_title default text-p01. "TITLE
    selection-screen end of block tit.
    selection-screen begin of block lay with frame title text-lay.
    parameters:
    p_lay01 as checkbox. "ZEBRA
    selection-screen skip.
    parameters:
    p_lay02 as checkbox, "NO HORIZONTAL LINES
    p_lay03 as checkbox. "NO VERTICAL LINES
    selection-screen skip.
    parameters:
    p_lay04 as checkbox. "NO SCROLLING
    selection-screen skip.
    parameters:
    p_lay06 type syucomm,                                       "F2CODE
    p_lay07 as checkbox. "CONFIRMATION PROMPT
    selection-screen end of block lay.
    selection-screen begin of block spa with frame title text-spa.
    parameters:
    p_spa01 as checkbox, "BOX
    p_spa02 as checkbox, "COUNT FELD
    p_spa03 as checkbox, "NO COLUMN HEADERS
    p_spa04 as checkbox. "COLUMN OPTIMIZE
    selection-screen begin of block hot with frame title text-hot.
    parameters:
    p_hot01 as checkbox. "NO HOTSPOT
    parameters:
    p_hot02 as checkbox. "Hotspot auf Zeilenebene
    select-options:
    p_hotf02 for g_int_field no intervals default 1.
    parameters:
    p_hot03 as checkbox.
    select-options:
    p_hotf03 for g_field no intervals.
    selection-screen end of block hot.
    selection-screen begin of block mrg with frame title text-mrg.
    parameters:
    p_mrg01 radiobutton group mrge, "Default
    p_mrg02 radiobutton group mrge, "kein Merge
    p_mrg03 radiobutton group mrge. "Merge
    selection-screen end of block mrg.
    selection-screen begin of block out with frame title text-out.
    parameters:
    p_out01 as checkbox.
    select-options:
    p_outf01 for g_field no intervals.
    selection-screen end of block out.
    selection-screen begin of block tec with frame title text-tec.
    parameters:
    p_tec01 as checkbox.
    select-options:
    p_tecf01 for g_field no intervals.
    selection-screen end of block tec.
    selection-screen begin of block fix with frame title text-fix.
    parameters:
    p_fix01 as checkbox.
    select-options:
    p_fixf01 for g_field no intervals.
    selection-screen end of block fix.
    selection-screen begin of block txt with frame title text-txt.
    selection-screen pushbutton /1(50) text-pb2 user-command pb02.
    selection-screen end   of block txt.
    selection-screen begin of block cur with frame title text-cur.
    parameters:
    p_curanz type i,
    p_curspc as checkbox default space.
    selection-screen skip.
    select-options:
    p_curf00 for g_field no intervals.
    parameters:
    p_cur01 radiobutton group cur default 'X',
    p_curf01 type lvc_s_fcat-fieldname.
    parameters:
    p_cur02 radiobutton group cur,
    p_curf02 type g_ty_s_sflight-currency.
    selection-screen end of block cur.
    selection-screen begin of block sort with frame title text-srt.
    selection-screen pushbutton /1(20) text-pb1 user-command pb01.
    selection-screen end   of block sort.
    selection-screen end of block spa.
    selection-screen begin of block key with frame title text-key.
    parameters:
    p_key01 as checkbox, "KEYFELDER ALS HOTSPOT
    p_key02 as checkbox. "NO KEY FIXIERUNG
    selection-screen end of block key.
    selection-screen begin of block exp with frame title text-exp.
    parameters:
    p_excp01 as checkbox, "EXCEPTION
    p_excp_c as checkbox. "EXCEPTION CONDENSE
    selection-screen end of block exp.
    selection-screen begin of block sum with frame title text-sum.
    parameters:
    p_sum01 as checkbox, "SUM BEFORE
    p_sum02 as checkbox, "NUMC
    p_sum03 as checkbox, "NO UNITSPLIT
    p_sum04 as checkbox, "TOTALS ONLY
    p_sum05 as checkbox, "NO SUMCHOICE
    p_sum06 as checkbox, "NO SUMLINE
    p_sum07 type sy-msgli, "TOTALS TEXT
    p_sum08 as checkbox, "NO SUBCHOICE
    p_sum09 as checkbox, "NO SUBTOTALS
    p_sum10 type sy-msgli. "SUBTOTALS TEXT
    selection-screen begin of block dos with frame title text-dos.
    parameters:
    p_dos01 as checkbox.
    select-options:
    p_dosf01 for g_field no intervals.
    selection-screen end of block dos.
    selection-screen begin of block nos with frame title text-nos.
    parameters:
    p_nos01 as checkbox.
    select-options:
    p_nosf01 for g_field no intervals.
    selection-screen end of block nos.
    selection-screen end of block sum.
    selection-screen begin of block col with frame title text-col.
    parameters:
    p_col01 as checkbox.
    select-options:
    p_colf01 for g_int_field no intervals default 1.
    parameters:
    p_col02 as checkbox.
    select-options:
    p_colf02 for g_field no intervals.
    parameters:
    p_col03 as checkbox.
    select-options:
    p_colf03 for g_field no intervals.
    selection-screen end of block col.
    selection-screen begin of block prn with frame title text-prn.
    parameters:
    p_lpr01 as checkbox default 'X'. "GROUP CHANGE EDIT
    selection-screen skip.
    parameters:
    p_lpr02 as checkbox. "GET SELINFO
    selection-screen skip.
    parameters:
    p_lpr03 as checkbox, "NO MIN LINESIZE
    p_lpr04 type sylinsz, "MIN LINESIZE
    p_lpr05 type sylinsz. "MAX LINESIZE
    selection-screen skip.
    parameters:
    p_prn01 as checkbox, "PRINT
    p_prn02 type lvc_s_prnt-reservelns, "RESERVE LINES
    p_prn03 as checkbox, "NO LISTINFO
    p_prn04 as checkbox, "NO SELINFO
    p_prn05 as checkbox, "TITEL
    p_prn06 type lvc_s_prnt-footline, "FOOTLINE
    p_prn07 as checkbox, "PRINT INFO
    p_prn08 as checkbox, "NO COVERPAGE
    p_prn09 as checkbox, "NO NEW PAGE
    p_prn10 as checkbox. "NO CHANGE PRINT PARAMS
    selection-screen end of block prn.
    selection-screen begin of block evt with frame.
    parameters:
    p_evt01 as checkbox, "PF_STATUS_SET
    p_evt02 as checkbox. "USER_COMMAND
    selection-screen skip.
    parameters:
    p_evt03 as checkbox, "CALLER_EXIT
    p_evt04 as checkbox, "LIST_MODIFY
    p_evt05 as checkbox, "BEFORE_LINE_OUTPUT
    p_evt06 as checkbox. "AFTER_LINE_OUTPUT
    selection-screen skip.
    parameters:
    p_evt07 as checkbox, "SUBTOTAL_TEXT
    p_evt08 as checkbox. "REPREP_SEL_MODIFY
    selection-screen skip.
    parameters:
    p_evt09 as checkbox, "TOP_OF_PAGE
    p_evt10 as checkbox, "END_OF_PAGE
    p_evt11 as checkbox, "TOP_OF_LIST
    p_evt12 as checkbox. "END_OF_LIST
    selection-screen skip.
    parameters:
    p_evt13 as checkbox, "TOP_OF_COVERPAGE
    p_evt14 as checkbox. "END_OF_COVERPAGE
    selection-screen skip.
    parameters:
    p_evt15 as checkbox, "FOREIGN_TOP_OF_PAGE
    p_evt16 as checkbox. "FOREIGN_END_OF_PAGE
    selection-screen skip.
    parameters:
    p_evt17 as checkbox. "GROUPLEVEL_CHANGE
    selection-screen end of block evt.
    INITIALIZATION                                                       *
    initialization.
      perform f01_f4_field using 'SUM' space changing p_dosf01-low.
      p_dosf01-option = 'EQ'.
      p_dosf01-sign   = 'I'.
      append p_dosf01.
      perform f01_f4_field using 'SUM' space changing p_nosf01-low.
      p_nosf01-option = 'EQ'.
      p_nosf01-sign   = 'I'.
      append p_nosf01.
      perform f01_f4_field using 'KEY' space changing p_outf01-low.
      p_outf01-option = 'EQ'.
      p_outf01-sign   = 'I'.
      append p_outf01.
      perform f01_f4_field using space space changing p_tecf01-low.
      p_tecf01-option = 'EQ'.
      p_tecf01-sign   = 'I'.
      append p_tecf01.
      perform f01_f4_field using space space changing p_fixf01-low.
      p_fixf01-option = 'EQ'.
      p_fixf01-sign   = 'I'.
      append p_fixf01.
      perform f01_f4_field using 'CURR' space changing p_curf00-low.
      p_curf00-option = 'EQ'.
      p_curf00-sign   = 'I'.
      append p_curf00.
      perform f01_f4_field using 'CUKY' space changing p_curf01.
      perform f01_f4_field using space space changing p_hotf03-low.
      p_hotf03-option = 'EQ'.
      p_hotf03-sign   = 'I'.
      append p_hotf03.
      perform f01_f4_field using space space changing p_colf02-low.
      p_colf02-option = 'EQ'.
      p_colf02-sign   = 'I'.
      append p_colf02.
      perform f01_f4_field using space space changing p_colf03-low.
      p_colf03-option = 'EQ'.
      p_colf03-sign   = 'I'.
      append p_colf03.
    AT SELECTION-SCREEN                                                  *
    at selection-screen.
      case sscrfields-ucomm.
        when 'PB01'.
          call screen 1001 starting at 1 1 ending at 80 20.
        when 'PB02'.
          call screen 1002 starting at 1 1 ending at 80 20.
      endcase.
    AT SELECTION-SCREEN ON VALUE-REQUEST                                 *
    at selection-screen on value-request for p_dosf01-low.
      perform f01_f4_field using 'SUM' 'X' changing p_dosf01-low.
    at selection-screen on value-request for p_nosf01-low.
      perform f01_f4_field using 'SUM' 'X' changing p_nosf01-low.
    at selection-screen on value-request for p_outf01-low.
      perform f01_f4_field using 'KEY' 'X' changing p_outf01-low.
    at selection-screen on value-request for p_tecf01-low.
      perform f01_f4_field using space 'X' changing p_tecf01-low.
    at selection-screen on value-request for p_fixf01-low.
      perform f01_f4_field using space 'X' changing p_fixf01-low.
    at selection-screen on value-request for p_curf00-low.
      perform f01_f4_field using 'CURR' 'X' changing p_curf00-low.
    at selection-screen on value-request for p_curf01.
      perform f01_f4_field using 'CUKY' 'X' changing p_curf01.
    at selection-screen on value-request for p_hotf03-low.
      perform f01_f4_field using space 'X' changing p_hotf03-low.
    at selection-screen on value-request for p_colf02-low.
      perform f01_f4_field using space 'X' changing p_colf02-low.
    at selection-screen on value-request for p_colf03-low.
      perform f01_f4_field using space 'X' changing p_colf03-low.
    at selection-screen on value-request for p_lay06.
      perform f01_f4_fcode using space
                                 space
                        changing p_lay06.
    START-OF-SELECTION                                                   *
    start-of-selection.
      g_repid               = sy-repid.
      gs_test-select_amount = p_amount.
      gs_test-only_db_info  = p_dbinfo.
      gs_test-db_short      = p_dbshrt.
      gs_test-list_amount = p_list.
      gs_test-layo_title               = p_tit01.
      gs_test-layo_zebra               = p_lay01.
      gs_test-layo_no_horiz_lines      = p_lay02.
      gs_test-layo_no_vert_lines       = p_lay03.
      gs_test-layo_no_scrolling        = p_lay04.
      gs_test-layo_f2code              = p_lay06.
      gs_test-layo_confirmation_prompt = p_lay07.
      gs_test-layo_box                 = p_spa01.
      gs_test-layo_count               = p_spa02.
      gs_test-layo_no_colhead          = p_spa03.
      gs_test-layo_column_optimize     = p_spa04.
      gs_test-layo_no_hotspot          = p_hot01.
      if p_hot02 eq con_true.
        loop at p_hotf02.
          if not p_hotf02-low is initial.
            append p_hotf02-low to gs_test-layo_hotspot_rows.
          endif.
        endloop.
      endif.
      if p_hot03 eq con_true.
        loop at p_hotf03.
          if not p_hotf03-low is initial.
            append p_hotf03-low to gs_test-layo_hotspot_columns.
          endif.
        endloop.
      endif.
      case con_true.
        when p_mrg01.
          gs_test-layo_cell_merge          = space.
        when p_mrg02.
          gs_test-layo_cell_merge          = 'N'.
        when p_mrg03.
          gs_test-layo_cell_merge          = 'Y'.
      endcase.
      if p_out01 eq con_true.
        loop at p_outf01.
          if not p_outf01-low is initial.
            append p_outf01-low to gs_test-fcat_no_out_fields.
          endif.
        endloop.
      endif.
      if p_tec01 eq con_true.
        loop at p_tecf01.
          if not p_tecf01-low is initial.
            append p_tecf01-low to gs_test-fcat_tech_fields.
          endif.
        endloop.
      endif.
      if p_fix01 eq con_true.
        loop at p_fixf01.
          if not p_fixf01-low is initial.
            append p_fixf01-low to gs_test-fcat_fix_column_fields.
          endif.
        endloop.
      endif.
      gs_test-curr_amount = p_curanz.
      gs_test-curr_space  = p_curspc.
      if p_cur01 eq con_true or p_cur02 eq con_true.
        data: ls_fcat_curr type g_ty_s_fcat_curr.
        loop at p_curf00.
          clear ls_fcat_curr.
          if not p_curf00-low is initial.
            ls_fcat_curr-fieldname = p_curf00-low.
            case con_true.
              when p_cur01.
                ls_fcat_curr-cfieldname = p_curf01.
              when p_cur02.
                ls_fcat_curr-currency   = p_curf02.
            endcase.
            append ls_fcat_curr to gs_test-fcat_curr_fields.
          endif.
        endloop.
      endif.
      gs_test-layo_keys_hotspot        = p_key01.
      gs_test-layo_no_keyfix           = p_key02.
      gs_test-excp_display             = p_excp01.
      gs_test-excp_condense            = p_excp_c.
      gs_test-sum_before               = p_sum01.
      gs_test-sum_numc                 = p_sum02.
      gs_test-sum_no_unitsplit         = p_sum03.
      gs_test-sum_totals_only          = p_sum04.
      gs_test-sum_no_sumchoice         = p_sum05.
      gs_test-sum_no_sumline           = p_sum06.
      gs_test-sum_totals_text          = p_sum07.
      gs_test-sum_no_subchoice         = p_sum08.
      gs_test-sum_no_subtotals         = p_sum09.
      gs_test-sum_subtotals_text       = p_sum10.
      if p_dos01 eq con_true.
        loop at p_dosf01.
          if not p_dosf01-low is initial.
            append p_dosf01-low to gs_test-fcat_do_sum_fields.
          endif.
        endloop.
      endif.
      if p_nos01 eq con_true.
        loop at p_nosf01.
          if not p_nosf01-low is initial.
            append p_nosf01-low to gs_test-fcat_no_sum_fields.
          endif.
        endloop.
      endif.
      gs_test-layo_group_change_edit   = p_lpr01.
      gs_test-layo_get_selinfo         = p_lpr02.
      gs_test-layo_no_min_linesize     = p_lpr03.
      gs_test-layo_min_linesize        = p_lpr04.
      gs_test-layo_max_linesize        = p_lpr05.
      gs_test-prnt_print                  = p_prn01.
      gs_test-prnt_reserve_lines          = p_prn02.
      gs_test-prnt_no_listinfo            = p_prn03.
      gs_test-prnt_no_selinfo             = p_prn04.
      gs_test-prnt_with_title             = p_prn05.
      gs_test-prnt_footline               = p_prn06.
      gs_test-prnt_printinfo              = p_prn07.
      gs_test-prnt_no_coverpage           = p_prn08.
      gs_test-prnt_no_new_page            = p_prn09.
      gs_test-prnt_no_change_print_params = p_prn10.
      if p_col01 eq con_true.
        loop at p_colf01.
          if not p_colf01-low is initial.
            append p_colf01-low to gs_test-color_rows.
          endif.
        endloop.
      endif.
      if p_col02 eq con_true.
        loop at p_colf02.
          if not p_colf02-low is initial.
            append p_colf02-low to gs_test-color_fields_column.
          endif.
        endloop.
      endif.
      if p_col03 eq con_true.
        loop at p_colf03.
          if not p_colf03-low is initial.
            append p_colf03-low to gs_test-color_fields_cell.
          endif.
        endloop.
      endif.
      if p_evt01 eq con_true.
        append con_event_01 to gs_test-events.
      endif.
      if p_evt02 eq con_true.
        append con_event_02 to gs_test-events.
      endif.
      if p_evt03 eq con_true.
        append con_event_03 to gs_test-events.
      endif.
      if p_evt04 eq con_true.
        append con_event_04 to gs_test-events.
      endif.
      if p_evt05 eq con_true.
        append con_event_05 to gs_test-events.
      endif.
      if p_evt06 eq con_true.
        append con_event_06 to gs_test-events.
      endif.
      if p_evt07 eq con_true.
        append con_event_07 to gs_test-events.
      endif.
      if p_evt08 eq con_true.
        append con_event_08 to gs_test-events.
      endif.
      if p_evt09 eq con_true.
        append con_event_09 to gs_test-events.
      endif.
      if p_evt10 eq con_true.
        append con_event_10 to gs_test-events.
      endif.
      if p_evt11 eq con_true.
        append con_event_11 to gs_test-events.
      endif.
      if p_evt12 eq con_true.
        append con_event_12 to gs_test-events.
      endif.
      if p_evt13 eq con_true.
        append con_event_13 to gs_test-events.
      endif.
      if p_evt14 eq con_true.
        append con_event_14 to gs_test-events.
      endif.
      if p_evt15 eq con_true.
        append con_event_15 to gs_test-events.
      endif.
      if p_evt16 eq con_true.
        append con_event_16 to gs_test-events.
      endif.
      if p_evt17 eq con_true.
        append con_event_17 to gs_test-events.
      endif.
      gs_test-buffer_active            = space.
      gs_test-bypassing_buffer         = space.
    END-OF-SELECTION                                                     *
    end-of-selection.
      perform f01_call_list.
    *&      Form  f01_call_list
          text
    form f01_call_list .
      data: ls_prnt   type slis_print_alv,
            lt_excl   type slis_t_extab,
            l_exit    type char1,
            ls_exit   type slis_exit_by_user,
            l_list    type num1.
      call function 'REUSE_ALV_BLOCK_LIST_INIT'
        exporting
          i_callback_program       = g_repid
          i_callback_pf_status_set = ' '
          i_callback_user_command  = ' '
          it_excluding             = lt_excl.
      do gs_test-list_amount times.
        add 1 to l_list.
        perform f01_append_list using l_list.
      enddo.
      perform f01_set_prnt changing ls_prnt.
      call function 'REUSE_ALV_BLOCK_LIST_DISPLAY'
        exporting
          i_interface_check       = ' '
          is_print                = ls_prnt
          i_screen_start_column   = 0
          i_screen_start_line     = 0
          i_screen_end_column     = 0
          i_screen_end_line       = 0
        importing
          e_exit_caused_by_caller = l_exit
          es_exit_caused_by_user  = ls_exit
        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.
    endform.                    " f01_call_list
    *&      Form  f01_append_list
          text
    form f01_append_list using value(i_list) type num1.
      data: ls_layo   type slis_layout_alv,
            lt_fcat   type slis_t_fieldcat_alv,
            lt_sort   type slis_t_sortinfo_alv,
            lt_evts   type slis_t_event,
            l_tabname type slis_tabname.
      field-symbols: <l_table> type any.
      perform f01_get_outtab using i_list.
      case i_list.
        when 1.
          gt_outtab1 = gt_outtab[].
        when 2.
          gt_outtab2 = gt_outtab[].
        when 3.
          gt_outtab3 = gt_outtab[].
        when 4.
          gt_outtab4 = gt_outtab[].
        when 5.
          gt_outtab5 = gt_outtab[].
        when 6.
          gt_outtab6 = gt_outtab[].
        when 7.
          gt_outtab7 = gt_outtab[].
        when 8.
          gt_outtab8 = gt_outtab[].
        when 9.
          gt_outtab9 = gt_outtab[].
      endcase.
      perform f01_set_layo changing ls_layo.
      perform f01_set_fcat changing lt_fcat.
      perform f01_set_evts changing lt_evts.
      concatenate 'LIST_' i_list into l_tabname.
      case i_list.
        when 1.
          call function 'REUSE_ALV_BLOCK_LIST_APPEND'
            exporting
              is_layout                  = ls_layo
              it_fieldcat                = lt_fcat
              i_tabname                  = l_tabname
              it_events                  = lt_evts
              it_sort                    = lt_sort
              i_text                     = 'Hello'              "#EC NOTEXT
            tables
              t_outtab                   = gt_outtab1
            exceptions
              program_error              = 1
              maximum_of_appends_reached = 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.
        when 2.
          call function 'REUSE_ALV_BLOCK_LIST_APPEND'
            exporting
              is_layout                  = ls_layo
              it_fieldcat                = lt_fcat
              i_tabname                  = l_tabname
              it_events                  = lt_evts
              it_sort                    = lt_sort
              i_text                     = 'Hello'              "#EC NOTEXT
            tables
              t_outtab                   = gt_outtab2
            exceptions
              program_error              = 1
              maximum_of_appends_reached = 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.
        when 3.
          call function 'REUSE_ALV_BLOCK_LIST_APPEND'
            exporting
              is_layout                  = ls_layo
              it_fieldcat                = lt_fcat
              i_tabname                  = l_tabname
              it_events                  = lt_evts
              it_sort                    = lt_sort
              i_text                     = 'Hello'              "#EC NOTEXT
            tables
              t_outtab                   = gt_outtab3
            exceptions
              program_error              = 1
              maximum_of_appends_reached = 2
              others                     = 3.
          if sy-subrc <> 0.
            message id sy-msgid type sy-msgty number sy-msgno
                    with sy-ms

  • Dynamic check box creation in selection screen

    Hello,
    I am trying to put up some check boxes dynamically in a selection screen. The number: of check boxes required and the 'checkbox label text' is to be retrieved from a database table. I have retrieved all these values in AT SELECTION-SCREEN OUTPUT event. But, I dont know how to create check box parameters using these dynamic values.  Please help..

    hi Giffin,
    Create a program with name 'Z_13317_DYN_CHKBOX' and paste the following code in it. Also make ensure that an include with name 'Z_13317_DYN_INCL' is not existing earlier because this program will be overwritten each and everytime.
    Z_13317_DYN_CHKBOX will take an integer as an input. After giving input, click on the button on selection screen.
    Suppose, if you have given 3 as input and if you have clicked the button, then 3 checkboxes will be generated on your selection screen.
    REPORT  Z_13317_DYN_CHKBOX.
    types :begin of t_itab1,
            line(72),
           end of t_itab1.
    data: incl type table of t_itab1 with header line.
    parameters: p_tab type i,
                p_frst type c no-display.
    selection-screen begin of line.
    selection-screen: pushbutton 2(20) but1 user-command cli1.
    selection-screen end of line.
    include z_13317_dyn_incl if found.
    initialization.
    at selection-screen output.
      if p_frst = ' '.
        p_frst = 'X'.
        perform crt_dyn_incl.
      endif.
    at selection-screen.
      case sy-ucomm.
        when 'CLI1'.
        perform crt_dyn_incl.
      endcase.
    *&      Form  crt_dyn_incl
    *       text
    form crt_dyn_incl .
      perform populate_incl.
      perform del_incl.
      insert report 'Z_13317_DYN_INCL' from incl.
      commit work.
      submit z_13317_dyn_chkbox via selection-screen with p_frst = p_frst.
    endform.                    " crt_dyn_incl
    *&      Form  del_incl
    *       text
    form del_incl .
      call function 'RS_DELETE_PROGRAM'
        exporting
         program                          = 'Z_13317_DYN_INCL'
         suppress_checks                  = 'X'
         suppress_popup                   = 'X'
         with_cua                         = ' '
         with_documentation               = ' '
         with_dynpro                      = 'X'
         with_includes                    = ' '
         with_textpool                    = ' '
         with_variants                    = ' '
      if sy-subrc <> 0.
      endif.
    endform.                    " del_incl
    *&      Form  populate_incl
    *       text
    form populate_incl .
      data: v_cnt type n.
      do p_tab times.
        v_cnt = v_cnt + 1.
        incl-line = 'parameters: '.
        concatenate incl-line 'p_chk' v_cnt into incl-line.
        concatenate incl-line 'as checkbox.' into incl-line separated by space.
        append incl.
        clear incl.
      enddo.
    endform.                    " populate_incl
    Regards,
    Sailaja.

  • Option ( Radio button  or check box)  on selection - screen , to go to CNR2

    <b>Subject - Option ( Radio button  or check box)  on selection - screen  , to go to Tcode CNR2</b>
    Hi all,
          I have developed  a report   , which  has  a  selection screen  with  one select-option ,  where i enter employee number     and  two radio buttons   ,  one is for all workcentres  and  other one   for active workcentre.   so when i enter  employee number  and  choose  either of the radio button  i wil get the  output  properly.  the output   displays ,  employee no,  employee name ,  work centre  and project  of that employee .   an employee may have  many workcentres   and   a corresponding project  for that work centre.
    Now the  Problem is  ,  from the same   report  i need to add  a option  on the selection -screen ,  ( plz  tell me whether to use  radio button  or check box   and if it is radio button    should  i  use it seperately  or  group it  in the above two buttons.) .
    so that when user selects  the  option   , the control should  go to  transaction code CNR2,  from where  i  can enter workcentre  and   in the next screen i have  HR assigntment tab , after choosing that it will dsplay persons   linked to the workcentre  and there is a delete icon  , from where i can delete the person.
    The only thing is  now to move / Navigate to the screen   or  go to transaction code CNR2   from  the report  or  from the selection screen.
    Your valuable Inputs are awaited, PLz  do lemme know 
    Thanks  in advance ,
    regards,
    Shuja

    Shuja,
    A radio button nor a checkbox should be used for navigation.  I would suggest a COMMAND BUTTON. 
    Something like this:
    Report ZZZZZZ.
    TABLES: sscrfields.
    SELECTION-SCREEN BEGIN OF BLOCK ONE WITH FRAME TITLE TEXT-001.
    selection-screen: PUSHBUTTON /10(20) but1 USER-COMMAND cli1.
    SELECTION-SCREEN END OF BLOCK ONE.
    initialization.
      but1 = 'Button Text Goes Here'.
    AT SELECTION-SCREEN.
      CASE sscrfields.
        WHEN 'CLI1'.
          call transaction 'CNR2'.
    start-of-selection.
    Your code here

  • Disabling Check Box

    HI Experts,
                   I have Selection screen where in 1st Block I have 3 Radio Button & respective input fields. In 2nd Block I have 2 Radio button & Respective Check Boxes. I used Loop At Screen for Disabling Input Fields in 1st Block whose Radio Button is not clicked. I need to do the same Functionality for 2nd Block so that I can Disable Check Box whose Radio Button is not Clicked.
    I have allready writen  USER-COMMAND ABC in 1sr Block.
    And it wont allow me to write another USER-COMMAND for 2nd block. What Would I Do.
    Plz Help. Urgent.
    Thanks.
    Khan.

    Hi,
    Refer to the following code:
    selection-screen begin of screen 100 title title.
    selection-screen begin of block b1 with frame title text-t01.
    parameter:rad1 radiobutton group rad user-command frad1 default 'X',
              rad2 radiobutton group rad .
    selection-screen end of block b1.
    selection-screen begin of block b2 with frame title text-t02.
    parameter: mtr as checkbox modif id g3 user-command chk1,
               p_matnr type eban-matnr modif id g1,
               sloc as checkbox modif id g3 user-command chk2,
               str_loc type eban-lgort modif id g4.
    selection-screen end of block b2.
    selection-screen begin of block b3 with frame title text-t03.
    select-options: matnr1 for eban-matnr modif id g2.
    selection-screen end of block b3.
    selection-screen pushbutton /20(10) name user-command ucom.
    selection-screen end of screen 100.
    name = 'FETCH'.
    title = 'Test Report'.
    call selection-screen '100'.
    type-pools slis.
    declaration of internal tables and work areas to be used
    data: begin of it_pr occurs 0,
          banfn type eban-banfn,
          bnfpo type eban-bnfpo,
          loekz type eban-loekz,
          statu type eban-statu,
          ekgrp type eban-ekgrp,
          matnr type eban-matnr,
          werks type eban-werks,
          lgort type eban-lgort,
          preis type eban-preis,
          peinh type eban-peinh,
          end of it_pr.
    data: begin of it_mat occurs 0,
          matnr type eban-matnr,
          end of it_mat.
    *DATA:BEGIN OF ITAB1 OCCURS 0,
      data: l_answer.
    data: it_fieldcat type slis_t_fieldcat_alv,
          wa_fieldcat like line of it_fieldcat,
          it_event type slis_t_event,
          wa_event type slis_alv_event.
    declaration of variables to be used
    data: r_ucomm type sy-ucomm,
          mat_no type eban-matnr,
          len type i value 1,
          count type i value is initial,
          iflag type i value is initial,
          iflag1 type i value 0.
    data :pr_id type sy-repid,
    rt_extab type slis_t_extab.
    at selection-screen output.
      if rad1 = 'X'.
        loop at screen.
          if screen-group1 = 'G1' or screen-group1 = 'G4'.
            screen-active = '1'.
            screen-input = 0.
          elseif screen-group1 = 'G2'.
            screen-active = '0'.
          endif.
          modify screen.
        endloop.
      elseif rad2 = 'X'.
        loop at screen.
          if screen-group1 = 'G1'  or screen-group1 = 'G4' or screen-group1 = 'G3' or screen-group1 = 'G5'.
            screen-active = '0'.
          elseif screen-group1 = 'G2'.
            screen-active = '1'.
          endif.
          modify screen.
        endloop.
      endif.
      if mtr = 'X'.
        loop at screen.
          if screen-group1 = 'G1'.
            screen-input = 1 .
          endif.
          modify screen.
        endloop.
      endif.
      if sloc = 'X'.
        loop at screen.
          if screen-group1 = 'G4'.
            screen-input = 1 .
          endif.
          modify screen.
        endloop.
      endif.
    clear sy-ucomm.
    This will surely sort your prob
    Regards
    Gaurav

  • Problem with check Box in ALV list

    Hi All,
    In my alv list  I am using Check box and if I enabled the check box after pressing that pushbutton its not reflecting in the internal table how can I  resolve it. 
    Please find below the piece of codes
    FORM user_command USING ucomm    LIKE sy-ucomm
                                                 selfield TYPE slis_selfield.      
    sy-ucomm = ucomm.
      CASE ucomm.
      When 'SAVE'.
                I am checking my internal table value here.
               my logic....
      When others.
      Endcase.
    FORM FIELD_CATLOGUE  USING   VALUE(P_tname) "Int.table name
                                  VALUE(P_fname) "Field name
                                  VALUE(P_title) "Column name
                                  VALUE(P_sum)   "Sum
                                  VALUE(P_edit)  "Edit
                                  VALUE(P_Check). " Check box
      CLEAR wa_fcat.
      wa_fcat-tabname = p_tname.
      wa_fcat-fieldname = p_fname.
      wa_fcat-seltext_l = p_title.
      wa_fcat-do_sum    = P_Sum.
      Wa_Fcat-edit      = P_Edit.
      Wa_Fcat-checkbox  = P_Check.
      Append wa_fcat to i_fcat.
      gs_user_command     type slis_formname value 'USER_COMMAND'.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
            i_callback_program = sy-repid
            it_fieldcat        = i_fcat
            is_layout          = ilay
            I_DEFAULT          = 'X'
            I_SAVE             = 'A'
            I_CALLBACK_PF_STATUS_SET  = gs_user_status
            i_callback_user_command  = gs_user_command
          TABLES
            t_outtab           = it_data
          EXCEPTIONS
            program_error      = 1
            others             = 2.

    Hi,
    Refer this program:-
    *  internal table and alv declarations
    *   with one field in internal table as
    *   flag(1) type c (for checkbox in alv)
    *          START-OF-SELECTION
    START-OF-SELECTION.
      "your select query to populate data in internal table
    *          END-OF-SELECTION
    END-OF-SELECTION.
    *          FIELD CATALOG FOR FIRST GRID DISPLAY
      PERFORM field_catalog.
    *          SORT W.R.T. WORK ORDER NUMBER FOR FIRST GRID DISPLAY
      PERFORM sort_field.
    *          FOR LAYOUT FOR FIRST GRID DISPLAY
      PERFORM set_layout.
    *          DISPLAY RECORDS IN ALV GRID FOR FIRST GRID DISPLAY
      PERFORM alv_display.
    *&      SUBROUTINE DEFINITIONS
    *&      Form  FIELD_CATALOG
    *       SUB-ROUTINE FIELD_CATALOG USED TO SET THE COLUMNS FOR
    *       THE ALV GRID (OUTPUT FORMAT)
    *       SETS THE COLUMN NAME AND THE OUTPUT LENGTH FOR THE FIELDS
    FORM field_catalog .
      wa_field-fieldname = 'FLAG'.   " name of field from internal table
      wa_field-tabname = 'IT_FINAL'. " internal table name
      wa_field-outputlen = 2.        " output length on screen
      wa_field-checkbox = c_check.   " print as checkbox
      wa_field-edit = c_check.       " make field open for input
      wa_field-seltext_l = ' '.      " header information
      APPEND wa_field TO it_field.   " append field catalog internal table
      CLEAR wa_field.                " clear field catalog work area
      wa_field-fieldname = 'AUFNR'.  " name of field from internal table
      wa_field-tabname = 'IT_FINAL'. " internal table name
      wa_field-outputlen = 20.       " output length on screen
      wa_field-seltext_l = text-003. " header information
      APPEND wa_field TO it_field.   " append field catalog internal table
      CLEAR wa_field.                " clear field catalog work area
    ENDFORM.                    " FIELD_CATALOG
    *&      Form  SORT_FIELD
    *       SUB-ROUTINE SORT_FIELD IS USED TO SORT THE RECORDS IN THE
    *       INTERNAL TABLE BASED ON THE GIVEN FIELD AND NATURE OF
    *       SORTING TO BE DONE (ASCENDING OR DESCENDING)
    FORM sort_field .
      wa_sort-spos = 1.             " sort priority
      wa_sort-fieldname = 'AUFNR'.  " field on which records sorted
      wa_sort-tabname = 'IT_FINAL'. " internal table name
      wa_sort-up = c_check.         " sort ascending
      APPEND wa_sort TO it_sort.    " append sort info internal table
      CLEAR wa_sort.                " clear sort info work area
    ENDFORM.                    " SORT_FIELD
    *&      Form  SET_LAYOUT
    *       SUB-ROUTINE SET_LAYOUT IS USED TO SET THE DISPLAY OF THE
    *       ALV GRID LINES IN ALTERNATIVE COLOURS
    FORM set_layout .
      wa_layout-zebra = c_check.    " so set colors of line alternatively
    ENDFORM.                    " SET_LAYOUT
    *&      Form  ALV_DISPLAY
    *       SUB-ROUTINE ALV_DISPLAY IS USED TO SET THE PARAMETERS
    *       FOR THE FUNCTION MODULE REUSE_ALV_GRID_DISPLAY
    *       AND PASS THE INTERNAL TABLE EXISTING THE RECORDS TO BE
    *       DISPLAYED IN THE GRID FORMAT
    FORM alv_display .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         i_callback_program                = v_rep_id       " report id
         i_callback_pf_status_set          = 'PF'           " for PF-STATUS
         i_callback_user_command           = 'USER_COMMAND' " for User-Command
         is_layout                         = wa_layout      " for layout
         it_fieldcat                       = it_field       " field catalog
         it_sort                           = it_sort        " sort info
        TABLES
          t_outtab                          = it_final      " internal table
       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.
    ENDFORM.                    " ALV_DISPLAY
    *&      Form  pf
    *       SUB-ROUTINE PF IS USED TO SET THE PF-STATUS OF THE SCREEN
    *       ON WHICH THE ALV GRID IS DISPLAYED
    *       -->RT_EXTAB
    FORM pf USING rt_extab TYPE slis_t_extab.
      SET PF-STATUS 'ZTG_STAT'.
    ENDFORM.                    "pf
    *&      Form  USER_COMMAND
    *       SUB-ROUTINE USER_COMMAND IS USED TO HANDLE THE USER ACTION
    *       AND EXECUTE THE APPROPIATE CODE
    *      -->LV_OKCODE   used to capture the function code
    *                     of the user-defined push-buttons
    *      -->L_SELFIELD   text
    FORM user_command USING lv_okcode LIKE sy-ucomm l_selfield TYPE slis_selfield.
    * assign the function code to variable v_okcode
      lv_okcode = sy-ucomm.
    * handle the code execution based on the function code encountered
      CASE lv_okcode.
    * when the function code is EXECUTE then process the selected records
        WHEN 'EXECUTE'.
    * refresh it_process when user processes selected records
          REFRESH it_process.
    * to reflect the data changed into internal table
          DATA : ref_grid TYPE REF TO cl_gui_alv_grid. "new
          IF ref_grid IS INITIAL.
            CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
              IMPORTING
                e_grid = ref_grid.
          ENDIF.
          IF NOT ref_grid IS INITIAL.
            CALL METHOD ref_grid->check_changed_data.
          ENDIF.
    * refresh the ALV Grid output from internal table
          l_selfield-refresh = c_check.
        WHEN 'SEL_ALL'.
    * to select all the records displayed in ALV Grid
          LOOP AT it_final INTO wa_final.
            wa_final-flag = 'X'.
            MODIFY it_final FROM wa_final.
          ENDLOOP.
    * refresh the ALV Grid output from internal table
          l_selfield-refresh = c_check.
        WHEN 'DESEL_ALL'.
    * to deselect all the records displayed in ALV Grid
          LOOP AT it_final INTO wa_final.
            wa_final-flag = ' '.
            MODIFY it_final FROM wa_final.
          ENDLOOP.
    * refresh the ALV Grid output from internal table
          l_selfield-refresh = c_check.
      ENDCASE.
    ENDFORM.                    "USER_COMMAND
    Hope this helps you.
    Regards,
    Tarun.

  • Check boxes to hide or display multiple subforms

    I have been using radio buttons to display subforms individually. Now I need to have multiple subforms displayed based on check boxes, but I have never done this before. Any help would be greatly appreciated. Just FYI, I used the following for the radio buttons:
    if(this.rawValue==1)
    WaterSysImpSF.presence="visible";
    else
    WaterSysImpSF.presence="hidden";
    etc...
    Thanks.

    Hi Pradeep,
    1. Create a Pushbutton or set a PF status.
    2. u can create input fields without a subscreen.
    3. u can code to hide the input fields by using
         LOOP at Screen.
            case screen-fieldname.
               when <fieldname1> or <fieldname2>..
                  Screen-Invisible = 1.
                  Screen-active = 0.
             endcase.
         ENDLOOP.
    4. when u press the button.
    i. Catch the Ok code
    ii. Unhide the input fields.
         LOOP at Screen.
            case screen-fieldname.
               when <fieldname1> or <fieldname2>..
                  Screen-Invisible = 0.
                  Screen-active = 1.
             endcase.
         ENDLOOP.
    Regards,
    Raj.

  • Check Box in Tree View

    I have created ALV TREE VIEW using CL_GUI_ALV_TREE.
    i have set the check boxes at nodes.
    now whenever user checks the checkbox and selects the pushbutton on PF-Status..at that time i want to capture the checkbox in my internal table...
    please fine me a solution.
    Thanks.

    Following code is to add checkboxes in ALV tree:
    FORM add_root_request USING pls_data_ TYPE csg_gs_outtab_p_key__l_is_sub_node_ TYPE c
    CHANGING pl_carrid_key._node = nodes->add_node( related_node = p_key
    relationship = cl_gui_column_tree=>relat_last_child ).
    ... §0.2 if information should be displayed at
    the hierarchy column set the carrid as text for this node
    text = p_ls_data-object.
    node->set_text( text ).
    ... §0.3 set the data for the nes node
    node->set_data_row( p_ls_data ).
    item = node->get_hierarchy_item( ).
    item = node->get_item( 'FCHECKBOX' ). "FCHECKBOX is my radio button field in internal table which I am using to populate the ALV
    item->set_type( if_salv_c_item_type=>checkbox ).
    pl_carrid_key = node->get_key( )._
    CATCH cx_salv_msg.
    ENDFORM_._Following code is for handling checbox_change event
    PERFORM application_action_events.
    FORM application_action_events .
    data: lr_events type ref to cl_salv_events_tree.
    *data gr_events type ref to lcl_handle_events.
    lr_events = gr_tree->get_event( ).
    create object gr_events.
    set handler gr_events->check for lr_events.
    set handler gr_events->on_link_click for lr_events.
    set handler gr_events->on_before_user_command for lr_events.
    set handler gr_events->on_after_user_command for lr_events.
    set handler gr_events->on_keypress for lr_events.
    endform. " application_action_events----
    CLASS lcl_handle_events DEFINITION.
    PUBLIC SECTION.
    METHODS:
    check FOR EVENT checkbox_change OF cl_salv_events_tree IMPORTING node_key columnname checked. "Here node_key is the row number
    ENDCLASS. "lcl_handle_events DEFINITION
    CLASS lcl_handle_events IMPLEMENTATION
    §4.2 implement the events for handling the events of cl_salv_table
    CLASS lcl_handle_events IMPLEMENTATION_._
    METHOD check_._
    WRITE 'hello'_._
    DATA lwa_modify_check_ TYPE REF TO csg_gs_outtab.
    node_key = node_key - 1_._
    READ TABLE csg_gt_list INDEX node_key REFERENCE INTO lwa_modify_check._
    if columnname = 'FCHECKBOX'_._
    IF checked = 'X'_._
    If the value in internal table is set to X, then it is deselct
    lwa_modify_check->fcheckbox =_ ' '_._
    ELSE_._
    lwa_modify_check->fcheckbox =_ 'X'_._
    ENDIF_._
    ENDIF_._
    if columnname = 'CHECKBOX_READ'_._
    IF checked = 'X'_._
    If the value in internal table is set to X, then it is deselct
    lwa_modify_check->checkbox_read =_ ' '_._
    ELSE_._
    lwa_modify_check->checkbox_read =_ 'X'_._
    ENDIF_._
    ENDIF_._
    *MODIFY TABLE csg_gt_list from l_wa_modify_check.
    flag_test = flag_test + 1_._
    ENDMETHOD_._ "check
    ENDCLASS_._ "lcl_handle_events IMPLEMENTATION
    Please give me reward points

  • How to print Check Box in smartform

    HI,
      How to print check box in smartforms. I am using Include Sap Symbol but in the print it is coming as #. Do we need to do any setting like we do for barcode?
    Thanks
    Raghavendra

    hi,
    u can print a check box in different ways.. by inserting symbols and making window as check box..
    once go through the thread u will get to k now differnt ways
    putting checkboxes in smartform?
    Please Close this thread.. when u r problem is solved. Reward all Helpful answers
    Regards
    Naresh Reddy K

  • How to select One Check Box at a time

    Dear All
    I have 10 records in details blok and also I have 10 check boxes .
    I want user can only check one check box at a time .
    For example If first record I have checked and i am trying to check the last record then the first record UNCHECKED and the last record will checked .
    Like how redio buttons work ..
    How can i do that ..?
    I have done like this :-
    1st I have declare a global variable in PRE_FORM :GLOBAL.CNT := 'N';
    Then
    WHEN-CHECKBOX-CHANGED trigger
    IF CHECKBOX_CHECKED(EMP.CHK') THEN
        IF :GLOBAL.CNT != N THEN
            :EMP.CHK := Null
       HERE what to write ???
            RAISE FORM_TRIGGER_FAILURE;
        ELSE
            :GLOBAL.CNT := Y;
        END IF;
    ELSE
        :GLOBAL.CNT := N;
    END IF;Edited by: LuKKa on Aug 29, 2012 1:12 PM
    Edited by: LuKKa on Aug 29, 2012 1:13 PM

    LuKKa,
    An easier method would be to use a Calculated Field to summarize the value of your CHECKBOX Item. For example, add a non-table item (call it SUM_CHECKED) to your detail block and do not assign it to canvas - so it will not be displayed. Then set the following properties of the SIM_CHECKED item:
    Database Item = No
    Calculation Mode = Summary
    Summary Function = Sum
    Summarized Block = <YOUR DETAIL BLOCK>
    Summarized Item = <YOUR CHECKBOX ITEM>
    Next, you will need to change your Detail Block property Query All Records to YES (this is required for the Calulated Item).
    Now, make sure your checkbox is data type NUMBER and has the following minimum properties set:
    Data Type = Number
    Maximum Length = 1
    Initial Value = 0
    Value when Checked = 1
    Value when Unchecked = 0
    Check Box Mapping of Other Values = Not Allowed or Unchecked
    Now, in your Checkbox Item's When-Checkbox-Changed trigger add code similar to this:
    IF ( CHECKBOX_CHECKED('YOUR_DETAIL_BLOCK.YOUR_CHECKBOX_ITEM') ) THEN
       IF ( :YOUR_DETAIL_BLOCK.SUM_CHECKED > 1 ) THEN
       --Reset the checkbox
       :YOUR_DETAIL_BLOCK.YOUR_CHECKBOX_ITEM := NULL;
       MESSAGE('You can only check one item.');
       Message(' ');
       RAISE Form_Trigger_Failure;
       END IF;
    END IF;I have confirmed this method works and it is more efficient than looping through your records to see if other checkboxes are checked.
    Hope this helps,
    Craig B-)
    If someone's response is helpful or correct, please mark it accordingly.

  • Preventing disabling of check box - item okay in MIGO

    Dear all,
    In the MIGO transaction - during goods receipt for subcontractor material, when the item (incoming) is checked as item okay - automatically the child material (Material sent to subcontractor) is also activated thereby to enable 543 movement.
    Unfortunately some of the users are disabling the check box (for the material sent to the subcontractor). This prevents depletion of stock from the subcontractor but inflates the stock of the incoming material.
    Is there any way - either by authorisation check to prevent users disabling the check box or other methods?
    Experts suggestion is required in this regard.
    Thanks in advance.
    Regards,
    M.M

    Hi Magesh,
    it is possible. use Badi enhancement
    MB_MIGO_BADI goto
    IF_EX_MB_MIGO_BADI~POST_DOCUMENT
    tell your abaper to put the logic like
    parent ID and subcomponent ID need to select
    if either of two is not selected
    then error message will prompt not to save the GR doc since subcomponent is unselected.
    reference field EKPO check PSTYP
    hope this help you.
    regards,
    Maia
    Edited by: Maia on Apr 18, 2008 3:07 PM

Maybe you are looking for

  • Error (Aborted) executing CT mapping

    Hi I 've a big problem with execution of CT mapping, When I try to execute a code template mapping It ended with failure. I've OWB 11gr2 and my sources are Adabas (heterogeneous database) and my targets are in Oracle. Other code templete mapping exec

  • Apple ID greyed out in app store & can't edit

    The apple ID on my iMac is greyed out, and I can't change it because my only option is to cancel or sign in.  How do I edit the Apple ID so the correct one populates in the app store?  Itunes works fine, if that matters.

  • Report Viewer asking for Login credentials on Non-Development PC

    I have created several reports within Crystal 2008(using the push method). I run these reports in a VB6 application using the Report Viewer. Reports without sub-reports will run on both the development and non-development PC. If I try to run a report

  • TS5179 how do I ransfer my icloud contacts to my outlook contacts

    how do i transfer my icloud addressbook to outlook contacts?

  • User ID Authorization Chek

    Hello Friends, We had a requirement. When Iam creating a transaction (ME23N) I dont have authorization for my ID. Is it possible by logging with my id can i pass the others id into the program who are having the authorization for (ME23N) and complete