ALV - Validate Data after User-Command (SAVE)

Hi Everbody !
I created a quite nice editable ALV-Grid, that works almost fine.
The only problem I have and don't understand is the valditation in the PAI-Module of my dynpro, e.g. at the 'SAVE'-Command, if the 'ENTER'-Button wasn't pushed before.
In case of an error, the protocol shows up, but the false entry in alv is overwritten by the old content.
I call the method  MY_ALV->CHECK_CHANGED_DATA.
What have i to do then?
Can anybody explain this to me?
Thanks a lot!
Sabrina

Hi!
Thanks for the immediate reply!
The Data-Changed-event is not the problem:
i registered it that way and implemented the handling inclusive error-protocoll.
    CALL METHOD my_ALV_->REGISTER_EDIT_EVENT
      EXPORTING
        I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_ENTER.
the user has to push 'ENTER' to check the changed data on one rush.
But if the user only pushes 'SAVE' or something beyond the alv-toolbar, the pai-module will be processed.
So, i get the method alv->CHECK_CHANGED_DATA, to check the entries.
That works well, the protocoll is displayed, but the wrong entry in Alv (which is normally marked as error) is overwritten by the old, correct content.

Similar Messages

  • How can I validate data after writing and over reboot/powercycle?

    Hi,
    How can I validate data after writes are done? How can I validate data after reboot or powercycle of the machine is done?
    What are the options I should give while running vdbench? When should I use -v, -vq, -vt, -v -j, -vq -j, -vq -jr, -v -jr options?

    Please look for the "Data Validation and Journaling' chapter in the documentation.
    Henk.

  • How to stored data after clicking checkbox  save in database table

    TYPE-pools: slis.
    tables:mkpf,mseg,mard,COWB_COMP.
    TYPES: BEGIN OF tp_data,
          mblnr LIKE mseg-mblnr,
         matnr LIKE mseg-matnr,
         werks LIKE mard-werks,
         lgort LIKE mard-lgort,
         lgpbe LIKE mard-lgpbe,
         charg LIKE mseg-charg,
         bwart LIKE mseg-bwart,
         budat LIKE mkpf-budat,
         menge LIKE mseg-menge,
         meins LIKE mseg-meins,
         kostl LIKE mseg-kostl,
         aufnr LIKE mseg-aufnr,
         rsnum LIKE mseg-rsnum,
         endkz like COWB_COMP-endkz,
    END OF tp_data,
    tp_tbl_data TYPE STANDARD TABLE OF tp_data.
    *data: t_data like ztable occurs 0 with header line.
    Constants
    Data objects (variable declarations and definitions)
    Report data to be shown.
    DATA: it_data TYPE STANDARD TABLE OF tp_data.
    Heading of the report.
    DATA: t_heading TYPE slis_t_listheader.
    ========================== Selection Screen ==========================
      SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS:smblnr FOR mseg-mblnr MODIF ID m1,
                   smatnr FOR mseg-matnr MODIF ID m2,
                   swerks FOR mard-werks MODIF ID m3,
                   slgort FOR mard-lgort MODIF ID m4,
                   slgpbe FOR mard-lgpbe MODIF ID m5,
                   scharg FOR mseg-charg MODIF ID m6,
                   sbwart FOR mseg-bwart MODIF ID m7,
                   skostl FOR mseg-kostl MODIF ID m8,
                   saufnr FOR mseg-aufnr MODIF ID m9,
                   srsnum FOR mseg-rsnum MODIF ID m10.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS:pre RADIOBUTTON GROUP radi USER-COMMAND ucomm DEFAULT 'X',
               pse RADIOBUTTON GROUP radi,
               bps RADIOBUTTON GROUP radi.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
    PARAMETER:layout TYPE i.
    SELECTION-SCREEN END OF BLOCK b3.
    =========================== Event Blocks =============================
    AT selection-SCREEN.
    start-OF-selection.
    PERFORM get_data USING it_data.
    END-OF-selection.
    PERFORM build_alv USING it_data t_heading.
    =========================== Subroutines ==============================
    *&      Form  get_data
          Gets the information to be shown in the report.
    FORM get_data USING t_data TYPE tp_tbl_data.
      SELECT msegmblnr msegmatnr mardwerks mardlgort mardlgpbe msegcharg msegbwart mkpfbudat
        msegmenge  msegmeins msegkostl msegaufnr mseg~rsnum
      INTO CORRESPONDING FIELDS OF TABLE t_data
      FROM mseg
      JOIN mard ON mardmatnr EQ msegmatnr
                   JOIN mkpf ON msegmblnr EQ mkpfmblnr
                   WHERE mseg~matnr IN smatnr.
    ENDFORM.                    " get_data
    *&      Form  build_alv
          Builds and display the ALV Grid.
    FORM build_alv USING t_data TYPE tp_tbl_data
          t_heading  TYPE slis_t_listheader.
    ALV required data objects.
      DATA: w_title   TYPE lvc_title,
            w_comm    TYPE slis_formname,
            w_status  TYPE slis_formname,
            x_layout  TYPE slis_layout_alv,
            t_event    TYPE slis_t_event,
            t_fieldcat TYPE slis_t_fieldcat_alv,
            t_sort     TYPE slis_t_sortinfo_alv.
      REFRESH t_fieldcat.
      REFRESH t_event.
      REFRESH t_sort.
      CLEAR x_layout.
      CLEAR w_title.
    Field Catalog
      PERFORM set_fieldcat2 USING:
            1 'MBLNR' 'MBLNR' 'MSEG' space space space space space space space space space space space space t_fieldcat ,
            2 'MATNR' 'MATNR' 'MSEG' space space space space space space space space space space space space  t_fieldcat ,
            3 'WERKS' 'WERKS' 'MARD' space space space space space space space space space space space space  t_fieldcat,
            4 'LGORT' 'LGORT' 'MARD' space space space space space space space space space space space space t_fieldcat ,
            5 'LGPBE' 'LGPBE' 'MARD' space space space space space space space space space space space space t_fieldcat ,
            6 'CHARG' 'CHARG' 'MSEG' space space space space space space space space space space space space t_fieldcat ,
            7 'BWART' 'BWART' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
            8 'BUDAT' 'BUDAT' 'MKPF' space  space space space space space space space space space space space t_fieldcat,
            9 'MENGE' 'MENGE' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
            10 'MEINS' 'MEINS' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
            11 'KOSTL' 'KOSTL' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
            12 'AUFNR' 'AUFNR' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
            13 'RSNUM' 'RSNUM' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
        14 'ENDKZ' 'ENDKZ' 'COWB_COMP' space space 'select' 'Select this row' 'Sel' 'Select this row' space space space 'X' 'X' space t_fieldcat.
    Layout
      x_layout-zebra = 'X'.
    Top of page heading
      PERFORM set_top_page_heading USING t_heading t_event.
    Events
      PERFORM set_events USING t_event.
    GUI Status
      w_status = ''.
    User commands
      w_comm   = 'USER_COMMAND'.
    Order
    Example
    PERFORM set_order USING '<field>' 'IT_DATA' 'X' space space t_sort.
      PERFORM set_order USING 'MBLNR' 'IT_DATA' 'X' space 'X' t_sort.
    PERFORM set_order USING 'EBELN' 'IT_DATA' 'X' space 'X' t_sort.
    PERFORM set_order USING 'EBELP' 'IT_DATA' 'X' space space t_sort.
    Displays the ALV grid
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        i_callback_program       = sy-repid
        it_fieldcat              = t_fieldcat
        is_layout                = x_layout
        it_sort                  = t_sort
        i_callback_pf_status_set = w_status
        i_callback_user_command  = w_comm
        i_save                   = 'X'
        it_events                = t_event
        i_grid_title             = w_title
      TABLES
        t_outtab                 = t_data
      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.                    " build_alv.
    *&      Form  set_top_page_heading
          Creates the report headings.
    FORM set_top_page_heading USING t_heading TYPE slis_t_listheader
          t_events  TYPE slis_t_event.
      DATA: x_heading TYPE slis_listheader,
            x_event   TYPE LINE OF slis_t_event.
    Report title
      CLEAR t_heading[].
      CLEAR x_heading.
      x_heading-typ = 'H'.
      x_heading-info = 'Reporte Prueba'(001).
      APPEND x_heading TO t_heading.
    Program name
      CLEAR x_heading.
      x_heading-typ = 'S'.
      x_heading-KEY = 'Program: '.
      x_heading-info = sy-repid.
      APPEND x_heading TO t_heading.
    User who is running the report
      CLEAR x_heading.
      x_heading-typ = 'S'.
      x_heading-KEY = 'User: '.
      x_heading-info = sy-uname.
      APPEND x_heading TO t_heading.
    Date of execution
      CLEAR x_heading.
      x_heading-typ = 'S'.
      x_heading-KEY = 'Date: '.
      WRITE sy-datum TO x_heading-info.
      APPEND x_heading TO t_heading.
    Time of execution
      CLEAR x_heading.
      x_heading-typ = 'S'.
      x_heading-KEY = 'Time: '.
      WRITE sy-uzeit TO x_heading-info.
      APPEND x_heading TO t_heading.
    Top of page event
      x_event-name = slis_ev_top_of_page.
      x_event-FORM = 'TOP_OF_PAGE'.
      APPEND x_event TO t_events.
    ENDFORM.
    *&      Form  set_events
          Sets the events for ALV.
          The TOP_OF_PAGE event is alredy being registered in
          the set_top_page_heading subroutine.
    FORM set_events USING t_events TYPE slis_t_event.
      DATA: x_event   TYPE LINE OF slis_t_event.
    Example
    clear x_event.
    x_event-name = .
    x_event-form = .
    append x_event to t_event.
    ENDFORM.
    *&      Form  set_order
          Adds an entry to the order table.
    FORM set_order USING p_fieldname p_tabname p_up p_down p_subtot
          t_sort TYPE slis_t_sortinfo_alv.
      DATA: x_sort TYPE slis_sortinfo_alv.
      CLEAR x_sort.
      x_sort-fieldname = p_fieldname.
      x_sort-tabname   = p_tabname.
      x_sort-UP = p_up.
      x_sort-down = p_down.
      x_sort-subtot = p_subtot.
      APPEND x_sort TO t_sort.
    ENDFORM.                    "set_order
    *&      Form  set_fieldcat2
          Adds an entry to the field catalog.
    FORM set_fieldcat2 USING p_colpos p_fieldname p_ref_fieldname p_ref_tabname
          p_outputlen p_noout
          p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt
          p_hotspot p_showasicon p_checkbox p_edit
          p_dosum
          t_fieldcat TYPE slis_t_fieldcat_alv.
      DATA: wa_fieldcat TYPE slis_fieldcat_alv.
      CLEAR wa_fieldcat.
    General settings
      wa_fieldcat-fieldname = p_fieldname.
      wa_fieldcat-col_pos = p_colpos.
      wa_fieldcat-no_out = p_noout.
      wa_fieldcat-HOTSPOT = p_hotspot.
      wa_fieldcat-CHECKBOX = p_checkbox.
      wa_fieldcat-ICON = p_showasicon.
      wa_fieldcat-do_sum = p_dosum.
    Set reference fieldname, tablenam and rollname.
    If p_ref_tabname is not given, the ref_fieldname given is a data element.
    If p_ref_tabname is given, the ref_fieldname given is a field of a table. In case ref_fieldname is not given, it is copied from the fieldname.
      IF p_ref_tabname IS INITIAL.
        wa_fieldcat-rollname =   p_ref_fieldname.
      ELSE.
        wa_fieldcat-ref_tabname = p_ref_tabname.
        IF p_ref_fieldname EQ space.
          wa_fieldcat-ref_fieldname =   wa_fieldcat-fieldname.
        ELSE.
          wa_fieldcat-ref_fieldname =   p_ref_fieldname.
        ENDIF.
      ENDIF.
    Set output length.
      IF NOT p_outputlen IS INITIAL.
        wa_fieldcat-outputlen = p_outputlen.
      ENDIF.
    Set text headers.
      IF NOT p_seltext_m IS INITIAL.
        wa_fieldcat-seltext_m = p_seltext_m.
      ENDIF.
      IF NOT p_seltext_l IS INITIAL.
        wa_fieldcat-seltext_l = p_seltext_l.
      ENDIF.
      IF NOT p_seltext_s IS INITIAL.
        wa_fieldcat-seltext_s = p_seltext_s.
      ENDIF.
      IF NOT p_reptext_ddic IS INITIAL.
        wa_fieldcat-reptext_ddic = p_reptext_ddic.
      ENDIF.
      IF NOT p_ddictxt IS INITIAL.
        wa_fieldcat-ddictxt = p_ddictxt.
      ENDIF.
    Set as editable or not.
      IF p_edit IS NOT INITIAL.
        wa_fieldcat-INPUT     = 'X'.
        wa_fieldcat-EDIT     = 'X'.
      ENDIF.
      APPEND wa_fieldcat TO t_fieldcat.
    ENDFORM.                   "set_fieldcat2
    =========================== Subroutines called by ALV ================
    *&      Form  top_of_page
          Called on top_of_page ALV event.
          Prints the heading.
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        i_logo             = 'XXXXX'
        it_list_commentary = t_heading.
    ENDFORM.                    " alv_top_of_page
    *&      Form  user_command
          Called on user_command ALV event.
          Executes custom commands.
    FORM user_command USING r_ucomm     LIKE sy-ucomm
          rs_selfield TYPE slis_selfield.
    ENDFORM.                    "user_command
    this is my code, how to store data after clicking checkbox in databasetable,
    how to write that cide.
    plz send me code.

    hi!,
    use MODIFY to update data into the data base table.
    regards
    anjali

  • REUSE checkbox values not saved after user-command

    Hi,
    I have an ALV grid using REUSE_ALV_GRID_DISPLAY within i have checkbox editable field. Initially all lines in the grid are checked. (user can deselect some of the lines)
    After display of ALV grid user deselect some of the lines in the grid and he press ENTER Here i am updating only checked data the alv grid data to a custom table.But my problem is user deselect some of lines in the gird and press ENTER, but the output table from the grid still showing all lines are checked. ie grid results not showing in the output table.
    Here is code
      data: pt_grpfcat      type slis_t_fieldcat_alv,
            ps_grpfcat      like line of pt_grpfcat,
            pt_grpself      type slis_selfield,
            pt_grplayout2   type slis_layout_alv,
            pv_grptitle(20) type c,
            p_grpexcltab2   type slis_t_extab with header line,
            p_header        type  slis_formname.
      ps_grpfcat-fieldname = 'BOX'.
      ps_grpfcat-checkbox  = c_x.
      ps_grpfcat-edit      = c_x.
      ps_grpfcat-seltext_m = text-272.
      ps_grpfcat-outputlen = 3.
      append ps_grpfcat to pt_grpfcat[].
      clear ps_grpfcat.
      ps_grpfcat-fieldname = 'WERKS'.
      ps_grpfcat-outputlen = 4.
      ps_grpfcat-seltext_m = 'Plants'.
      append ps_grpfcat to pt_grpfcat[].
      clear ps_grpfcat.
      ps_grpfcat-fieldname = 'NAME1'.
      ps_grpfcat-outputlen = 40.
      ps_grpfcat-seltext_m = 'Description'.
      append ps_grpfcat to pt_grpfcat[].
      clear ps_grpfcat.
      select * from t001w into table i_t001w_1.
      if p_plgrp ne c_gl.
        select * from yfe024 into table i_yfe024
                 where plgrp eq p_plgrp.
      else.
        select * from yfe024 into table i_yfe024
                 where plgrp ne space.
      endif.
      refresh : i_grpoutput. clear : i_grpoutput.
      pt_grplayout2-zebra = c_x.
      refresh i_events. clear i_events.
      if not i_yfe024[] is initial.
        loop at i_yfe024 into wa_yfe024.
          read table i_t001w_1 into wa_t001w_1
                      with key werks = wa_yfe024-werks.
          if sy-subrc eq 0.
            move : c_x            to i_grpoutput-box,
                   wa_t001w_1-werks to i_grpoutput-werks,
                   wa_t001w_1-name1 to i_grpoutput-name1.
            append i_grpoutput.
          endif.
        endloop.
      endif.
      pv_grptitle = text-t01.
      call function 'REUSE_ALV_GRID_DISPLAY'
        exporting
          it_fieldcat                 = pt_grpfcat[]
          it_excluding                = p_grpexcltab2[]
          is_layout                   = pt_grplayout2
          i_callback_program          = sy-repid
          i_callback_html_top_of_page = p_header
          i_callback_pf_status_set    = v_status_set1
          i_callback_user_command     = v_user_command1
          i_screen_start_column       = 5
          i_screen_start_line         = 5
          i_screen_end_column         = 70
          i_screen_end_line           = 15
          it_events                   = i_events[]
        tables
          t_outtab                    = i_grpoutput.
    endform.                                 " F_f4_help_fieldname
    * Form  f_user_command1                                                *
    * This form will handle the user command from fm REUSE                 *
    form f_user_command1 using p_ucomm type sy-ucomm
                         rs_selfield type  slis_selfield.
      case p_ucomm.
        when 'YCNC'.
          leave to screen 0.
        when 'YNTR'.
          perform f_upload_readions.
          leave to screen 0.
      endcase.
    endform.                                 " F_user_command1
    * Form f_pf_status_set1                                                *
    * For setting PF status to REUSE                                       *
    form f_pf_status_set1 using rt_extab type slis_t_extab..
      set pf-status '9001'.
      set titlebar '9001' with v_plgrp.
    endform.                                 " F_pf_status_set1
    * Form f_upload_readions                                               *
    * For upload plants under regions to load into YSCCPLNT                *
    form f_upload_readions.
      if not i_grpoutput[] is initial.
        loop at i_grpoutput where box eq c_x.
          read table i_ysccplnttemp with key werks = i_grpoutput-werks
                                             updkz = space.
          if sy-subrc ne 0.
            move i_grpoutput-werks to i_ysccplnttemp-werks.
            move v_affind          to i_ysccplnttemp-affind.
            append i_ysccplnttemp. clear i_ysccplnttemp.
          endif.
        endloop.
      endif.
    endform.                                 " F_upload_readions
    Any suggestions?
    Thanks
    aRs

    form f_user_command1 using p_ucomm type sy-ucomm
                         rs_selfield type  slis_selfield.
    <b>Data ref1 type ref to cl_gui_alv_grid.
    CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
    E_GRID = ref1.
    call method ref1->check_changed_data</b>
      case p_ucomm.
        when 'YCNC'.
          leave to screen 0.
        when 'YNTR'.
          perform f_upload_readions.
          leave to screen 0.
      endcase.
    endform.

  • How to stored data after clicking checkbox save in data base table

    REPORT  zreport                                 .
    TABLES:mseg,mard,mkpf.
    TYPE-POOLS:slis.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS:smblnr FOR mseg-mblnr MODIF ID m1,
                   smatnr FOR mseg-matnr MODIF ID m2,
                   swerks FOR mard-werks MODIF ID m3,
                   slgort FOR mard-lgort MODIF ID m4,
                   slgpbe FOR mard-lgpbe MODIF ID m5,
                   scharg FOR mseg-charg MODIF ID m6,
                   sbwart FOR mseg-bwart MODIF ID m7,
                   skostl FOR mseg-kostl MODIF ID m8,
                   saufnr FOR mseg-aufnr MODIF ID m9,
                   srsnum FOR mseg-rsnum MODIF ID m10.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS:pre RADIOBUTTON GROUP radi USER-COMMAND ucomm DEFAULT 'X',
               pse RADIOBUTTON GROUP radi,
               bps RADIOBUTTON GROUP radi.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
    PARAMETER:layout TYPE i.
    SELECTION-SCREEN END OF BLOCK b3.
    DATA:BEGIN OF itab OCCURS 0,
         mblnr LIKE mseg-mblnr,
         matnr LIKE mseg-matnr,
         werks LIKE mard-werks,
         lgort LIKE mard-lgort,
         lgpbe LIKE mard-lgpbe,
         charg LIKE mseg-charg,
         bwart LIKE mseg-bwart,
         budat LIKE mkpf-budat,
         menge LIKE mseg-menge,
         meins LIKE mseg-meins,
         kostl LIKE mseg-kostl,
         aufnr LIKE mseg-aufnr,
         rsnum LIKE mseg-rsnum,
         checkbox TYPE c,
         END OF itab.
    DATA:  gt_fieldcat TYPE slis_t_fieldcat_alv,
           gw_fieldcat TYPE slis_fieldcat_alv,
           gt_layout TYPE slis_layout_alv.
    START-OF-SELECTION.
    SELECT msegmblnr msegmatnr mardwerks mardlgort mardlgpbe msegcharg msegbwart mkpfbudat
        msegmenge  msegmeins msegkostl msegaufnr mseg~rsnum
    INTO TABLE itab FROM
              mseg JOIN mard ON mardmatnr EQ msegmatnr
                   JOIN mkpf ON msegmblnr EQ mkpfmblnr
                   WHERE mseg~matnr IN smatnr.
      IF sy-subrc EQ 0.
        SORT itab BY matnr.
        PERFORM display_alv_output.
      ENDIF.
    *&      Form  display_alv_output
          text
    -->  p1        text
    <--  p2        text
    FORM display_alv_output.
      REFRESH gt_fieldcat.
      gw_fieldcat-fieldname = 'MBLNR'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 1.
      gw_fieldcat-seltext_m = 'material document'.
      gw_fieldcat-key = 'x'.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'MATNR'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 2.
      gw_fieldcat-seltext_m = 'material'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'WERKS'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 3.
      gw_fieldcat-seltext_m = 'plant'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'LGORT'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 4.
      gw_fieldcat-seltext_m = 'storage location'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'LGPBE'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 5.
      gw_fieldcat-seltext_m = 'storage bin'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'CHARG'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 6.
      gw_fieldcat-seltext_m = 'Batch number'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'BWART'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 7.
      gw_fieldcat-seltext_m = 'Movement Type (Inventory Management)'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'BUDAT'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 8.
      gw_fieldcat-seltext_m = 'Posting Date in the Document'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'MENGE'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 9.
      gw_fieldcat-seltext_m = 'QUANTITY'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'MEINS'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 10.
      gw_fieldcat-seltext_m = 'Basic unit of measure'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'KOSTL'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 11.
      gw_fieldcat-seltext_m = 'Cost center'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'AUFNR'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 12.
      gw_fieldcat-seltext_m = 'Order Number'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'RSNUM'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 13.
      gw_fieldcat-seltext_m = 'Number of Reservation / Depe'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-col_pos = 14.
      gw_fieldcat-fieldname = 'CHECKBOX'.
      gw_fieldcat-seltext_m = 'Compltd'.
      gw_fieldcat-checkbox = 'X'.
      gw_fieldcat-edit = 'X'.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        I_CALLBACK_PROGRAM                = 'ZREPORT'
        I_CALLBACK_PF_STATUS_SET          = 'PF_STATUS'
       I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
        IS_LAYOUT                         = gt_layout
        IT_FIELDCAT                       = gt_fieldcat
       TABLES
         t_outtab                          = itab
      EXCEPTIONS
        PROGRAM_ERROR                     = 1
        OTHERS                            = 2.
    ENDFORM.                    " display_alv_output
    FORM USER_COMMAND USING P_UCOMM TYPE SY-UCOMM
    P_SELFLD TYPE SLIS_SELFIELD.
    set pf-stATUS 'YSTATUS'.
    case p_ucomm.
    when 'SAVE'.
    Data ref1 type ref to cl_gui_alv_grid.
    CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
    E_GRID = ref1.
    call method ref1->check_changed_data.
    Here you wil have the table with updated data
    itab2[] = itab[].
    delete itab where checkbox = space. "Mark is the field for the checkbox
    modify ztable from table itab.
    endcase.
    ENDFORM.
    use loop dump error is came.
    another solutions plz send me
    this is mycode.

    Hi Lakshmi,
    You please give me some more information related to your problem instead of pasting the total code here
    Warm Regards,
    Vijay

  • How tostored data  after clicking checkbox save in data base table

    REPORT  zreport                                 .
    TABLES:mseg,mard,mkpf.
    TYPE-POOLS:slis.
    DATA:BEGIN OF itab OCCURS 0,
         mblnr LIKE mseg-mblnr,
         matnr LIKE mseg-matnr,
         werks LIKE mard-werks,
         lgort LIKE mard-lgort,
         lgpbe LIKE mard-lgpbe,
         charg LIKE mseg-charg,
         bwart LIKE mseg-bwart,
         budat LIKE mkpf-budat,
         menge LIKE mseg-menge,
         meins LIKE mseg-meins,
         kostl LIKE mseg-kostl,
         aufnr LIKE mseg-aufnr,
         rsnum LIKE mseg-rsnum,
         checkbox TYPE c,
         END OF itab.
    data: itab2 like standard table of ztable with header line.
    DATA:  gt_fieldcat TYPE slis_t_fieldcat_alv,
           gw_fieldcat TYPE slis_fieldcat_alv,
           gt_layout TYPE slis_layout_alv.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS:smblnr FOR mseg-mblnr MODIF ID m1,
                   smatnr FOR mseg-matnr MODIF ID m2,
                   swerks FOR mard-werks MODIF ID m3,
                   slgort FOR mard-lgort MODIF ID m4,
                   slgpbe FOR mard-lgpbe MODIF ID m5,
                   scharg FOR mseg-charg MODIF ID m6,
                   sbwart FOR mseg-bwart MODIF ID m7,
                   skostl FOR mseg-kostl MODIF ID m8,
                   saufnr FOR mseg-aufnr MODIF ID m9,
                   srsnum FOR mseg-rsnum MODIF ID m10.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS:pre RADIOBUTTON GROUP radi USER-COMMAND ucomm DEFAULT 'X',
               pse RADIOBUTTON GROUP radi,
               bps RADIOBUTTON GROUP radi.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
    PARAMETER:layout TYPE i.
    SELECTION-SCREEN END OF BLOCK b3.
    START-OF-SELECTION.
    SELECT msegmblnr msegmatnr mardwerks mardlgort mardlgpbe msegcharg msegbwart mkpfbudat
        msegmenge  msegmeins msegkostl msegaufnr mseg~rsnum
    INTO TABLE itab FROM
              mseg JOIN mard ON mardmatnr EQ msegmatnr
                   JOIN mkpf ON msegmblnr EQ mkpfmblnr
                   WHERE mseg~matnr IN smatnr.
      IF sy-subrc EQ 0.
        SORT itab BY matnr.
        PERFORM display_alv_output.
      ENDIF.
    *&      Form  display_alv_output
          text
    -->  p1        text
    <--  p2        text
    FORM display_alv_output.
      REFRESH gt_fieldcat.
      gw_fieldcat-fieldname = 'MBLNR'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 1.
      gw_fieldcat-seltext_m = 'material document'.
      gw_fieldcat-key = 'x'.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'MATNR'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 2.
      gw_fieldcat-seltext_m = 'material'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'WERKS'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 3.
      gw_fieldcat-seltext_m = 'plant'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'LGORT'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 4.
      gw_fieldcat-seltext_m = 'storage location'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'LGPBE'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 5.
      gw_fieldcat-seltext_m = 'storage bin'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'CHARG'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 6.
      gw_fieldcat-seltext_m = 'Batch number'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'BWART'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 7.
      gw_fieldcat-seltext_m = 'Movement Type (Inventory Management)'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'BUDAT'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 8.
      gw_fieldcat-seltext_m = 'Posting Date in the Document'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'MENGE'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 9.
      gw_fieldcat-seltext_m = 'QUANTITY'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'MEINS'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 10.
      gw_fieldcat-seltext_m = 'Basic unit of measure'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'KOSTL'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 11.
      gw_fieldcat-seltext_m = 'Cost center'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'AUFNR'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 12.
      gw_fieldcat-seltext_m = 'Order Number'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'RSNUM'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 13.
      gw_fieldcat-seltext_m = 'Number of Reservation / Depe'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-col_pos = 14.
      gw_fieldcat-fieldname = 'CHECKBOX'.
      gw_fieldcat-seltext_m = 'Compltd'.
      gw_fieldcat-checkbox = 'X'.
      gw_fieldcat-edit = 'X'.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        I_CALLBACK_PROGRAM                = 'ZREPORT'
       I_CALLBACK_PF_STATUS_SET          = 'PF_STATUS'
       I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
        IS_LAYOUT                         = gt_layout
        IT_FIELDCAT                       = gt_fieldcat
       TABLES
         t_outtab                          = itab
      EXCEPTIONS
        PROGRAM_ERROR                     = 1
        OTHERS                            = 2.
    ENDFORM.                    " display_alv_output
    FORM USER_COMMAND USING P_UCOMM TYPE SY-UCOMM
    P_SELFLD TYPE SLIS_SELFIELD.
    *set pf-stATUS 'YSTATUS'.
    case p_ucomm.
    when 'SAVE'.
    Data ref1 type ref to cl_gui_alv_grid.
    CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
    E_GRID = ref1.
    call method ref1->check_changed_data.
    *itab2[] = itab[].
    delete itab where checkbox = space. "Mark is the field for the checkbox
    modify ztable from table itab2.
    endcase.
    ENDFORM.
    this is my cde error is  not came,
    plz check that one,send me reply

    REPORT  YH648_1111111.
    TABLES SSCRFIELDS.
    parameter : c  AS CHECKBOX USER-COMMAND SUNIL
    AT SELECTION-SCREEN .
    SY-UCOMM = SSCRFIELDS-UCOMM.
    START-OF-SELECTION.
      CASE SY-UCOMM.
        WHEN 'SUNIL'.
          WRITE 'SUNIL KUMAR .BETHINEDI'.
        WHEN ' '.
          WRITE 'BLA BLA BLA '.
    ENDCASE.
    THIS IS THE WAY U CAN USE THE CHECK BOX.
    INSTED OF THIS  WRITE 'SUNIL KUMAR .BETHINEDI'.
    U USE THE INSERT STATEMENT.

  • ALV - refresh data after value is selected from input help

    Hello,
    I have input ALV where after I enter material number and press enter, the logic goes ahead and populates description column by utilizing ON_DATA_CHECK event.
    Is is possible to trigger some kind of event after the value is selected from search help without hitting enter key?
    When the user done with using search help and clicks on material number that he needs, the value is populated in ALV cell, and this is where I need some event trigger to fire the logic to get description without pressing enter.
    Thanks,
    Alex

    Alex, in that case, the alternative you have is to:
    - Create a Z structure where you have all the table fields
    - Bind the Standard DDIC search help to the Material ID (Importing) and the Description (Exporting)
    - Create the whole context node in WD referencing that DDIC structure.
    The important thing here is that the context node as a whole must reference the structure in order for this to work, not just the fields affected. This may not be possible or desirable in certain cases.
    If you do this, the Description will be populated by the SH through its returning parameter, so you wont have to do anything in WD to retrieve it as for the manual input + Enter cases.
    Here you have some help on SHs parameters:
    http://help.sap.com/saphelp_nw70/helpdata/EN/35/bdb6e2c48411d1950800a0c929b3c3/frameset.htm
    Hope this helps.
    Edited by: Alejandro Bindi on Sep 19, 2008 12:36 PM

  • CCA_9 data source getting data after users are locked

    Hi All,
    In our company R/3 upgradation is going on from ECC5 to ECC6.  So I am clearing the Ques from LBWQ and SMQ1.
    So We have locked the all users and started loading data into BW,  When i loaded the 2LIS_02_BF and 2LIS_02_UM it gone fine and in the second attempt i got 0 from 0 records.
    But when I loaded with CCA_9 its getting data continuously.  That load has been scheduled for nearly 15 times but then also I am getting data into BW with different number of records
    Can any one please tell me why its happening and what is the resolvation for that.
    Regards
    Sankar

    Hi,
    Thanks for the reply.  But all the users are locked for sure.  Then also I am getting the data.
    Safety delta is set for 20 mins but after 1 hr also i got the data.  So for the time being we left that.
    But after upgradation I have to load it.
    So can anyone suggest me that can i go with delta or I have to do init   and  to do Init have we lock the users or not.
    Regards
    Sankar

  • How to handle user command method in module ALV Grid

    HI Experts,
                     I have 3 containers grid. 
                     GR_GRID              TYPE REF TO CL_GUI_ALV_GRID,
                     GR_GRID1              TYPE REF TO CL_GUI_ALV_GRID,
                     GR_GRID2              TYPE REF TO CL_GUI_ALV_GRID.
                     Please advise me how can I insert, save, delete 3 Module ALV Grid in method user command. How can i get which grid button (save, insert, delete) is clicked and how can i control those grid.
                    Thks in advance.
    CLASS LCL_EVENT_RECEIVER DEFINITION.
      PUBLIC SECTION.
        METHODS :
            HANDLE_TOOLBAR
                  FOR EVENT TOOLBAR OF CL_GUI_ALV_GRID
                                IMPORTING E_OBJECT E_INTERACTIVE SENDER,
            HANDLE_USER_COMMAND
                  FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID
                                IMPORTING E_UCOMM,
            HANDLE_DATA_CHANGED
                    FOR EVENT DATA_CHANGED OF CL_GUI_ALV_GRID
                          IMPORTING ER_DATA_CHANGED
                                    E_ONF4
                                    E_ONF4_BEFORE
                                    E_ONF4_AFTER,
            HANDLE_DOUBLE_CLICK
                     FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
                     IMPORTING E_ROW
                               E_COLUMN,
            HANDLE_HOTSPOT_CLICK
                      FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID
                           IMPORTING E_ROW_ID
                                     E_COLUMN_ID
                                     ES_ROW_NO.
    ENDCLASS. "(LCL_EVENT_RECEIVER DEFINITION) 
    METHOD HANDLE_USER_COMMAND.
         CLEAR G_CODE.
        G_CODE = E_UCOMM.
        CASE G_CODE.
          WHEN 'INSERT'.
            MESSAGE 'insert' TYPE 'I'.
           APPEND INITIAL LINE TO GT_MAIN.
          WHEN 'SAVE'.
           MODIFY ZTNBOOK FROM GT_MAIN.
            MESSAGE 'save' TYPE 'I'.
          WHEN 'DELETE'.
           DELETE FROM ZTNBOOK WHERE B_ID EQ GT_ZTBOOK-B_ID.
            MESSAGE 'delete' TYPE 'I'.
        ENDCASE.
        IF NOT G_CODE IS INITIAL.
      PBO, PAI
         CALL METHOD CL_GUI_CFW=>SET_NEW_OK_CODE
           EXPORTING
             NEW_CODE = G_CODE.
         CLEAR G_CODE.
        ENDIF.
      ENDMETHOD.

    Hi,
    Before posting, Search in SDN.
    See the below tread it will help you.
    Re: Get table for cl_gui_alv_grid

  • How to save data after clicking checkbox stored in databasetable

    TYPE-pools: slis.
    tables:mkpf,mseg,mard.
    TYPES: BEGIN OF tp_data,
          mblnr LIKE mseg-mblnr,
         matnr LIKE mseg-matnr,
         werks LIKE mard-werks,
         lgort LIKE mard-lgort,
         lgpbe LIKE mard-lgpbe,
         charg LIKE mseg-charg,
         bwart LIKE mseg-bwart,
         budat LIKE mkpf-budat,
         menge LIKE mseg-menge,
         meins LIKE mseg-meins,
         kostl LIKE mseg-kostl,
         aufnr LIKE mseg-aufnr,
         rsnum LIKE mseg-rsnum,
         checkbox TYPE c,
      __mark,
    END OF tp_data,
    tp_tbl_data TYPE STANDARD TABLE OF tp_data.
    Constants
    Data objects (variable declarations and definitions)
    Report data to be shown.
    DATA: it_data TYPE STANDARD TABLE OF tp_data.
    Heading of the report.
    DATA: t_heading TYPE slis_t_listheader.
    ========================== Selection Screen ==========================
      SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS:smblnr FOR mseg-mblnr MODIF ID m1,
                   smatnr FOR mseg-matnr MODIF ID m2,
                   swerks FOR mard-werks MODIF ID m3,
                   slgort FOR mard-lgort MODIF ID m4,
                   slgpbe FOR mard-lgpbe MODIF ID m5,
                   scharg FOR mseg-charg MODIF ID m6,
                   sbwart FOR mseg-bwart MODIF ID m7,
                   skostl FOR mseg-kostl MODIF ID m8,
                   saufnr FOR mseg-aufnr MODIF ID m9,
                   srsnum FOR mseg-rsnum MODIF ID m10.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS:pre RADIOBUTTON GROUP radi USER-COMMAND ucomm DEFAULT 'X',
               pse RADIOBUTTON GROUP radi,
               bps RADIOBUTTON GROUP radi.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
    PARAMETER:layout TYPE i.
    SELECTION-SCREEN END OF BLOCK b3.
    =========================== Event Blocks =============================
    AT selection-SCREEN.
    start-OF-selection.
    PERFORM get_data USING it_data.
    END-OF-selection.
    PERFORM build_alv USING it_data t_heading.
    =========================== Subroutines ==============================
    *&      Form  get_data
          Gets the information to be shown in the report.
    FORM get_data USING t_data TYPE tp_tbl_data.
      SELECT msegmblnr msegmatnr mardwerks mardlgort mardlgpbe msegcharg msegbwart mkpfbudat
        msegmenge  msegmeins msegkostl msegaufnr mseg~rsnum
      INTO CORRESPONDING FIELDS OF TABLE t_data
      FROM mseg
      JOIN mard ON mardmatnr EQ msegmatnr
                   JOIN mkpf ON msegmblnr EQ mkpfmblnr
                   WHERE mseg~matnr IN smatnr.
    ENDFORM.                    " get_data
    *&      Form  build_alv
          Builds and display the ALV Grid.
    FORM build_alv USING t_data TYPE tp_tbl_data
          t_heading  TYPE slis_t_listheader.
    ALV required data objects.
      DATA: w_title   TYPE lvc_title,
            w_comm    TYPE slis_formname,
            w_status  TYPE slis_formname,
            x_layout  TYPE slis_layout_alv,
            t_event    TYPE slis_t_event,
            t_fieldcat TYPE slis_t_fieldcat_alv,
            t_sort     TYPE slis_t_sortinfo_alv.
      REFRESH t_fieldcat.
      REFRESH t_event.
      REFRESH t_sort.
      CLEAR x_layout.
      CLEAR w_title.
    Field Catalog
      PERFORM set_fieldcat2 USING:
            1 'MBLNR' 'MBLNR' 'MSEG' space space space space space space space space space space space space t_fieldcat ,
            2 'MATNR' 'MATNR' 'MSEG' space space space space space space space space space space space space  t_fieldcat ,
            3 'WERKS' 'WERKS' 'MARD' space space space space space space space space space space space space  t_fieldcat,
            4 'LGORT' 'LGORT' 'MARD' space space space space space space space space space space space space t_fieldcat ,
            5 'LGPBE' 'LGPBE' 'MARD' space space space space space space space space space space space space t_fieldcat ,
            6 'CHARG' 'CHARG' 'MSEG' space space space space space space space space space space space space t_fieldcat ,
            7 'BWART' 'BWART' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
            8 'BUDAT' 'BUDAT' 'MKPF' space  space space space space space space space space space space space t_fieldcat,
            9 'MENGE' 'MENGE' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
            10 'MEINS' 'MEINS' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
            11 'KOSTL' 'KOSTL' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
            12 'AUFNR' 'AUFNR' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
            13 'RSNUM' 'RSNUM' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
            14 '__MARK' 'XFELD' space space space 'Select' 'Select this row' 'Sel' 'Select this row' space space space 'X' 'X' space t_fieldcat.
    Layout
      x_layout-zebra = 'X'.
    Top of page heading
      PERFORM set_top_page_heading USING t_heading t_event.
    Events
      PERFORM set_events USING t_event.
    GUI Status
      w_status = ''.
    User commands
      w_comm   = 'USER_COMMAND'.
    Order
    Example
    PERFORM set_order USING '<field>' 'IT_DATA' 'X' space space t_sort.
    PERFORM set_order USING 'LIFNR' 'IT_DATA' 'X' space 'X' t_sort.
    PERFORM set_order USING 'EBELN' 'IT_DATA' 'X' space 'X' t_sort.
    PERFORM set_order USING 'EBELP' 'IT_DATA' 'X' space space t_sort.
    Displays the ALV grid
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        i_callback_program       = sy-repid
        it_fieldcat              = t_fieldcat
        is_layout                = x_layout
        it_sort                  = t_sort
        i_callback_pf_status_set = w_status
        i_callback_user_command  = w_comm
        i_save                   = 'X'
        it_events                = t_event
        i_grid_title             = w_title
      TABLES
        t_outtab                 = t_data
      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.                    " build_alv.
    *&      Form  set_top_page_heading
          Creates the report headings.
    FORM set_top_page_heading USING t_heading TYPE slis_t_listheader
          t_events  TYPE slis_t_event.
      DATA: x_heading TYPE slis_listheader,
            x_event   TYPE LINE OF slis_t_event.
    Report title
      CLEAR t_heading[].
      CLEAR x_heading.
      x_heading-typ = 'H'.
      x_heading-info = 'Reporte Prueba'(001).
      APPEND x_heading TO t_heading.
    Program name
      CLEAR x_heading.
      x_heading-typ = 'S'.
      x_heading-KEY = 'Program: '.
      x_heading-info = sy-repid.
      APPEND x_heading TO t_heading.
    User who is running the report
      CLEAR x_heading.
      x_heading-typ = 'S'.
      x_heading-KEY = 'User: '.
      x_heading-info = sy-uname.
      APPEND x_heading TO t_heading.
    Date of execution
      CLEAR x_heading.
      x_heading-typ = 'S'.
      x_heading-KEY = 'Date: '.
      WRITE sy-datum TO x_heading-info.
      APPEND x_heading TO t_heading.
    Time of execution
      CLEAR x_heading.
      x_heading-typ = 'S'.
      x_heading-KEY = 'Time: '.
      WRITE sy-uzeit TO x_heading-info.
      APPEND x_heading TO t_heading.
    Top of page event
      x_event-name = slis_ev_top_of_page.
      x_event-FORM = 'TOP_OF_PAGE'.
      APPEND x_event TO t_events.
    ENDFORM.
    *&      Form  set_events
          Sets the events for ALV.
          The TOP_OF_PAGE event is alredy being registered in
          the set_top_page_heading subroutine.
    FORM set_events USING t_events TYPE slis_t_event.
      DATA: x_event   TYPE LINE OF slis_t_event.
    Example
    clear x_event.
    x_event-name = .
    x_event-form = .
    append x_event to t_event.
    ENDFORM.
    *&      Form  set_order
          Adds an entry to the order table.
    FORM set_order USING p_fieldname p_tabname p_up p_down p_subtot
          t_sort TYPE slis_t_sortinfo_alv.
      DATA: x_sort TYPE slis_sortinfo_alv.
      CLEAR x_sort.
      x_sort-fieldname = p_fieldname.
      x_sort-tabname   = p_tabname.
      x_sort-UP = p_up.
      x_sort-down = p_down.
      x_sort-subtot = p_subtot.
      APPEND x_sort TO t_sort.
    ENDFORM.                    "set_order
    *&      Form  set_fieldcat2
          Adds an entry to the field catalog.
    FORM set_fieldcat2 USING p_colpos p_fieldname p_ref_fieldname p_ref_tabname
          p_outputlen p_noout
          p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt
          p_hotspot p_showasicon p_checkbox p_edit
          p_dosum
          t_fieldcat TYPE slis_t_fieldcat_alv.
      DATA: wa_fieldcat TYPE slis_fieldcat_alv.
      CLEAR wa_fieldcat.
    General settings
      wa_fieldcat-fieldname = p_fieldname.
      wa_fieldcat-col_pos = p_colpos.
      wa_fieldcat-no_out = p_noout.
      wa_fieldcat-HOTSPOT = p_hotspot.
      wa_fieldcat-CHECKBOX = p_checkbox.
      wa_fieldcat-ICON = p_showasicon.
      wa_fieldcat-do_sum = p_dosum.
    Set reference fieldname, tablenam and rollname.
    If p_ref_tabname is not given, the ref_fieldname given is a data element.
    If p_ref_tabname is given, the ref_fieldname given is a field of a table. In case ref_fieldname is not given, it is copied from the fieldname.
      IF p_ref_tabname IS INITIAL.
        wa_fieldcat-rollname =   p_ref_fieldname.
      ELSE.
        wa_fieldcat-ref_tabname = p_ref_tabname.
        IF p_ref_fieldname EQ space.
          wa_fieldcat-ref_fieldname =   wa_fieldcat-fieldname.
        ELSE.
          wa_fieldcat-ref_fieldname =   p_ref_fieldname.
        ENDIF.
      ENDIF.
    Set output length.
      IF NOT p_outputlen IS INITIAL.
        wa_fieldcat-outputlen = p_outputlen.
      ENDIF.
    Set text headers.
      IF NOT p_seltext_m IS INITIAL.
        wa_fieldcat-seltext_m = p_seltext_m.
      ENDIF.
      IF NOT p_seltext_l IS INITIAL.
        wa_fieldcat-seltext_l = p_seltext_l.
      ENDIF.
      IF NOT p_seltext_s IS INITIAL.
        wa_fieldcat-seltext_s = p_seltext_s.
      ENDIF.
      IF NOT p_reptext_ddic IS INITIAL.
        wa_fieldcat-reptext_ddic = p_reptext_ddic.
      ENDIF.
      IF NOT p_ddictxt IS INITIAL.
        wa_fieldcat-ddictxt = p_ddictxt.
      ENDIF.
    Set as editable or not.
      IF p_edit IS NOT INITIAL.
        wa_fieldcat-INPUT     = 'X'.
        wa_fieldcat-EDIT     = 'X'.
      ENDIF.
      APPEND wa_fieldcat TO t_fieldcat.
    ENDFORM.                   "set_fieldcat2
    =========================== Subroutines called by ALV ================
    *&      Form  top_of_page
          Called on top_of_page ALV event.
          Prints the heading.
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        i_logo             = 'XXXXX'
        it_list_commentary = t_heading.
    ENDFORM.                    " alv_top_of_page
    *&      Form  user_command
          Called on user_command ALV event.
          Executes custom commands.
    FORM user_command USING r_ucomm     LIKE sy-ucomm
          rs_selfield TYPE slis_selfield.
    Example Code
    Executes a command considering the sy-ucomm.
    CASE r_ucomm.
       WHEN '&IC1'.
         Set your "double click action" response here.
         Example code: Create and display a status message.
         DATA: w_msg TYPE string,
               w_row(4) TYPE n.
         w_row = rs_selfield-tabindex.
         CONCATENATE 'You have clicked row' w_row
                     'field' rs_s lfield-fieldname
                     'with value' rs_selfield-value
                     INTO w_msg SEPARATED BY space.
         MESSAGE w_msg TYPE 'S'.
    ENDCASE.
    End of example code.
    ENDFORM.                    "user_command
    this is mycode,mblnr, matnr and checkbox both field had created in database table
    then save data after clicking checkbox data stored in database table,and next clickin checkboxes are no change. this my requirment.
    plz send me code .

    Try this
    In user_command form...
    LOOP AT IT_DATA.
    IF  CHECKBOX __MARK EQ 'X'.
    write logic wht u want....
    ENDIF.
    ENDLOOP.

  • How to save data after clicking checkbox  stored in database table

    TYPE-pools: slis.
    tables:mkpf,mseg,mard.
    TYPES: BEGIN OF tp_data,
          mblnr LIKE mseg-mblnr,
         matnr LIKE mseg-matnr,
         werks LIKE mard-werks,
         lgort LIKE mard-lgort,
         lgpbe LIKE mard-lgpbe,
         charg LIKE mseg-charg,
         bwart LIKE mseg-bwart,
         budat LIKE mkpf-budat,
         menge LIKE mseg-menge,
         meins LIKE mseg-meins,
         kostl LIKE mseg-kostl,
         aufnr LIKE mseg-aufnr,
         rsnum LIKE mseg-rsnum,
         checkbox TYPE c,
      __mark,
    END OF tp_data,
    tp_tbl_data TYPE STANDARD TABLE OF tp_data.
    Constants
    Data objects (variable declarations and definitions)
    Report data to be shown.
    DATA: it_data TYPE STANDARD TABLE OF tp_data.
    Heading of the report.
    DATA: t_heading TYPE slis_t_listheader.
    ========================== Selection Screen ==========================
      SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS:smblnr FOR mseg-mblnr MODIF ID m1,
                   smatnr FOR mseg-matnr MODIF ID m2,
                   swerks FOR mard-werks MODIF ID m3,
                   slgort FOR mard-lgort MODIF ID m4,
                   slgpbe FOR mard-lgpbe MODIF ID m5,
                   scharg FOR mseg-charg MODIF ID m6,
                   sbwart FOR mseg-bwart MODIF ID m7,
                   skostl FOR mseg-kostl MODIF ID m8,
                   saufnr FOR mseg-aufnr MODIF ID m9,
                   srsnum FOR mseg-rsnum MODIF ID m10.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS:pre RADIOBUTTON GROUP radi USER-COMMAND ucomm DEFAULT 'X',
               pse RADIOBUTTON GROUP radi,
               bps RADIOBUTTON GROUP radi.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
    PARAMETER:layout TYPE i.
    SELECTION-SCREEN END OF BLOCK b3.
    =========================== Event Blocks =============================
    AT selection-SCREEN.
    start-OF-selection.
    PERFORM get_data USING it_data.
    END-OF-selection.
    PERFORM build_alv USING it_data t_heading.
    =========================== Subroutines ==============================
    *&      Form  get_data
          Gets the information to be shown in the report.
    FORM get_data USING t_data TYPE tp_tbl_data.
      SELECT msegmblnr msegmatnr mardwerks mardlgort mardlgpbe msegcharg msegbwart mkpfbudat
        msegmenge  msegmeins msegkostl msegaufnr mseg~rsnum
      INTO CORRESPONDING FIELDS OF TABLE t_data
      FROM mseg
      JOIN mard ON mardmatnr EQ msegmatnr
                   JOIN mkpf ON msegmblnr EQ mkpfmblnr
                   WHERE mseg~matnr IN smatnr.
    ENDFORM.                    " get_data
    *&      Form  build_alv
          Builds and display the ALV Grid.
    FORM build_alv USING t_data TYPE tp_tbl_data
          t_heading  TYPE slis_t_listheader.
    ALV required data objects.
      DATA: w_title   TYPE lvc_title,
            w_comm    TYPE slis_formname,
            w_status  TYPE slis_formname,
            x_layout  TYPE slis_layout_alv,
            t_event    TYPE slis_t_event,
            t_fieldcat TYPE slis_t_fieldcat_alv,
            t_sort     TYPE slis_t_sortinfo_alv.
      REFRESH t_fieldcat.
      REFRESH t_event.
      REFRESH t_sort.
      CLEAR x_layout.
      CLEAR w_title.
    Field Catalog
      PERFORM set_fieldcat2 USING:
            1 'MBLNR' 'MBLNR' 'MSEG' space space space space space space space space space space space space t_fieldcat ,
            2 'MATNR' 'MATNR' 'MSEG' space space space space space space space space space space space space  t_fieldcat ,
            3 'WERKS' 'WERKS' 'MARD' space space space space space space space space space space space space  t_fieldcat,
            4 'LGORT' 'LGORT' 'MARD' space space space space space space space space space space space space t_fieldcat ,
            5 'LGPBE' 'LGPBE' 'MARD' space space space space space space space space space space space space t_fieldcat ,
            6 'CHARG' 'CHARG' 'MSEG' space space space space space space space space space space space space t_fieldcat ,
            7 'BWART' 'BWART' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
            8 'BUDAT' 'BUDAT' 'MKPF' space  space space space space space space space space space space space t_fieldcat,
            9 'MENGE' 'MENGE' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
            10 'MEINS' 'MEINS' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
            11 'KOSTL' 'KOSTL' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
            12 'AUFNR' 'AUFNR' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
            13 'RSNUM' 'RSNUM' 'MSEG' space  space space space space space space space space space space space t_fieldcat,
            14 '__MARK' 'XFELD' space space space 'Select' 'Select this row' 'Sel' 'Select this row' space space space 'X' 'X' space t_fieldcat.
    Layout
      x_layout-zebra = 'X'.
    Top of page heading
      PERFORM set_top_page_heading USING t_heading t_event.
    Events
      PERFORM set_events USING t_event.
    GUI Status
      w_status = ''.
    User commands
      w_comm   = 'USER_COMMAND'.
    Order
    Example
    PERFORM set_order USING '<field>' 'IT_DATA' 'X' space space t_sort.
    PERFORM set_order USING 'LIFNR' 'IT_DATA' 'X' space 'X' t_sort.
    PERFORM set_order USING 'EBELN' 'IT_DATA' 'X' space 'X' t_sort.
    PERFORM set_order USING 'EBELP' 'IT_DATA' 'X' space space t_sort.
    Displays the ALV grid
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        i_callback_program       = sy-repid
        it_fieldcat              = t_fieldcat
        is_layout                = x_layout
        it_sort                  = t_sort
        i_callback_pf_status_set = w_status
        i_callback_user_command  = w_comm
        i_save                   = 'X'
        it_events                = t_event
        i_grid_title             = w_title
      TABLES
        t_outtab                 = t_data
      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.                    " build_alv.
    *&      Form  set_top_page_heading
          Creates the report headings.
    FORM set_top_page_heading USING t_heading TYPE slis_t_listheader
          t_events  TYPE slis_t_event.
      DATA: x_heading TYPE slis_listheader,
            x_event   TYPE LINE OF slis_t_event.
    Report title
      CLEAR t_heading[].
      CLEAR x_heading.
      x_heading-typ = 'H'.
      x_heading-info = 'Reporte Prueba'(001).
      APPEND x_heading TO t_heading.
    Program name
      CLEAR x_heading.
      x_heading-typ = 'S'.
      x_heading-KEY = 'Program: '.
      x_heading-info = sy-repid.
      APPEND x_heading TO t_heading.
    User who is running the report
      CLEAR x_heading.
      x_heading-typ = 'S'.
      x_heading-KEY = 'User: '.
      x_heading-info = sy-uname.
      APPEND x_heading TO t_heading.
    Date of execution
      CLEAR x_heading.
      x_heading-typ = 'S'.
      x_heading-KEY = 'Date: '.
      WRITE sy-datum TO x_heading-info.
      APPEND x_heading TO t_heading.
    Time of execution
      CLEAR x_heading.
      x_heading-typ = 'S'.
      x_heading-KEY = 'Time: '.
      WRITE sy-uzeit TO x_heading-info.
      APPEND x_heading TO t_heading.
    Top of page event
      x_event-name = slis_ev_top_of_page.
      x_event-FORM = 'TOP_OF_PAGE'.
      APPEND x_event TO t_events.
    ENDFORM.
    *&      Form  set_events
          Sets the events for ALV.
          The TOP_OF_PAGE event is alredy being registered in
          the set_top_page_heading subroutine.
    FORM set_events USING t_events TYPE slis_t_event.
      DATA: x_event   TYPE LINE OF slis_t_event.
    Example
    clear x_event.
    x_event-name = .
    x_event-form = .
    append x_event to t_event.
    ENDFORM.
    *&      Form  set_order
          Adds an entry to the order table.
    FORM set_order USING p_fieldname p_tabname p_up p_down p_subtot
          t_sort TYPE slis_t_sortinfo_alv.
      DATA: x_sort TYPE slis_sortinfo_alv.
      CLEAR x_sort.
      x_sort-fieldname = p_fieldname.
      x_sort-tabname   = p_tabname.
      x_sort-UP = p_up.
      x_sort-down = p_down.
      x_sort-subtot = p_subtot.
      APPEND x_sort TO t_sort.
    ENDFORM.                    "set_order
    *&      Form  set_fieldcat2
          Adds an entry to the field catalog.
    FORM set_fieldcat2 USING p_colpos p_fieldname p_ref_fieldname p_ref_tabname
          p_outputlen p_noout
          p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt
          p_hotspot p_showasicon p_checkbox p_edit
          p_dosum
          t_fieldcat TYPE slis_t_fieldcat_alv.
      DATA: wa_fieldcat TYPE slis_fieldcat_alv.
      CLEAR wa_fieldcat.
    General settings
      wa_fieldcat-fieldname = p_fieldname.
      wa_fieldcat-col_pos = p_colpos.
      wa_fieldcat-no_out = p_noout.
      wa_fieldcat-HOTSPOT = p_hotspot.
      wa_fieldcat-CHECKBOX = p_checkbox.
      wa_fieldcat-ICON = p_showasicon.
      wa_fieldcat-do_sum = p_dosum.
    Set reference fieldname, tablenam and rollname.
    If p_ref_tabname is not given, the ref_fieldname given is a data element.
    If p_ref_tabname is given, the ref_fieldname given is a field of a table. In case ref_fieldname is not given, it is copied from the fieldname.
      IF p_ref_tabname IS INITIAL.
        wa_fieldcat-rollname =   p_ref_fieldname.
      ELSE.
        wa_fieldcat-ref_tabname = p_ref_tabname.
        IF p_ref_fieldname EQ space.
          wa_fieldcat-ref_fieldname =   wa_fieldcat-fieldname.
        ELSE.
          wa_fieldcat-ref_fieldname =   p_ref_fieldname.
        ENDIF.
      ENDIF.
    Set output length.
      IF NOT p_outputlen IS INITIAL.
        wa_fieldcat-outputlen = p_outputlen.
      ENDIF.
    Set text headers.
      IF NOT p_seltext_m IS INITIAL.
        wa_fieldcat-seltext_m = p_seltext_m.
      ENDIF.
      IF NOT p_seltext_l IS INITIAL.
        wa_fieldcat-seltext_l = p_seltext_l.
      ENDIF.
      IF NOT p_seltext_s IS INITIAL.
        wa_fieldcat-seltext_s = p_seltext_s.
      ENDIF.
      IF NOT p_reptext_ddic IS INITIAL.
        wa_fieldcat-reptext_ddic = p_reptext_ddic.
      ENDIF.
      IF NOT p_ddictxt IS INITIAL.
        wa_fieldcat-ddictxt = p_ddictxt.
      ENDIF.
    Set as editable or not.
      IF p_edit IS NOT INITIAL.
        wa_fieldcat-INPUT     = 'X'.
        wa_fieldcat-EDIT     = 'X'.
      ENDIF.
      APPEND wa_fieldcat TO t_fieldcat.
    ENDFORM.                   "set_fieldcat2
    =========================== Subroutines called by ALV ================
    *&      Form  top_of_page
          Called on top_of_page ALV event.
          Prints the heading.
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        i_logo             = 'XXXXX'
        it_list_commentary = t_heading.
    ENDFORM.                    " alv_top_of_page
    *&      Form  user_command
          Called on user_command ALV event.
          Executes custom commands.
    FORM user_command USING r_ucomm     LIKE sy-ucomm
          rs_selfield TYPE slis_selfield.
    Example Code
    Executes a command considering the sy-ucomm.
    CASE r_ucomm.
       WHEN '&IC1'.
         Set your "double click action" response here.
         Example code: Create and display a status message.
         DATA: w_msg TYPE string,
               w_row(4) TYPE n.
         w_row = rs_selfield-tabindex.
         CONCATENATE 'You have clicked row' w_row
                     'field' rs_s lfield-fieldname
                     'with value' rs_selfield-value
                     INTO w_msg SEPARATED BY space.
         MESSAGE w_msg TYPE 'S'.
    ENDCASE.
    End of example code.
    LOOP AT T_DATA.
    IF  it_data-__MARK EQ 'X'.
    insert ztable.
    ENDIF.
    ENDLOOP.
    ENDFORM.                    "user_command
    ur sending code loop is error ,plz check that one  after checking send me

    Hi,
    After displaying ALV report output, if you want to update database table based on your selected record, then use the below logic in your User_command subroutine.
    You will get the index of the selected record in rs_selfield-tabindex. using this index read the respective record from the internal table and move corresponding field to the table fields and then update.
    data : wa_data like t_data.
    read table t_data index rs_selfield-tabindex into wa_data.
    if sy-subrc = 0.
       move-corresponding wa_data to ztable.
       insert ztable.
    endif.
    thanks,
    sksingh

  • ALV Grid user command handling

    I am handling user command event of class cl_gui_alv_grid.
    In this , on click of a button , a pop up for selection criterion comes after which
    I have to append some data on alv.
    But I want to append this data only on frontend not on global internal table of alv
    as I want data change event to be called after this and doing some validations on this data.
    How can I upload data only on frontend and how to trigger data_changed method in user command event.
    I tried using check_changed_data of class cl_gui_alv_grid but some dump is coming for an attribute save_allowed of the class.

    Hi Suneel,
    For you requirement, I dont see why you cant include the functionality for the pop up within the USER_COMMAND event itself.
    Algorithm for the USER_COMMAND event:
    Step 1: Check E_UCOMM is 'ADD' or 'DELT'.
    Step 2: If yes, call FM for POPUP_TO_CONFIRM; else continue to other E_UCOMM
    Step 3: If ans is 'No', exit Method - else continue with Add/ Delete as required
    Cheers,
    Aditya

  • At user command in alv's

    how to handle at user commads in alv's?

    Hi Praveen
    Interactive Reports
    As the name suggests, the user can Interact with the report. We can have a drill down into the report data. For example, Column one of the report displays the material numbers, and the user feels that he needs some more specific data about the vendor for that material, he can HIDE that data under those material numbers.
    And when the user clicks the material number, another report (actually sub report/secondary list) which displays the vendor details will be displayed.
    We can have a basic list (number starts from 0) and 20 secondary lists (1 to 21).
    Events associated with Interactive Reports are:
    AT LINE-SELECTION
    AT USER-COMMAND
    AT PF<key>
    TOP-OF-PAGE DURING LINE-SELECTION.
    HIDE statement holds the data to be displayed in the secondary list.
    sy-lisel : contains data of the selected line.
    sy-lsind : contains the level of report (from 0 to 21)
    <u><b>Interactive Report Events:</b></u>
    AT LINE-SELECTION : This Event triggers when we double click a line on the list, when the event is triggered a new sublist is going to be generated. Under this event what ever the statements that are been return will be displayed on newly generated sublist.
    AT PFn: For predefined function keys...
    <u><b>AT USER-COMMAND :</b></u> It provides user functions keys.
    TOP-OF-PAGE DURING LINE-SELECTION :top of page event for secondary list.
    <b>check this sample code</b>
    TYPE-POOLS: slis.                      " ALV Global Types
    DATA :
      gt_user LIKE uinfo OCCURS 0 WITH HEADER LINE. " User info in SM04
    START-OF-SELECTION.
      PERFORM f_read_data.
      PERFORM f_display_data.
    *       Form  F_LIRE_DATA
    FORM f_read_data.
      REFRESH gt_user.
    * Get User's info
      CALL FUNCTION 'THUSRINFO'
           TABLES
                usr_tabl = gt_user.
    * Wait in a task
      PERFORM f_call_rfc_wait.
    ENDFORM.                               " F_READ_DATA
    *      Form  F_DISPLAY_DATA
    FORM f_display_data.
      DEFINE m_sort.
        add 1 to ls_sort-spos.
        ls_sort-fieldname = &1.
        append ls_sort to lt_sort.
      END-OF-DEFINITION.
      DEFINE m_event_exit.
        clear ls_event_exit.
        ls_event_exit-ucomm = &1.
        ls_event_exit-after = 'X'.
        append ls_event_exit to lt_event_exit.
      END-OF-DEFINITION.
      DATA :
        ls_layout     TYPE slis_layout_alv,
        lt_sort       TYPE slis_t_sortinfo_alv,
        ls_sort       TYPE slis_sortinfo_alv,
        lt_event_exit TYPE slis_t_event_exit,
        ls_event_exit TYPE slis_event_exit.
    * Build Sort Table
      m_sort 'ZEIT'.
    * Build Event Exit Table
      m_event_exit '&NTE'.                 " Refresh
      ls_layout-zebra = 'X'.
      ls_layout-colwidth_optimize = 'X'.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
           EXPORTING
                i_callback_program      = sy-cprog
                i_callback_user_command = 'USER_COMMAND'
                is_layout               = ls_layout
                i_structure_name        = 'UINFO'
                it_sort                 = lt_sort
                it_event_exit           = lt_event_exit
           TABLES
                t_outtab                = gt_user.
    ENDFORM.                               " F_DISPLAY_DATA
    *       FORM USER_COMMAND                                             *
    FORM user_command USING i_ucomm     TYPE syucomm
                            is_selfield TYPE slis_selfield.     "#EC CALLED
      CASE i_ucomm.
        WHEN '&NTE'.
          PERFORM f_read_data.
          is_selfield-refresh = 'X'.
          SET USER-COMMAND '&OPT'.         " Optimize columns width
      ENDCASE.
    ENDFORM.                               " USER_COMMAND
    *      Form  F_CALL_RFC_WAIT
    FORM f_call_rfc_wait.
      DATA lv_mssg(80).                                         "#EC NEEDED
    * Wait in a task
      CALL FUNCTION 'RFC_PING_AND_WAIT' STARTING NEW TASK '001'
        PERFORMING f_task_end ON END OF TASK
        EXPORTING
          seconds               = 5        " Refresh time
          busy_waiting          = space
        EXCEPTIONS
          RESOURCE_FAILURE      = 1
          communication_failure = 2  MESSAGE lv_mssg
          system_failure        = 3  MESSAGE lv_mssg
          OTHERS                = 4.
    ENDFORM.                               " F_CALL_RFC_WAIT
    *      Form  F_TASK_END
    FORM f_task_end USING u_taskname.
      DATA lv_mssg(80).                                         "#EC NEEDED
    * Receiving task results
      RECEIVE RESULTS FROM FUNCTION 'RFC_PING_AND_WAIT'
        EXCEPTIONS
          RESOURCE_FAILURE      = 1
          communication_failure = 2  MESSAGE lv_mssg
          system_failure        = 3  MESSAGE lv_mssg
          OTHERS                = 4.
      CHECK sy-subrc EQ 0.
      SET USER-COMMAND '&NTE'.             " Refresh
    ENDFORM.                               " F_TASK_END
    *************** END OF PROGRAM Z_ALV_AUTO_REFRESH *********************
    check this link too
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/snippets/abap-AddUsercommandfunctionalitytoALVgridreport&
    Reward all helpfull answers
    Regards
    Pavan

  • User command is not getting triggered in interactive ALV with LIST display

    Hi experts,
    I have developed an interactive ALV report with LIST display. Here, the issue is, when i double click a record in the primary ALV list, the control must go to the USER COMMAND event which i have written in my report. But the user command event is not getting triggered at all when i double click any record.
    It gives the following information instead.
    "Choose a valid function".
    (My user command name and its respective form name are same.)
    Here is my code..
    START-OF-SELECTION.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
          i_callback_program       = sy-repid
          i_structure_name         = p_table
          i_callback_user_command  = 'TST1'
          i_callback_pf_status_set = 'SET_PF_STATUS'
        TABLES
          t_outtab                 = <dyn_table>
        EXCEPTIONS
          program_error            = 1
          OTHERS                   = 2.
      IF sy-subrc <> 0.
      ENDIF.
    FORM tst1 USING r_ucomm LIKE sy-ucomm
                    rs_selfield TYPE slis_selfield.
    * Local data declaration
      DATA: li_tab TYPE REF TO data,
            l_line TYPE REF TO data.
    * Local field-symbols
      FIELD-SYMBOLS:<l_tab> TYPE table,
                    <l_wa>  TYPE ANY.
    * Create table
      CREATE DATA li_tab TYPE STANDARD TABLE OF (p_table).
      ASSIGN li_tab->* TO <l_tab>.
    * Create workarea
      CREATE DATA l_line LIKE LINE OF <l_tab>.
      ASSIGN l_line->* TO <l_wa>.  CASE r_ucomm.
    *   When a record is selected
        WHEN '&IC1'.
    *     Read the selected record
          READ TABLE <dyn_table> ASSIGNING <dyn_wa> INDEX
          rs_selfield-tabindex.      IF sy-subrc = 0.
    *       Store the record in an internal table
            APPEND <dyn_wa> TO <l_tab>.
    *       Fetch the field catalog info
            CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
              EXPORTING
                i_program_name         = 'Z_DEMO_PDF_JG'
                i_structure_name       = p_table
              CHANGING
                ct_fieldcat            = i_fieldcat
              EXCEPTIONS
                inconsistent_interface = 1
                program_error          = 2
                OTHERS                 = 3.
    Please advice what is the msitake i have done here..

    Read the following code:
    pass the  i_callback_user_command = g_user_command to the ALV function module and write the FORM user_command USING ucomm    LIKE sy-ucomm
                            selfield TYPE slis_selfield.
    as shown below.
    thanx
    Data for ALV display
    DATA  : gt_fieldcat TYPE slis_t_fieldcat_alv,
            gt_events           TYPE slis_t_event,
            g_variant LIKE disvariant,
            g_user_command      TYPE slis_formname VALUE 'USER_COMMAND',
            g_status            TYPE slis_formname VALUE 'SET_PF_STATUS',
            gt_list_top_of_page TYPE slis_t_listheader,
            g_repid LIKE sy-repid,
            gf_pos TYPE i
    Data for ALV display
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
               EXPORTING
              i_callback_program      = g_repid
                 i_callback_program      = sy-repid
                 it_fieldcat             = gt_fieldcat[]
           it_events               = gt_events[]
              i_callback_user_command = g_user_command
                 i_save                  = 'A'
                 is_variant              = g_variant
               TABLES
                 t_outtab                = it_print.
    FORM user_command USING ucomm    LIKE sy-ucomm
                            selfield TYPE slis_selfield.
      CASE ucomm.
        WHEN '&IC1'.
          CASE selfield-sel_tab_field.
            WHEN '1-KUNNR'.
              READ TABLE it_print INTO wa_print INDEX selfield-tabindex.
              IF sy-subrc = 0.
                SET PARAMETER ID 'BPA' FIELD wa_print-kunnr.
                CALL TRANSACTION 'BP'.
              ENDIF.
            WHEN '1-MATNR'.
              READ TABLE it_print INTO wa_print INDEX selfield-tabindex.
              IF sy-subrc = 0.
                SET PARAMETER ID 'JP_ISS' FIELD wa_print-matnr.
                CALL TRANSACTION 'JP29' AND SKIP FIRST SCREEN..
               GET PARAMETER ID 'WRK' FIELD wa_zprint-werks.
               SET PARAMETER ID 'VKO' FIELD wa_zprint-vkorg.
               SET PARAMETER ID 'VTW' FIELD wa_zprint-vtweg.
               CALL TRANSACTION 'JP29' AND SKIP FIRST SCREEN.
              ENDIF.
    Endcase.
    Endform.

  • How to stored data after clicking check box save in data base table

    TABLES:mseg,mard,mkpf.
    TYPE-POOLS:slis.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS:smblnr FOR mseg-mblnr MODIF ID m1,
                   smatnr FOR mseg-matnr MODIF ID m2,
                   swerks FOR mard-werks MODIF ID m3,
                   slgort FOR mard-lgort MODIF ID m4,
                   slgpbe FOR mard-lgpbe MODIF ID m5,
                   scharg FOR mseg-charg MODIF ID m6,
                   sbwart FOR mseg-bwart MODIF ID m7,
                   skostl FOR mseg-kostl MODIF ID m8,
                   saufnr FOR mseg-aufnr MODIF ID m9,
                   srsnum FOR mseg-rsnum MODIF ID m10.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS:pre RADIOBUTTON GROUP radi USER-COMMAND ucomm DEFAULT 'X',
               pse RADIOBUTTON GROUP radi,
               bps RADIOBUTTON GROUP radi.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
    PARAMETER:layout TYPE i.
    SELECTION-SCREEN END OF BLOCK b3.
    DATA:BEGIN OF itab OCCURS 0,
         mblnr LIKE mseg-mblnr,
         matnr LIKE mseg-matnr,
         werks LIKE mard-werks,
         lgort LIKE mard-lgort,
         lgpbe LIKE mard-lgpbe,
         charg LIKE mseg-charg,
         bwart LIKE mseg-bwart,
         budat LIKE mkpf-budat,
         menge LIKE mseg-menge,
         meins LIKE mseg-meins,
         kostl LIKE mseg-kostl,
         aufnr LIKE mseg-aufnr,
         rsnum LIKE mseg-rsnum,
         checkbox TYPE c,
         END OF itab.
    DATA:  gt_fieldcat TYPE slis_t_fieldcat_alv,
           gw_fieldcat TYPE slis_fieldcat_alv,
           gt_layout TYPE slis_layout_alv.
    START-OF-SELECTION.
    SELECT msegmblnr msegmatnr mardwerks mardlgort mardlgpbe msegcharg msegbwart mkpfbudat
        msegmenge  msegmeins msegkostl msegaufnr mseg~rsnum
    INTO TABLE itab FROM
              mseg JOIN mard ON mardmatnr EQ msegmatnr
                   JOIN mkpf ON msegmblnr EQ mkpfmblnr
                   WHERE mseg~matnr IN smatnr.
      IF sy-subrc EQ 0.
        SORT itab BY matnr.
        PERFORM display_alv_output.
      ENDIF.
    *&      Form  display_alv_output
          text
    -->  p1        text
    <--  p2        text
    FORM display_alv_output.
      REFRESH gt_fieldcat.
      gw_fieldcat-fieldname = 'MBLNR'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 1.
      gw_fieldcat-seltext_m = 'material document'.
      gw_fieldcat-key = 'x'.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'MATNR'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 2.
      gw_fieldcat-seltext_m = 'material'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'WERKS'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 3.
      gw_fieldcat-seltext_m = 'plant'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'LGORT'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 4.
      gw_fieldcat-seltext_m = 'storage location'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'LGPBE'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 5.
      gw_fieldcat-seltext_m = 'storage bin'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'CHARG'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 6.
      gw_fieldcat-seltext_m = 'Batch number'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'BWART'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 7.
      gw_fieldcat-seltext_m = 'Movement Type (Inventory Management)'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'BUDAT'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 8.
      gw_fieldcat-seltext_m = 'Posting Date in the Document'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'MENGE'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 9.
      gw_fieldcat-seltext_m = 'QUANTITY'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'MEINS'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 10.
      gw_fieldcat-seltext_m = 'Basic unit of measure'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'KOSTL'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 11.
      gw_fieldcat-seltext_m = 'Cost center'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'AUFNR'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 12.
      gw_fieldcat-seltext_m = 'Order Number'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-fieldname = 'RSNUM'.
      gw_fieldcat-tabname = 'itab'.
      gw_fieldcat-col_pos = 13.
      gw_fieldcat-seltext_m = 'Number of Reservation / Depe'.
      gw_fieldcat-key = ' '.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
      gw_fieldcat-col_pos = 14.
      gw_fieldcat-fieldname = 'CHECKBOX'.
      gw_fieldcat-seltext_m = 'Compltd'.
      gw_fieldcat-checkbox = 'X'.
      gw_fieldcat-edit = 'X'.
      APPEND gw_fieldcat TO gt_fieldcat.
      CLEAR gw_fieldcat.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        I_CALLBACK_PROGRAM                = 'ZREPORT'
        IS_LAYOUT                         = gt_layout
        IT_FIELDCAT                       = gt_fieldcat
       TABLES
         t_outtab                          = itab
      EXCEPTIONS
        PROGRAM_ERROR                     = 1
        OTHERS                            = 2.
    ENDFORM.                    " display_alv_output
    this is mycode .
    send me replay.

    Hi Lakshmi,
           Can u explain briefly what is ur requirement. U mean to say that after clicking the checkbox in data base table or Screen?
    Regards,
      Jayaram...

