<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ALV CheckBox Probs in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985785#M952200</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This is my code..pl find out if i have missed out any thing..&lt;/P&gt;&lt;P&gt;everything is appearing corrctly...but no reflected in the itab&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;

REPORT  zbbnd_updation_ksd .

TABLES:zbbndmast.

DATA:diff TYPE i.

TYPES:BEGIN OF st_ce1tvse,
      sel TYPE CHAR1,
      kokrs TYPE zbbndmast-kokrs,
      period TYPE zbbndmast-period,
      budat TYPE zbbndmast-budat,
      kndnr TYPE zbbndmast-kndnr,
      kdgrp TYPE zbbndmast-kdgrp,
      land1 TYPE zbbndmast-land1,
      vkorg TYPE zbbndmast-vkorg,
      vtweg TYPE zbbndmast-vtweg,
      spart TYPE zbbndmast-spart,
      werks TYPE zbbndmast-werks,
      prctr TYPE zbbndmast-prctr,
      gsber TYPE zbbndmast-gsber,
      artnr TYPE zbbndmast-artnr,
      matkl TYPE zbbndmast-matkl,
      mvgr1 TYPE zbbndmast-mvgr1,
      mvgr2 TYPE zbbndmast-mvgr2,
      mvgr3 TYPE zbbndmast-mvgr3,
      mvgr4 TYPE zbbndmast-mvgr4,
      mvgr5 TYPE zbbndmast-mvgr5,
      frwae TYPE zbbndmast-frwae,
      absmg TYPE zbbndmast-absmg,
      erlos TYPE zbbndmast-erlos,
      absmgval TYPE zbbndmast-absmgval,
      erlosval TYPE zbbndmast-erlosval,
      mvg1d TYPE tvm1t-bezei,
      mvg3d TYPE tvm3t-bezei,
      mvg2d TYPE tvm2t-bezei,
      mvg4d TYPE tvm4t-bezei,
      mvg5d TYPE tvm5t-bezei,
      wgbez TYPE t023t-wgbez,
      vtwegd TYPE tvtwt-vtext,
      spartd TYPE tspat-vtext,
      prctrd TYPE cepct-ktext,
      kdgrpd TYPE t151t-ktext,
     END OF st_ce1tvse.

TYPES:BEGIN OF st_tvm3t,
      mvgr3 TYPE tvm3t-mvgr3,
      bezei TYPE tvm3t-bezei,
     END OF st_tvm3t.

DATA:it_tvm3t TYPE STANDARD TABLE OF st_tvm3t INITIAL SIZE 0.
DATA:wa_tvm3t TYPE st_tvm3t.

TYPES:BEGIN OF st_tvm2t,
      mvgr2 TYPE tvm2t-mvgr2,
      bezei TYPE tvm2t-bezei,
     END OF st_tvm2t.

DATA:it_tvm2t TYPE STANDARD TABLE OF st_tvm2t INITIAL SIZE 0.
DATA:wa_tvm2t TYPE st_tvm2t.

TYPES:BEGIN OF st_tvm4t,
    mvgr4 TYPE tvm4t-mvgr4,
    bezei TYPE tvm4t-bezei,
   END OF st_tvm4t.

DATA:it_tvm4t TYPE STANDARD TABLE OF st_tvm4t INITIAL SIZE 0.
DATA:wa_tvm4t TYPE st_tvm4t.

TYPES:BEGIN OF st_tvm5t,
    mvgr5 TYPE tvm5t-mvgr5,
    bezei TYPE tvm5t-bezei,
   END OF st_tvm5t.

DATA:it_tvm5t TYPE STANDARD TABLE OF st_tvm5t INITIAL SIZE 0.
DATA:wa_tvm5t TYPE st_tvm5t.

TYPES:BEGIN OF st_tvm1t,
    mvgr1 TYPE tvm1t-mvgr1,
    bezei TYPE tvm1t-bezei,
   END OF st_tvm1t.

DATA:it_tvm1t TYPE STANDARD TABLE OF st_tvm1t INITIAL SIZE 0.
DATA:wa_tvm1t TYPE st_tvm1t.


TYPES:BEGIN OF st_maktx,
        matnr TYPE marc-matnr,
        maktx TYPE makt-maktx,
     END OF st_maktx.

DATA:it_maktx TYPE STANDARD TABLE OF st_maktx INITIAL SIZE 0.
DATA:wa_maktx TYPE st_maktx.

TYPES:BEGIN OF st_matkl,
        matkl TYPE t023t-matkl,
        wgbez TYPE  t023t-wgbez,
      END OF st_matkl.

DATA: it_matkl TYPE STANDARD TABLE OF st_matkl INITIAL SIZE 0.
DATA:wa_matkl TYPE st_matkl.

TYPES:BEGIN OF st_vtweg,
      vtweg TYPE tvtwt-vtweg,
      vtext TYPE tvtwt-vtext,
      END OF st_vtweg.

DATA: it_vtweg TYPE STANDARD TABLE OF st_vtweg INITIAL SIZE 0.
DATA:wa_vtweg TYPE st_vtweg.

TYPES:BEGIN OF st_spart,
      spart   TYPE tspat-spart,
      vtext TYPE tspat-vtext,
      END OF st_spart.

DATA: it_spart TYPE STANDARD TABLE OF st_spart INITIAL SIZE 0.
DATA:wa_spart TYPE st_spart.

TYPES:BEGIN OF st_prctr,
      prctr   TYPE cepct-prctr,
      ktext TYPE cepct-ktext,
      END OF st_prctr.

DATA: it_prctr TYPE STANDARD TABLE OF st_prctr INITIAL SIZE 0.
DATA:wa_prctr TYPE st_prctr.

TYPES:BEGIN OF st_kdgrp,
      kdgrp   TYPE t151t-kdgrp,
      ktext TYPE t151t-ktext,
      END OF st_kdgrp.

DATA: it_kdgrp TYPE STANDARD TABLE OF st_kdgrp INITIAL SIZE 0.
DATA:wa_kdgrp TYPE st_kdgrp.

DATA:it_tvse TYPE STANDARD TABLE OF st_ce1tvse INITIAL SIZE 0.

FIELD-SYMBOLS:&amp;lt;fs_tvse&amp;gt; TYPE st_ce1tvse.

TYPE-POOLS:slis.

DATA:alvfld TYPE slis_fieldcat_alv.
DATA:fieldcat TYPE STANDARD TABLE OF slis_fieldcat_alv INITIAL SIZE 0.
DATA:layout TYPE slis_layout_alv,
it_comments TYPE slis_t_listheader,
comments LIKE LINE OF it_comments.


DEFINE macro_alv.
  alvfld-col_pos = &amp;amp;3.
  alvfld-fieldname = &amp;amp;1.
  alvfld-seltext_m = &amp;amp;2.
  case &amp;amp;1.
    when 'SEL'.
      alvfld-checkbox = 'X'.
      alvfld-edit = 'X'.
    when 'ABSMGVAL' or 'ERLOSVAL'.
      alvfld-edit = 'X'.
    when 'ERLOS' or 'ABSMG'.
      alvfld-emphasize = 'C310'.
    when 'SEL' or 'PERIOD' or 'BUDAT' or 'KNDNR' or 'KDGRPD' or
          'VKORG' or 'VTWEGD' or 'SPARTD' or 'WERKS' or
          'PRCTRD'.
      alvfld-fix_column = 'X'.
  endcase.
  append alvfld to fieldcat.
  clear alvfld.
END-OF-DEFINITION.



PARAMETERS:pa_kokrs TYPE ce1tvse-kokrs DEFAULT '9000' MODIF ID abc.
SELECT-OPTIONS:so_budat FOR zbbndmast-budat OBLIGATORY NO-EXTENSION.


AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    IF screen-group1 = 'ABC'.
      screen-input = '0'.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

INITIALIZATION.
  PERFORM init_alv_catalouge.

AT SELECTION-SCREEN ON so_budat.

  diff = ABS( so_budat-low - so_budat-high ).
  IF diff &amp;gt; 2.
    MESSAGE 'Date range must be for 3 days !!' TYPE 'E'.
  ENDIF.

  IF so_budat-low+4(2) &amp;lt;&amp;gt; so_budat-high+4(2).
    MESSAGE 'Month must not be different !!' TYPE 'E'.
  ENDIF.


START-OF-SELECTION.

  TYPE-POOLS:ftis.
  DATA:fiscal_year TYPE ftis_gjahr.
  DATA:fiscal_month TYPE ftis_monat.
  DATA:period TYPE ce1tvse-perio.

  PERFORM convert_date_to_fiscal_period USING  pa_kokrs so_budat-low
                                        CHANGING fiscal_year
                                                 fiscal_month.
  CONCATENATE  fiscal_year  '0' fiscal_month INTO    period.
  CONDENSE  period NO-GAPS.

*  PERFORM check_data_existense.

  SELECT kokrs perio AS period budat kndnr kdgrp land1
         vkorg vtweg spart werks prctr gsber artnr matkl
         mvgr1 mvgr2 mvgr3 mvgr4 mvgr5 frwae SUM( absmg ) AS absmg
         SUM( erlos ) AS erlos
         FROM ce1tvse INTO CORRESPONDING FIELDS OF TABLE it_tvse
    WHERE paledger = '01'
    AND vrgar BETWEEN 'A' AND 'I'
    AND perio = period
    AND gjahr = fiscal_year
    AND perde = fiscal_month
    AND budat IN so_budat
    AND kokrs = pa_kokrs
    GROUP BY kokrs perio budat kndnr kdgrp land1 vkorg  vtweg spart
             werks prctr gsber artnr matkl mvgr1 mvgr2 mvgr3 mvgr4 mvgr5
             frwae.
  IF sy-subrc = 0.
    PERFORM get_descriptions.
    PERFORM process_itab.
    PERFORM build_alv_header.
    PERFORM display_alv.
  ELSE.
    MESSAGE 'No data Found !!' TYPE 'I'.
    STOP.
  ENDIF.

END-OF-SELECTION.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  CONVERT_DATE_TO_FISCAL_PERIOD
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      --&amp;gt;P_PA_KOKRS  text
*      --&amp;gt;P_SO_BUDAT_LOW  text
*      &amp;lt;--P_FISCAL_YEAR  text
*      &amp;lt;--P_FISCAL_MONTH  text
*----------------------------------------------------------------------*
FORM convert_date_to_fiscal_period  USING    p_pa_kokrs
                                             p_so_budat_low
                                    CHANGING p_fiscal_year
                                             p_fiscal_month.

  CALL FUNCTION 'FTI_FISCAL_YEAR_MONTH_GET'
    EXPORTING
      i_bukrs = p_pa_kokrs
      i_budat = p_so_budat_low
    IMPORTING
      e_gjahr = p_fiscal_year
      e_monat = p_fiscal_month.


ENDFORM.                    " CONVERT_DATE_TO_FISCAL_PERIOD
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  CHECK_DATA_EXISTENSE
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM check_data_existense .

  SELECT SINGLE * FROM zbbndmast  WHERE
    kokrs = pa_kokrs
    AND period = period
    AND budat IN so_budat .
  IF sy-subrc = 0.
    MESSAGE 'Data already exists for this period' TYPE 'I'.
    STOP.
  ENDIF.

ENDFORM.                    " CHECK_DATA_EXISTENSE
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  GET_DESCRIPTIONS
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM get_descriptions .

  SORT it_tvse BY mvgr3 ASCENDING.

  SELECT mvgr3 bezei INTO TABLE it_tvm3t FROM tvm3t
         FOR ALL ENTRIES IN it_tvse
         WHERE mvgr3 = it_tvse-mvgr3
         AND spras = sy-langu.

  SORT it_tvse BY mvgr1 ASCENDING.

  SELECT mvgr1 bezei INTO TABLE it_tvm1t FROM tvm1t
         FOR ALL ENTRIES IN it_tvse
         WHERE mvgr1 = it_tvse-mvgr1
         AND spras = sy-langu.

  SORT it_tvse BY mvgr2 ASCENDING.

  SELECT mvgr2 bezei INTO TABLE it_tvm2t FROM tvm2t
         FOR ALL ENTRIES IN it_tvse
         WHERE mvgr2 = it_tvse-mvgr2
         AND spras = sy-langu.

  SORT it_tvse BY mvgr4 ASCENDING.

  SELECT mvgr4 bezei INTO TABLE it_tvm4t FROM tvm4t
         FOR ALL ENTRIES IN it_tvse
         WHERE mvgr4 = it_tvse-mvgr4
         AND spras = sy-langu.

  SORT it_tvse BY mvgr5 ASCENDING.

  SELECT mvgr5 bezei INTO TABLE it_tvm5t FROM tvm5t
         FOR ALL ENTRIES IN it_tvse
         WHERE mvgr5 = it_tvse-mvgr5
         AND spras = sy-langu.

  SORT it_tvse BY artnr ASCENDING.

  SELECT matnr maktx INTO TABLE it_maktx FROM makt
       FOR ALL ENTRIES IN it_tvse
       WHERE matnr = it_tvse-artnr
       AND spras = sy-langu.

  SORT it_tvse BY matkl ASCENDING.

  SELECT matkl wgbez INTO TABLE it_matkl FROM t023t
       FOR ALL ENTRIES IN it_tvse
       WHERE matkl = it_tvse-matkl
       AND spras = sy-langu.

  SORT it_tvse BY vtweg ASCENDING.

  SELECT vtweg vtext INTO TABLE it_vtweg FROM tvtwt
       FOR ALL ENTRIES IN it_tvse
       WHERE vtweg = it_tvse-vtweg
       AND spras = sy-langu.

  SORT it_tvse BY spart ASCENDING.

  SELECT spart vtext INTO TABLE it_spart FROM tspat
       FOR ALL ENTRIES IN it_tvse
       WHERE spart = it_tvse-spart
       AND spras = sy-langu.

  SORT it_tvse BY prctr ASCENDING.

  SELECT prctr ktext INTO TABLE it_prctr FROM cepct
       FOR ALL ENTRIES IN it_tvse
       WHERE prctr = it_tvse-prctr
       AND spras = sy-langu.

  SORT it_tvse BY kdgrp ASCENDING.

  SELECT kdgrp ktext INTO TABLE it_kdgrp FROM t151t
       FOR ALL ENTRIES IN it_tvse
       WHERE kdgrp = it_tvse-kdgrp
       AND spras = sy-langu.


ENDFORM.                    " GET_DESCRIPTIONS
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  PROCESS_ITAB
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM process_itab .

  SORT it_tvse ASCENDING.

  LOOP AT it_tvse ASSIGNING &amp;lt;fs_tvse&amp;gt;.

    READ TABLE it_kdgrp INTO wa_kdgrp WITH KEY kdgrp = &amp;lt;fs_tvse&amp;gt;-kdgrp.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-kdgrpd = wa_kdgrp-ktext.
    ENDIF.

    READ TABLE it_tvm3t INTO wa_tvm3t WITH KEY mvgr3 = &amp;lt;fs_tvse&amp;gt;-mvgr3.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-mvg3d = wa_tvm3t-bezei.
    ENDIF.

    READ TABLE it_tvm1t INTO wa_tvm1t WITH KEY mvgr1 = &amp;lt;fs_tvse&amp;gt;-mvgr1.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-mvg1d = wa_tvm1t-bezei.
    ENDIF.

    READ TABLE it_tvm2t INTO wa_tvm2t WITH KEY mvgr2 = &amp;lt;fs_tvse&amp;gt;-mvgr2.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-mvg2d = wa_tvm2t-bezei.
    ENDIF.

    READ TABLE it_tvm4t INTO wa_tvm4t WITH KEY mvgr4 = &amp;lt;fs_tvse&amp;gt;-mvgr4.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-mvg4d = wa_tvm4t-bezei.
    ENDIF.

    READ TABLE it_tvm5t INTO wa_tvm5t WITH KEY mvgr5 = &amp;lt;fs_tvse&amp;gt;-mvgr5.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-mvg5d = wa_tvm5t-bezei.
    ENDIF.

    READ TABLE it_prctr INTO wa_prctr WITH KEY prctr = &amp;lt;fs_tvse&amp;gt;-prctr.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-prctrd = wa_prctr-ktext.
    ENDIF.

    READ TABLE it_matkl INTO wa_matkl WITH KEY matkl = &amp;lt;fs_tvse&amp;gt;-matkl.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-wgbez = wa_matkl-wgbez.
    ENDIF.

    READ TABLE it_vtweg INTO wa_vtweg WITH KEY vtweg = &amp;lt;fs_tvse&amp;gt;-vtweg.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-vtwegd = wa_vtweg-vtext.
    ENDIF.

    READ TABLE it_spart INTO wa_spart WITH KEY spart = &amp;lt;fs_tvse&amp;gt;-spart.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-spartd = wa_spart-vtext.
    ENDIF.


  ENDLOOP.

ENDFORM.                    " PROCESS_ITAB
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  INIT_ALV_CATALOUGE
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM init_alv_catalouge .


  macro_alv 'SEL' 'Sel' '1'.
  macro_alv 'PERIOD' 'Period' '2'.
  macro_alv 'BUDAT' 'Date' '3'.
  macro_alv 'KNDNR' 'Customer' '4'.
  macro_alv 'KDGRPD' 'Cust.Grp' '5'.
  macro_alv 'VKORG' 'Sales.Org' '6'.
  macro_alv 'VTWEGD' 'Dist.Chnl' '7'.
  macro_alv 'SPARTD' 'Div' '8'.
  macro_alv 'WERKS' 'Plant' '9'.
  macro_alv 'PRCTRD' 'Prft.Cntr' '10'.
  macro_alv 'GSBER' 'Buss.Area' '11'.
  macro_alv 'ARTNR' 'Part No' '12'.
  macro_alv 'WGBEZ' 'Matl.Grp' '13'.
  macro_alv 'MVG1D' 'Matl.Grp1' '14'.
  macro_alv 'MVG2D' 'Matl.Grp2' '15'.
  macro_alv 'MVG3D' 'Matl.Grp3' '16'.
  macro_alv 'MVG4D' 'Matl.Grp4' '17'.
  macro_alv 'MVG5D' 'Matl.Grp5' '18'.
  macro_alv 'ABSMG' 'Sale.Qty' '19'.
  macro_alv 'ABSMGVAL' 'In.Sale.Qty' '20'.
  macro_alv 'ERLOS' 'Act.Sales' '21'.
  macro_alv 'ERLOSVAL' 'In.Act.Sales' '22'.


ENDFORM.                    " INIT_ALV_CATALOUGE
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  BUILD_ALV_HEADER
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM build_alv_header .

  DATA:dat1(10) TYPE c.
  DATA:dat2(10) TYPE c.

  WRITE so_budat-low TO dat1.
  WRITE so_budat-high TO dat2.

  comments-typ = 'H'.
  comments-info = 'BBND Updation'.
  APPEND comments TO it_comments.
  CLEAR comments.

  comments-typ = 'S'.
  comments-key = 'Controlling Area:'.
  comments-info = pa_kokrs.
  APPEND comments TO it_comments.
  CLEAR comments.

  comments-typ = 'S'.
  comments-key = 'Date:'.
  CONCATENATE dat1 '-' dat2 INTO comments-info.
  APPEND comments TO it_comments.
  CLEAR comments.

ENDFORM.                    " BUILD_ALV_HEADER
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  DISPLAY_ALV
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM display_alv .

  layout-colwidth_optimize = 'X'.
  layout-box_fieldname = 'SEL'.
  layout-box_tabname = 'IT_TVSE'.
*  layout-edit = 'X'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program       = 'ZBBND_UPDATION_KSD'
      I_CALLBACK_PF_STATUS_SET = 'SET_GUI'
      i_callback_user_command  = 'USER_COMMAND'
*      i_callback_top_of_page   = 'ALV_TOP'
      is_layout                = layout
      I_STRUCTURE_NAME        = 'ST_TVSE'
      it_fieldcat              = fieldcat[]
    TABLES
      t_outtab                 = it_tvse[].
  .
  IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


ENDFORM.                    " DISPLAY_ALV

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  ALV_TOP
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM alv_top.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      i_logo             = 'ENJOYSAP_LOGO'
      it_list_commentary = it_comments.

ENDFORM.                    "ALV_TOP

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  set_gui
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM set_gui USING  extab TYPE slis_t_extab.
  SET PF-STATUS 'UPD'.
ENDFORM.                    "set_gui

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  user_command
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      --&amp;gt;SY-UCOMM   text
*      --&amp;gt;SELFIELD   text
*----------------------------------------------------------------------*
FORM user_command USING ucomm LIKE sy-ucomm
                                 cursor TYPE slis_selfield.
  DATA:ok_code TYPE sy-ucomm.
  ok_code = ucomm.

  CASE ok_code.
    WHEN 'EXI'.
      LEAVE.
    WHEN 'SAV'.
      PERFORM save_entries_into_ztable.
    WHEN 'DES'.
      LOOP AT it_tvse ASSIGNING &amp;lt;fs_tvse&amp;gt; WHERE sel = 'X'  .
        &amp;lt;fs_tvse&amp;gt;-sel = ' '.
      ENDLOOP.
      PERFORM display_alv.
  ENDCASE.

ENDFORM. "user_command
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  SAVE_ENTRIES_INTO_ZTABLE
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM save_entries_into_ztable .

  DATA:wa_insert TYPE zbbndmast.

  LOOP AT it_tvse ASSIGNING &amp;lt;fs_tvse&amp;gt;.
    wa_insert-mandt = sy-mandt.
    MOVE-CORRESPONDING &amp;lt;fs_tvse&amp;gt; TO wa_insert.
    zbbndmast = wa_insert.
    INSERT zbbndmast.
    IF sy-subrc = 0.
      COMMIT WORK.
    ENDIF.
  ENDLOOP.

  MESSAGE 'Data Successfully Updated' TYPE 'S'.

ENDFORM.                    " SAVE_ENTRIES_INTO_ZTABLE

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 16 Jun 2008 08:57:37 GMT</pubDate>
    <dc:creator>kesavadas_thekkillath</dc:creator>
    <dc:date>2008-06-16T08:57:37Z</dc:date>
    <item>
      <title>ALV CheckBox Probs</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985778#M952193</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;i have displayed a alv with check boxes..&lt;/P&gt;&lt;P&gt;and two fields as editable..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;now every thing is displayed exzactly..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; i will i select a check box and input values to that fields&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but when capturing the user command the internal table values are not modified&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;no 'X' in check box field...null vaues in the modified field..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;whatz the problem&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jun 2008 08:12:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985778#M952193</guid>
      <dc:creator>kesavadas_thekkillath</dc:creator>
      <dc:date>2008-06-16T08:12:14Z</dc:date>
    </item>
    <item>
      <title>Re: ALV CheckBox Probs</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985779#M952194</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt; In the structure of final internal table take one char field for checkbox.In the subroutine for 'USER_COMMAND',write :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Loop at itab where checkbox = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-------------------" /&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jun 2008 08:14:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985779#M952194</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-16T08:14:50Z</dc:date>
    </item>
    <item>
      <title>Re: ALV CheckBox Probs</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985780#M952195</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are you using OOPS ALV? If so use method CHECK_CHANGED_DATA of Grid object to get the modified data in your internal table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the user command, call this method in the first statement, then write your code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Lakshmi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Santhanalakshmi V on Jun 16, 2008 1:46 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jun 2008 08:16:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985780#M952195</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-16T08:16:08Z</dc:date>
    </item>
    <item>
      <title>Re: ALV CheckBox Probs</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985781#M952196</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;normal ALV...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jun 2008 08:17:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985781#M952196</guid>
      <dc:creator>kesavadas_thekkillath</dc:creator>
      <dc:date>2008-06-16T08:17:34Z</dc:date>
    </item>
    <item>
      <title>Re: ALV CheckBox Probs</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985782#M952197</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For checkbox in normal ALV:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Declare a field in internal table of type CHAR1.&lt;/P&gt;&lt;P&gt;2. Assign that field name to  parameter box_fieldname in Layout structure&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then in the user command that field is automatically updated with the modification. (X when checked).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For other fields i don't have an idea.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Lakshmi.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jun 2008 08:42:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985782#M952197</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-16T08:42:17Z</dc:date>
    </item>
    <item>
      <title>Re: ALV CheckBox Probs</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985783#M952198</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;in list display its coming as 'X.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but in list display how to make the field editable&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jun 2008 08:48:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985783#M952198</guid>
      <dc:creator>kesavadas_thekkillath</dc:creator>
      <dc:date>2008-06-16T08:48:42Z</dc:date>
    </item>
    <item>
      <title>Re: ALV CheckBox Probs</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985784#M952199</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In the fieldcatelog set the EDIT parameter to X for this check box field. Then it will come in editable mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It works with ALV Grid also. REUSE_ALV_GRID_DISPLAY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think editing other fields and obtaining the values back in the internal table is only possible in OOPS ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Lakshmi.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jun 2008 08:54:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985784#M952199</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-16T08:54:21Z</dc:date>
    </item>
    <item>
      <title>Re: ALV CheckBox Probs</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985785#M952200</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This is my code..pl find out if i have missed out any thing..&lt;/P&gt;&lt;P&gt;everything is appearing corrctly...but no reflected in the itab&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;

REPORT  zbbnd_updation_ksd .

TABLES:zbbndmast.

DATA:diff TYPE i.

TYPES:BEGIN OF st_ce1tvse,
      sel TYPE CHAR1,
      kokrs TYPE zbbndmast-kokrs,
      period TYPE zbbndmast-period,
      budat TYPE zbbndmast-budat,
      kndnr TYPE zbbndmast-kndnr,
      kdgrp TYPE zbbndmast-kdgrp,
      land1 TYPE zbbndmast-land1,
      vkorg TYPE zbbndmast-vkorg,
      vtweg TYPE zbbndmast-vtweg,
      spart TYPE zbbndmast-spart,
      werks TYPE zbbndmast-werks,
      prctr TYPE zbbndmast-prctr,
      gsber TYPE zbbndmast-gsber,
      artnr TYPE zbbndmast-artnr,
      matkl TYPE zbbndmast-matkl,
      mvgr1 TYPE zbbndmast-mvgr1,
      mvgr2 TYPE zbbndmast-mvgr2,
      mvgr3 TYPE zbbndmast-mvgr3,
      mvgr4 TYPE zbbndmast-mvgr4,
      mvgr5 TYPE zbbndmast-mvgr5,
      frwae TYPE zbbndmast-frwae,
      absmg TYPE zbbndmast-absmg,
      erlos TYPE zbbndmast-erlos,
      absmgval TYPE zbbndmast-absmgval,
      erlosval TYPE zbbndmast-erlosval,
      mvg1d TYPE tvm1t-bezei,
      mvg3d TYPE tvm3t-bezei,
      mvg2d TYPE tvm2t-bezei,
      mvg4d TYPE tvm4t-bezei,
      mvg5d TYPE tvm5t-bezei,
      wgbez TYPE t023t-wgbez,
      vtwegd TYPE tvtwt-vtext,
      spartd TYPE tspat-vtext,
      prctrd TYPE cepct-ktext,
      kdgrpd TYPE t151t-ktext,
     END OF st_ce1tvse.

TYPES:BEGIN OF st_tvm3t,
      mvgr3 TYPE tvm3t-mvgr3,
      bezei TYPE tvm3t-bezei,
     END OF st_tvm3t.

DATA:it_tvm3t TYPE STANDARD TABLE OF st_tvm3t INITIAL SIZE 0.
DATA:wa_tvm3t TYPE st_tvm3t.

TYPES:BEGIN OF st_tvm2t,
      mvgr2 TYPE tvm2t-mvgr2,
      bezei TYPE tvm2t-bezei,
     END OF st_tvm2t.

DATA:it_tvm2t TYPE STANDARD TABLE OF st_tvm2t INITIAL SIZE 0.
DATA:wa_tvm2t TYPE st_tvm2t.

TYPES:BEGIN OF st_tvm4t,
    mvgr4 TYPE tvm4t-mvgr4,
    bezei TYPE tvm4t-bezei,
   END OF st_tvm4t.

DATA:it_tvm4t TYPE STANDARD TABLE OF st_tvm4t INITIAL SIZE 0.
DATA:wa_tvm4t TYPE st_tvm4t.

TYPES:BEGIN OF st_tvm5t,
    mvgr5 TYPE tvm5t-mvgr5,
    bezei TYPE tvm5t-bezei,
   END OF st_tvm5t.

DATA:it_tvm5t TYPE STANDARD TABLE OF st_tvm5t INITIAL SIZE 0.
DATA:wa_tvm5t TYPE st_tvm5t.

TYPES:BEGIN OF st_tvm1t,
    mvgr1 TYPE tvm1t-mvgr1,
    bezei TYPE tvm1t-bezei,
   END OF st_tvm1t.

DATA:it_tvm1t TYPE STANDARD TABLE OF st_tvm1t INITIAL SIZE 0.
DATA:wa_tvm1t TYPE st_tvm1t.


TYPES:BEGIN OF st_maktx,
        matnr TYPE marc-matnr,
        maktx TYPE makt-maktx,
     END OF st_maktx.

DATA:it_maktx TYPE STANDARD TABLE OF st_maktx INITIAL SIZE 0.
DATA:wa_maktx TYPE st_maktx.

TYPES:BEGIN OF st_matkl,
        matkl TYPE t023t-matkl,
        wgbez TYPE  t023t-wgbez,
      END OF st_matkl.

DATA: it_matkl TYPE STANDARD TABLE OF st_matkl INITIAL SIZE 0.
DATA:wa_matkl TYPE st_matkl.

TYPES:BEGIN OF st_vtweg,
      vtweg TYPE tvtwt-vtweg,
      vtext TYPE tvtwt-vtext,
      END OF st_vtweg.

DATA: it_vtweg TYPE STANDARD TABLE OF st_vtweg INITIAL SIZE 0.
DATA:wa_vtweg TYPE st_vtweg.

TYPES:BEGIN OF st_spart,
      spart   TYPE tspat-spart,
      vtext TYPE tspat-vtext,
      END OF st_spart.

DATA: it_spart TYPE STANDARD TABLE OF st_spart INITIAL SIZE 0.
DATA:wa_spart TYPE st_spart.

TYPES:BEGIN OF st_prctr,
      prctr   TYPE cepct-prctr,
      ktext TYPE cepct-ktext,
      END OF st_prctr.

DATA: it_prctr TYPE STANDARD TABLE OF st_prctr INITIAL SIZE 0.
DATA:wa_prctr TYPE st_prctr.

TYPES:BEGIN OF st_kdgrp,
      kdgrp   TYPE t151t-kdgrp,
      ktext TYPE t151t-ktext,
      END OF st_kdgrp.

DATA: it_kdgrp TYPE STANDARD TABLE OF st_kdgrp INITIAL SIZE 0.
DATA:wa_kdgrp TYPE st_kdgrp.

DATA:it_tvse TYPE STANDARD TABLE OF st_ce1tvse INITIAL SIZE 0.

FIELD-SYMBOLS:&amp;lt;fs_tvse&amp;gt; TYPE st_ce1tvse.

TYPE-POOLS:slis.

DATA:alvfld TYPE slis_fieldcat_alv.
DATA:fieldcat TYPE STANDARD TABLE OF slis_fieldcat_alv INITIAL SIZE 0.
DATA:layout TYPE slis_layout_alv,
it_comments TYPE slis_t_listheader,
comments LIKE LINE OF it_comments.


DEFINE macro_alv.
  alvfld-col_pos = &amp;amp;3.
  alvfld-fieldname = &amp;amp;1.
  alvfld-seltext_m = &amp;amp;2.
  case &amp;amp;1.
    when 'SEL'.
      alvfld-checkbox = 'X'.
      alvfld-edit = 'X'.
    when 'ABSMGVAL' or 'ERLOSVAL'.
      alvfld-edit = 'X'.
    when 'ERLOS' or 'ABSMG'.
      alvfld-emphasize = 'C310'.
    when 'SEL' or 'PERIOD' or 'BUDAT' or 'KNDNR' or 'KDGRPD' or
          'VKORG' or 'VTWEGD' or 'SPARTD' or 'WERKS' or
          'PRCTRD'.
      alvfld-fix_column = 'X'.
  endcase.
  append alvfld to fieldcat.
  clear alvfld.
END-OF-DEFINITION.



PARAMETERS:pa_kokrs TYPE ce1tvse-kokrs DEFAULT '9000' MODIF ID abc.
SELECT-OPTIONS:so_budat FOR zbbndmast-budat OBLIGATORY NO-EXTENSION.


AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    IF screen-group1 = 'ABC'.
      screen-input = '0'.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

INITIALIZATION.
  PERFORM init_alv_catalouge.

AT SELECTION-SCREEN ON so_budat.

  diff = ABS( so_budat-low - so_budat-high ).
  IF diff &amp;gt; 2.
    MESSAGE 'Date range must be for 3 days !!' TYPE 'E'.
  ENDIF.

  IF so_budat-low+4(2) &amp;lt;&amp;gt; so_budat-high+4(2).
    MESSAGE 'Month must not be different !!' TYPE 'E'.
  ENDIF.


START-OF-SELECTION.

  TYPE-POOLS:ftis.
  DATA:fiscal_year TYPE ftis_gjahr.
  DATA:fiscal_month TYPE ftis_monat.
  DATA:period TYPE ce1tvse-perio.

  PERFORM convert_date_to_fiscal_period USING  pa_kokrs so_budat-low
                                        CHANGING fiscal_year
                                                 fiscal_month.
  CONCATENATE  fiscal_year  '0' fiscal_month INTO    period.
  CONDENSE  period NO-GAPS.

*  PERFORM check_data_existense.

  SELECT kokrs perio AS period budat kndnr kdgrp land1
         vkorg vtweg spart werks prctr gsber artnr matkl
         mvgr1 mvgr2 mvgr3 mvgr4 mvgr5 frwae SUM( absmg ) AS absmg
         SUM( erlos ) AS erlos
         FROM ce1tvse INTO CORRESPONDING FIELDS OF TABLE it_tvse
    WHERE paledger = '01'
    AND vrgar BETWEEN 'A' AND 'I'
    AND perio = period
    AND gjahr = fiscal_year
    AND perde = fiscal_month
    AND budat IN so_budat
    AND kokrs = pa_kokrs
    GROUP BY kokrs perio budat kndnr kdgrp land1 vkorg  vtweg spart
             werks prctr gsber artnr matkl mvgr1 mvgr2 mvgr3 mvgr4 mvgr5
             frwae.
  IF sy-subrc = 0.
    PERFORM get_descriptions.
    PERFORM process_itab.
    PERFORM build_alv_header.
    PERFORM display_alv.
  ELSE.
    MESSAGE 'No data Found !!' TYPE 'I'.
    STOP.
  ENDIF.

END-OF-SELECTION.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  CONVERT_DATE_TO_FISCAL_PERIOD
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      --&amp;gt;P_PA_KOKRS  text
*      --&amp;gt;P_SO_BUDAT_LOW  text
*      &amp;lt;--P_FISCAL_YEAR  text
*      &amp;lt;--P_FISCAL_MONTH  text
*----------------------------------------------------------------------*
FORM convert_date_to_fiscal_period  USING    p_pa_kokrs
                                             p_so_budat_low
                                    CHANGING p_fiscal_year
                                             p_fiscal_month.

  CALL FUNCTION 'FTI_FISCAL_YEAR_MONTH_GET'
    EXPORTING
      i_bukrs = p_pa_kokrs
      i_budat = p_so_budat_low
    IMPORTING
      e_gjahr = p_fiscal_year
      e_monat = p_fiscal_month.


ENDFORM.                    " CONVERT_DATE_TO_FISCAL_PERIOD
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  CHECK_DATA_EXISTENSE
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM check_data_existense .

  SELECT SINGLE * FROM zbbndmast  WHERE
    kokrs = pa_kokrs
    AND period = period
    AND budat IN so_budat .
  IF sy-subrc = 0.
    MESSAGE 'Data already exists for this period' TYPE 'I'.
    STOP.
  ENDIF.

ENDFORM.                    " CHECK_DATA_EXISTENSE
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  GET_DESCRIPTIONS
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM get_descriptions .

  SORT it_tvse BY mvgr3 ASCENDING.

  SELECT mvgr3 bezei INTO TABLE it_tvm3t FROM tvm3t
         FOR ALL ENTRIES IN it_tvse
         WHERE mvgr3 = it_tvse-mvgr3
         AND spras = sy-langu.

  SORT it_tvse BY mvgr1 ASCENDING.

  SELECT mvgr1 bezei INTO TABLE it_tvm1t FROM tvm1t
         FOR ALL ENTRIES IN it_tvse
         WHERE mvgr1 = it_tvse-mvgr1
         AND spras = sy-langu.

  SORT it_tvse BY mvgr2 ASCENDING.

  SELECT mvgr2 bezei INTO TABLE it_tvm2t FROM tvm2t
         FOR ALL ENTRIES IN it_tvse
         WHERE mvgr2 = it_tvse-mvgr2
         AND spras = sy-langu.

  SORT it_tvse BY mvgr4 ASCENDING.

  SELECT mvgr4 bezei INTO TABLE it_tvm4t FROM tvm4t
         FOR ALL ENTRIES IN it_tvse
         WHERE mvgr4 = it_tvse-mvgr4
         AND spras = sy-langu.

  SORT it_tvse BY mvgr5 ASCENDING.

  SELECT mvgr5 bezei INTO TABLE it_tvm5t FROM tvm5t
         FOR ALL ENTRIES IN it_tvse
         WHERE mvgr5 = it_tvse-mvgr5
         AND spras = sy-langu.

  SORT it_tvse BY artnr ASCENDING.

  SELECT matnr maktx INTO TABLE it_maktx FROM makt
       FOR ALL ENTRIES IN it_tvse
       WHERE matnr = it_tvse-artnr
       AND spras = sy-langu.

  SORT it_tvse BY matkl ASCENDING.

  SELECT matkl wgbez INTO TABLE it_matkl FROM t023t
       FOR ALL ENTRIES IN it_tvse
       WHERE matkl = it_tvse-matkl
       AND spras = sy-langu.

  SORT it_tvse BY vtweg ASCENDING.

  SELECT vtweg vtext INTO TABLE it_vtweg FROM tvtwt
       FOR ALL ENTRIES IN it_tvse
       WHERE vtweg = it_tvse-vtweg
       AND spras = sy-langu.

  SORT it_tvse BY spart ASCENDING.

  SELECT spart vtext INTO TABLE it_spart FROM tspat
       FOR ALL ENTRIES IN it_tvse
       WHERE spart = it_tvse-spart
       AND spras = sy-langu.

  SORT it_tvse BY prctr ASCENDING.

  SELECT prctr ktext INTO TABLE it_prctr FROM cepct
       FOR ALL ENTRIES IN it_tvse
       WHERE prctr = it_tvse-prctr
       AND spras = sy-langu.

  SORT it_tvse BY kdgrp ASCENDING.

  SELECT kdgrp ktext INTO TABLE it_kdgrp FROM t151t
       FOR ALL ENTRIES IN it_tvse
       WHERE kdgrp = it_tvse-kdgrp
       AND spras = sy-langu.


ENDFORM.                    " GET_DESCRIPTIONS
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  PROCESS_ITAB
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM process_itab .

  SORT it_tvse ASCENDING.

  LOOP AT it_tvse ASSIGNING &amp;lt;fs_tvse&amp;gt;.

    READ TABLE it_kdgrp INTO wa_kdgrp WITH KEY kdgrp = &amp;lt;fs_tvse&amp;gt;-kdgrp.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-kdgrpd = wa_kdgrp-ktext.
    ENDIF.

    READ TABLE it_tvm3t INTO wa_tvm3t WITH KEY mvgr3 = &amp;lt;fs_tvse&amp;gt;-mvgr3.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-mvg3d = wa_tvm3t-bezei.
    ENDIF.

    READ TABLE it_tvm1t INTO wa_tvm1t WITH KEY mvgr1 = &amp;lt;fs_tvse&amp;gt;-mvgr1.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-mvg1d = wa_tvm1t-bezei.
    ENDIF.

    READ TABLE it_tvm2t INTO wa_tvm2t WITH KEY mvgr2 = &amp;lt;fs_tvse&amp;gt;-mvgr2.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-mvg2d = wa_tvm2t-bezei.
    ENDIF.

    READ TABLE it_tvm4t INTO wa_tvm4t WITH KEY mvgr4 = &amp;lt;fs_tvse&amp;gt;-mvgr4.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-mvg4d = wa_tvm4t-bezei.
    ENDIF.

    READ TABLE it_tvm5t INTO wa_tvm5t WITH KEY mvgr5 = &amp;lt;fs_tvse&amp;gt;-mvgr5.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-mvg5d = wa_tvm5t-bezei.
    ENDIF.

    READ TABLE it_prctr INTO wa_prctr WITH KEY prctr = &amp;lt;fs_tvse&amp;gt;-prctr.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-prctrd = wa_prctr-ktext.
    ENDIF.

    READ TABLE it_matkl INTO wa_matkl WITH KEY matkl = &amp;lt;fs_tvse&amp;gt;-matkl.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-wgbez = wa_matkl-wgbez.
    ENDIF.

    READ TABLE it_vtweg INTO wa_vtweg WITH KEY vtweg = &amp;lt;fs_tvse&amp;gt;-vtweg.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-vtwegd = wa_vtweg-vtext.
    ENDIF.

    READ TABLE it_spart INTO wa_spart WITH KEY spart = &amp;lt;fs_tvse&amp;gt;-spart.
    IF sy-subrc = 0.
      &amp;lt;fs_tvse&amp;gt;-spartd = wa_spart-vtext.
    ENDIF.


  ENDLOOP.

ENDFORM.                    " PROCESS_ITAB
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  INIT_ALV_CATALOUGE
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM init_alv_catalouge .


  macro_alv 'SEL' 'Sel' '1'.
  macro_alv 'PERIOD' 'Period' '2'.
  macro_alv 'BUDAT' 'Date' '3'.
  macro_alv 'KNDNR' 'Customer' '4'.
  macro_alv 'KDGRPD' 'Cust.Grp' '5'.
  macro_alv 'VKORG' 'Sales.Org' '6'.
  macro_alv 'VTWEGD' 'Dist.Chnl' '7'.
  macro_alv 'SPARTD' 'Div' '8'.
  macro_alv 'WERKS' 'Plant' '9'.
  macro_alv 'PRCTRD' 'Prft.Cntr' '10'.
  macro_alv 'GSBER' 'Buss.Area' '11'.
  macro_alv 'ARTNR' 'Part No' '12'.
  macro_alv 'WGBEZ' 'Matl.Grp' '13'.
  macro_alv 'MVG1D' 'Matl.Grp1' '14'.
  macro_alv 'MVG2D' 'Matl.Grp2' '15'.
  macro_alv 'MVG3D' 'Matl.Grp3' '16'.
  macro_alv 'MVG4D' 'Matl.Grp4' '17'.
  macro_alv 'MVG5D' 'Matl.Grp5' '18'.
  macro_alv 'ABSMG' 'Sale.Qty' '19'.
  macro_alv 'ABSMGVAL' 'In.Sale.Qty' '20'.
  macro_alv 'ERLOS' 'Act.Sales' '21'.
  macro_alv 'ERLOSVAL' 'In.Act.Sales' '22'.


ENDFORM.                    " INIT_ALV_CATALOUGE
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  BUILD_ALV_HEADER
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM build_alv_header .

  DATA:dat1(10) TYPE c.
  DATA:dat2(10) TYPE c.

  WRITE so_budat-low TO dat1.
  WRITE so_budat-high TO dat2.

  comments-typ = 'H'.
  comments-info = 'BBND Updation'.
  APPEND comments TO it_comments.
  CLEAR comments.

  comments-typ = 'S'.
  comments-key = 'Controlling Area:'.
  comments-info = pa_kokrs.
  APPEND comments TO it_comments.
  CLEAR comments.

  comments-typ = 'S'.
  comments-key = 'Date:'.
  CONCATENATE dat1 '-' dat2 INTO comments-info.
  APPEND comments TO it_comments.
  CLEAR comments.

ENDFORM.                    " BUILD_ALV_HEADER
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  DISPLAY_ALV
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM display_alv .

  layout-colwidth_optimize = 'X'.
  layout-box_fieldname = 'SEL'.
  layout-box_tabname = 'IT_TVSE'.
*  layout-edit = 'X'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program       = 'ZBBND_UPDATION_KSD'
      I_CALLBACK_PF_STATUS_SET = 'SET_GUI'
      i_callback_user_command  = 'USER_COMMAND'
*      i_callback_top_of_page   = 'ALV_TOP'
      is_layout                = layout
      I_STRUCTURE_NAME        = 'ST_TVSE'
      it_fieldcat              = fieldcat[]
    TABLES
      t_outtab                 = it_tvse[].
  .
  IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


ENDFORM.                    " DISPLAY_ALV

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  ALV_TOP
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM alv_top.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      i_logo             = 'ENJOYSAP_LOGO'
      it_list_commentary = it_comments.

ENDFORM.                    "ALV_TOP

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  set_gui
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM set_gui USING  extab TYPE slis_t_extab.
  SET PF-STATUS 'UPD'.
ENDFORM.                    "set_gui

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  user_command
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      --&amp;gt;SY-UCOMM   text
*      --&amp;gt;SELFIELD   text
*----------------------------------------------------------------------*
FORM user_command USING ucomm LIKE sy-ucomm
                                 cursor TYPE slis_selfield.
  DATA:ok_code TYPE sy-ucomm.
  ok_code = ucomm.

  CASE ok_code.
    WHEN 'EXI'.
      LEAVE.
    WHEN 'SAV'.
      PERFORM save_entries_into_ztable.
    WHEN 'DES'.
      LOOP AT it_tvse ASSIGNING &amp;lt;fs_tvse&amp;gt; WHERE sel = 'X'  .
        &amp;lt;fs_tvse&amp;gt;-sel = ' '.
      ENDLOOP.
      PERFORM display_alv.
  ENDCASE.

ENDFORM. "user_command
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  SAVE_ENTRIES_INTO_ZTABLE
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM save_entries_into_ztable .

  DATA:wa_insert TYPE zbbndmast.

  LOOP AT it_tvse ASSIGNING &amp;lt;fs_tvse&amp;gt;.
    wa_insert-mandt = sy-mandt.
    MOVE-CORRESPONDING &amp;lt;fs_tvse&amp;gt; TO wa_insert.
    zbbndmast = wa_insert.
    INSERT zbbndmast.
    IF sy-subrc = 0.
      COMMIT WORK.
    ENDIF.
  ENDLOOP.

  MESSAGE 'Data Successfully Updated' TYPE 'S'.

ENDFORM.                    " SAVE_ENTRIES_INTO_ZTABLE

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jun 2008 08:57:37 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985785#M952200</guid>
      <dc:creator>kesavadas_thekkillath</dc:creator>
      <dc:date>2008-06-16T08:57:37Z</dc:date>
    </item>
    <item>
      <title>Re: ALV CheckBox Probs</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985786#M952201</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hiiii...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This can also be done with out using OOPS Alv also ....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;just use &amp;amp;REFRESH as sy-ucomm...that will make the internal table column to be 'X'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards &lt;/P&gt;&lt;P&gt;chandu reddy&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jun 2008 08:58:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985786#M952201</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-16T08:58:23Z</dc:date>
    </item>
    <item>
      <title>Re: ALV CheckBox Probs</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985787#M952202</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please refer the link below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.saptechnical.com/Tutorials/ALV/Edit/demo.htm" target="test_blank"&gt;http://www.saptechnical.com/Tutorials/ALV/Edit/demo.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Sriram Ponna.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jun 2008 08:59:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985787#M952202</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-16T08:59:04Z</dc:date>
    </item>
    <item>
      <title>Re: ALV CheckBox Probs</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985788#M952203</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;    even i faced the same problem when i have a similar requirement. in order to populate' X' value in internal table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;set the fcode to '&lt;STRONG&gt;&amp;amp;REFRESH'&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;THEN USE EVENT_EXIT STRUCTURE IN SLIS. &lt;/P&gt;&lt;P&gt; populate the fields event_exit-after = 'X'.&lt;/P&gt;&lt;P&gt;pass it to grid display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;u will definitiely get it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rewards if useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rgds.,&lt;/P&gt;&lt;P&gt;subash.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jun 2008 09:00:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985788#M952203</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-16T09:00:15Z</dc:date>
    </item>
    <item>
      <title>Re: ALV CheckBox Probs</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985789#M952204</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;whatz this &amp;amp;refresh...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pl give a code piece&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jun 2008 09:27:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985789#M952204</guid>
      <dc:creator>kesavadas_thekkillath</dc:creator>
      <dc:date>2008-06-16T09:27:46Z</dc:date>
    </item>
    <item>
      <title>Re: ALV CheckBox Probs</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985790#M952205</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  once u check the checkboxes u will be clicking on some buttton right. so make that button's fcode to &lt;STRONG&gt;&amp;amp;refresh&lt;/STRONG&gt;. and also use slis_event_exit structure and pass the values in a workarea . Then pass this workarea to grid_display for i_event_exit = workarea.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In Usercommand Form.&lt;/P&gt;&lt;P&gt; case sy-ucomm. &lt;/P&gt;&lt;P&gt;when '&amp;amp;REFRESH&amp;amp;'.//at this step debug and see u can find the checkbox values to 'X'.&lt;/P&gt;&lt;P&gt; read table......&lt;/P&gt;&lt;P&gt;ur logic. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rgds.,&lt;/P&gt;&lt;P&gt;subash&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jun 2008 09:33:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-checkbox-probs/m-p/3985790#M952205</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-16T09:33:53Z</dc:date>
    </item>
  </channel>
</rss>