Maybe you are looking for

  • Is there any way to prevent an ipad from using open wifi

    There are many open public wifi networks where my son can access inappropriate adult websites.  Is there a way to prevent him from using open public wifi networks. Dont they have restrictions so that people cannot access inappropriate material.?

  • Unable to combine opened PDF files to create onr merged file...

    Hi: Using acrobat 8 under Vista. In version 7 of Acrobat Pro, I was able to merge all of my opened PDFs documents to create a single PDF. I do not see that option in Acrobat 8, is it gone? Now I have to insert every page in another one to merge the f

  • Quick look for text files with non-registered extensions

    It seems there was a way in 10.5 and 10.6 to register certain extensions with Quick Look to tell them how to preview a file. I have a lot of plain text files with different extensions that are not initially recognized by Quick Look. How do I hack the

  • Bug Report: Lr3 does not report error when SDK version is too low.

    Lr3 should report an error if SDK is under-version'd. For example, I have this in one of my plugins:     LrSdkVersion = 2.0,     LrSdkMinimumVersion = 2.0, -- minimum SDK version required by this plugin. If I put Lr3.0 specific stuff in the plugin, L

  • Problem compiling Web Service EJB endpoint - URGENT

    I was compiling a simple HelloWorld SLSB as an EJB Endpoints. The problem is with the ejb-jar.xml when compiler encounters xmlns namespace dec - <ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee" version="2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchem