<?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 with Editable Fields in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-with-editable-fields/m-p/4985583#M1161509</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;the better way is to pass only the needed 5 rows from excel to alv , rather than restricting the rows..&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 13 Jan 2009 07:47:11 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2009-01-13T07:47:11Z</dc:date>
    <item>
      <title>ALV with Editable Fields</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-with-editable-fields/m-p/4985582#M1161508</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;i am developing a reort for GR Equipment Creation and using an ALV which has some editable fields.&lt;/P&gt;&lt;P&gt;In that ALV for example i have 5 rows but when i copy data from EXCEL having more than 5 rows and paste those in those editable fields, the number of rows in the ALV is increased.&lt;/P&gt;&lt;P&gt;Is there any process or method by which i can restrict the number of rows in ALV?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanx in Advance&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sunil Sharma&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Jan 2009 07:38:37 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-with-editable-fields/m-p/4985582#M1161508</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-01-13T07:38:37Z</dc:date>
    </item>
    <item>
      <title>Re: ALV with Editable Fields</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-with-editable-fields/m-p/4985583#M1161509</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;the better way is to pass only the needed 5 rows from excel to alv , rather than restricting the rows..&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Jan 2009 07:47:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-with-editable-fields/m-p/4985583#M1161509</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-01-13T07:47:11Z</dc:date>
    </item>
    <item>
      <title>Re: ALV with Editable Fields</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-with-editable-fields/m-p/4985584#M1161510</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Sunil&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Following Code will help you to create editable field in ALV,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;tables:makt, mara,mbew.
 
data: begin of itab_alv1 occurs 10,
          maktx like makt-maktx ,
          matfi like mara-matfi ,
          matnr like mara-matnr ,
          mfrpn like mara-mfrpn ,
          verpr like mbew-verpr,
      end of itab_alv1.
 
type-pools: slis.
 
data: afield type slis_fieldcat_alv.
 
data:fieldcat type slis_t_fieldcat_alv.
 
clear afield.
 
afield-col_pos = 1 .
afield-fieldname = 'MATNR'.
afield-seltext_m = 'Matnr'.
append afield to fieldcat.
 
afield-col_pos = 2 .
afield-fieldname = 'MAKTX'.
afield-seltext_m = 'Desc'.
append afield to fieldcat.
 
afield-col_pos = 3 .
afield-fieldname = 'VERPR'.
afield-seltext_m = 'Price'.
afield-edit = 'X'.     " here is the soloution of the problem i think
afield-do_sum = 'X'.
 
append afield to fieldcat.
select * from mara.
   select single * from makt where
         matnr = mara-matnr.
       itab_alv1-matnr = mara-matnr.
       itab_alv1-maktx = makt-maktx.
       select single * from mbew client specified
         where mandt = sy-mandt
          and matnr = makt-matnr.
       itab_alv1-verpr = mbew-verpr.
       append itab_alv1.
endselect.
 
call function 'REUSE_ALV_GRID_DISPLAY'
 exporting
   i_grid_title                      = 'hello'
   it_fieldcat                       = fieldcat
  tables
    t_outtab                          = itab_alv1
.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind Regards,&lt;/P&gt;&lt;P&gt;Faisal&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Jan 2009 08:15:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-with-editable-fields/m-p/4985584#M1161510</guid>
      <dc:creator>faisalatsap</dc:creator>
      <dc:date>2009-01-13T08:15:21Z</dc:date>
    </item>
    <item>
      <title>Re: ALV with Editable Fields</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-with-editable-fields/m-p/4985585#M1161511</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi Faisal,&lt;/P&gt;&lt;P&gt;You havnt read my question properly&lt;/P&gt;&lt;P&gt;i am already using editable fields in ALV&lt;/P&gt;&lt;P&gt;plz go thru my ques once again if possible&lt;/P&gt;&lt;P&gt;thanx again&lt;/P&gt;&lt;P&gt;sunil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Jan 2009 05:17:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-with-editable-fields/m-p/4985585#M1161511</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-01-16T05:17:41Z</dc:date>
    </item>
    <item>
      <title>Re: ALV with Editable Fields</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-with-editable-fields/m-p/4985586#M1161512</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;yes, this can be full filled by dynamic internal tables, follwoing is the code. for your requirement you have to read the excel sheet first into an internal table and based on that you can create dynamic internal tables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;REPORT  ZREPORT.

************************************************************************
*                         CONSTANTS                                    *
************************************************************************

CONSTANTS : c_werkz(4) TYPE c VALUE '12345'.


************************************************************************
*                       Tables Workarea                                *
************************************************************************
TABLES: marc,
        ekpo,
        eket,
        t001w,
        mara.

************************************************************************
*                       Field Strings                                  *
************************************************************************

TYPES : BEGIN OF marc_tab,
          werks     TYPE   marc-werks,
          matnr     TYPE   marc-matnr,
          disgr     TYPE   marc-disgr,
          dispo     TYPE   marc-dispo,
          sobsl     TYPE   marc-sobsl,
          miskz     TYPE   marc-miskz,
          strgr     TYPE   marc-strgr,
        END OF marc_tab.

TYPES : BEGIN OF ekpo_tab,
          matnr     TYPE   ekpo-matnr,
          werks     TYPE   ekpo-werks,
          ebeln     TYPE   ekpo-ebeln,
          ebelp     TYPE   ekpo-ebelp,
          loekz     TYPE   ekpo-loekz,
          elikz     TYPE   ekpo-elikz,
        END OF ekpo_tab.

TYPES : BEGIN OF eket_tab,
          ebeln     TYPE   eket-ebeln,
          ebelp     TYPE   eket-ebelp,
          dat01     TYPE   eket-dat01,
          menge     TYPE   eket-menge,
          glmng     TYPE   eket-glmng,
        END OF eket_tab.

TYPES : BEGIN OF sort_tab,
          matnr     TYPE   marc-matnr,
          ebeln     TYPE   eket-ebeln,
          ebelp     TYPE   eket-ebelp,
          dat01     TYPE   eket-dat01,
          menge     TYPE   eket-menge,
          glmng     TYPE   eket-glmng,
        END OF sort_tab.


TYPES : BEGIN OF final_tab,
          werks     TYPE   marc-werks,
          matnr     TYPE   marc-matnr,
          disgr     TYPE   marc-disgr,
          dispo     TYPE   marc-dispo,
          sobsl     TYPE   marc-sobsl,
          miskz     TYPE   marc-miskz,
          strgr     TYPE   marc-strgr,
          ebeln     TYPE   ekpo-ebeln,
          ebelp     TYPE   ekpo-ebelp,
          dat01     TYPE   eket-dat01,
          rest(13)  TYPE   p DECIMALS 3,
          datez(6)  TYPE   c,
        END OF final_tab.

TYPES : BEGIN OF date_tab,
          werks     TYPE   marc-werks,
          matnr     TYPE   marc-matnr,
          dat01     TYPE   eket-dat01,
        END OF date_tab.

************************************************************************
*                   Internal Table Work Area                           *
************************************************************************
DATA wa_marc_tab    TYPE   marc_tab.
DATA wa_ekpo_tab    TYPE   ekpo_tab.
DATA wa_eket_tab    TYPE   eket_tab.
DATA wa_sort_tab    TYPE   sort_tab.
DATA wa_final_tab   TYPE  final_tab.
DATA wa_date_tab    TYPE  date_tab.
************************************************************************
*                   Internal Table Body                                *
************************************************************************
DATA it_marc_tab TYPE STANDARD TABLE OF marc_tab WITH HEADER LINE.
DATA it_ekpo_tab TYPE STANDARD TABLE OF ekpo_tab WITH HEADER LINE.
DATA it_eket_tab TYPE STANDARD TABLE OF eket_tab WITH HEADER LINE.
DATA it_sort_tab TYPE STANDARD TABLE OF sort_tab WITH HEADER LINE.
DATA it_final_tab TYPE STANDARD TABLE OF final_tab WITH HEADER LINE.
DATA it_date_tab TYPE STANDARD TABLE OF date_tab WITH HEADER LINE.


type-pools slis.

DATA :  ws_alvfield TYPE slis_fieldcat_alv ,
        wt_fieldcat TYPE slis_t_fieldcat_alv ,
        ws_layout TYPE slis_layout_alv.


FIELD-SYMBOLS: &amp;lt;F&amp;gt; type any,
               &amp;lt;TAB&amp;gt; TYPE STANDARD TABLE,
               &amp;lt;WA&amp;gt; type any.

DATA: INTERN TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE,
      FCAT TYPE SLIS_T_FIELDCAT_ALV,
      IT_FIELDCAT TYPE LVC_T_FCAT.
data wt_test like it_final_tab occurs 0 with header line.
data   wlv_index1 like sy-tabix.
data   wlv_index like sy-tabix.
DATA: IS_FIELDCAT LIKE LINE OF IT_FIELDCAT,
      WCAT LIKE LINE OF FCAT,
      INDEX(3) TYPE N,
      MAXCOL LIKE konv-kschl.
DATA: IST LIKE LINE OF IT_FIELDCAT.
data POS  TYPE  I.


************************************************************************
*                   Selection Screen                                   *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK abc WITH FRAME TITLE text-T01.
SELECT-OPTIONS :
                   s_werks   FOR  marc-werks
                                  NO INTERVALS
                                  OBLIGATORY,         "Plant
                   s_dat01   FOR  eket-dat01          "Committed date
                                  OBLIGATORY,
                   s_matnr   FOR  marc-matnr,         "Material Number
                   s_werkz   FOR  ekpo-werks          "Order plant
                                  OBLIGATORY
                                  no intervals
                                  DEFAULT c_werkz,
                   s_disgr   FOR  marc-disgr,         "MRP group
                   s_dispo   FOR  marc-dispo,	      "MRP controller		
                   s_sobsl   FOR  marc-sobsl          "Special procurement type
                                  no intervals,
                   s_miskz   FOR  marc-miskz          "Mixed MRP
                                  no intervals,
                   s_strgr   FOR  marc-strgr,         "Strategy group
                   s_loekz   FOR  ekpo-loekz         "Deletion indicator
                                  no intervals,
                   s_elikz   FOR  ekpo-elikz          "Delivery completed ind
                                  no intervals.
parameters :     p_chk as checkbox.

SELECTION-SCREEN END OF BLOCK abc.

RANGES : r_date FOR eket-dat01.
************************************************************************
*                     INITIALIZATION.                                  *
************************************************************************
INITIALIZATION.

  PERFORM init_ranges.


************************************************************************
*                    AT SELECTION-SCREEN.                              *
************************************************************************

AT SELECTION-SCREEN.

  PERFORM validate_input.


************************************************************************
*                      TOP-OF-PAGE                                     *
************************************************************************
TOP-OF-PAGE.

************************************************************************
*                    START-OF-SELECTION.                               *
************************************************************************
START-OF-SELECTION.

  perform get_marc_data.

  perform get_ekpo_data.

  perform get_eket_data.

  perform sort_data.

  perform create_table.

END-OF-SELECTION.

  PERFORM grid_disply.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  get_marc_data
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM get_marc_data .

  IF it_marc_tab[] IS INITIAL.

    select werks
           matnr
           disgr
           dispo
           sobsl
           miskz
           strgr
           INTO TABLE it_marc_tab
           FROM marc
           WHERE werks IN s_werks
           AND   matnr IN s_matnr
           AND   disgr IN s_disgr
           AND   dispo IN s_dispo
           AND   sobsl IN s_sobsl
           AND   miskz IN s_miskz
           AND   strgr IN s_strgr.
  ENDIF.
  IF sy-subrc EQ 0.
    sort it_marc_tab by werks matnr.
  ENDIF.
ENDFORM.                    " get_marc_data
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  get_ekpo_data
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM get_ekpo_data .

  IF NOT it_marc_tab[] IS INITIAL.

    select    matnr
              werks
              ebeln
              ebelp
              loekz
              elikz
              INTO TABLE it_ekpo_tab
              FROM ekpo
              FOR ALL ENTRIES IN it_marc_tab
              WHERE  matnr = it_marc_tab-matnr
              AND    werks IN  s_werkz
              AND    loekz IN  s_loekz
              AND    elikz IN  s_elikz.
  ELSE.
    MESSAGE I000(0) WITH text-er1.
    EXIT.
  ENDIF.

  IF sy-subrc EQ 0.
    sort it_ekpo_tab by matnr ebeln ebelp.
  ENDIF.
ENDFORM.                    " get_ekpo_data
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  get_eket_data
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM get_eket_data .

  IF NOT it_ekpo_tab[] IS INITIAL.
    select  ebeln
            ebelp
            dat01
            menge
            glmng
            INTO TABLE it_eket_tab
            FROM eket
            FOR ALL ENTRIES IN it_ekpo_tab
            WHERE ebeln  =  it_ekpo_tab-ebeln
            AND   ebelp  =  it_ekpo_tab-ebelp
            AND   dat01 IN  s_dat01.
  ELSE.
    MESSAGE I000(0) WITH text-er1.
    EXIT.
  ENDIF.

  IF sy-subrc EQ 0.
    sort it_eket_tab by ebeln ebelp dat01.
  ENDIF.

ENDFORM.                    " get_eket_data
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  sort_data
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM sort_data .
  DATA : sum(13) TYPE p decimals 3.

  LOOP AT it_ekpo_tab INTO wa_ekpo_tab.
    READ TABLE it_eket_tab INTO wa_eket_tab WITH KEY ebeln = wa_ekpo_tab-ebeln
                                                     ebelp = wa_ekpo_tab-ebelp
                                                     BINARY SEARCH.
    IF sy-subrc EQ 0.
      wa_sort_tab-matnr = wa_ekpo_tab-matnr.
      wa_sort_tab-ebeln = wa_ekpo_tab-ebeln.
      wa_sort_tab-ebelp = wa_ekpo_tab-ebelp.
      wa_sort_tab-dat01 = wa_eket_tab-dat01.
      wa_sort_tab-menge = wa_eket_tab-menge.
      wa_sort_tab-glmng = wa_eket_tab-glmng.
      append wa_sort_tab to it_sort_tab.
    ENDIF.

  ENDLOOP.

  if sy-subrc eq 0.
    sort it_sort_tab by matnr ebeln ebelp dat01.
  endif.

  LOOP AT it_sort_tab INTO wa_sort_tab.

    READ TABLE it_marc_tab INTO wa_marc_tab WITH KEY matnr = wa_sort_tab-matnr
                                                     BINARY SEARCH.
    IF sy-subrc eq 0.
      wa_final_tab-werks = wa_marc_tab-werks.
      wa_final_tab-matnr = wa_marc_tab-matnr.
      wa_final_tab-disgr = wa_marc_tab-disgr.
      wa_final_tab-dispo = wa_marc_tab-dispo.
      wa_final_tab-sobsl = wa_marc_tab-sobsl.
      wa_final_tab-miskz = wa_marc_tab-miskz.
      wa_final_tab-strgr = wa_marc_tab-strgr.
      wa_final_tab-ebeln = wa_sort_tab-ebeln.
      wa_final_tab-ebelp = wa_sort_tab-ebelp.
      wa_final_tab-dat01 = wa_sort_tab-dat01.
      sum = wa_sort_tab-menge - wa_sort_tab-glmng.
      wa_final_tab-rest = sum.
      wa_final_tab-datez = wa_sort_tab-dat01+0(6).
      append wa_final_tab to it_final_tab.
      clear : it_sort_tab, it_marc_tab , sum ,it_final_tab.
    ENDIF.
  ENDLOOP.

  IF sy-subrc eq 0.
    sort it_final_tab by matnr dat01.
    delete adjacent duplicates from it_final_tab comparing matnr datez.
    perform delete_from_final_tab.
  ENDIF.
  IF sy-subrc eq 0.
    sort it_final_tab by matnr.
  ENDIF.
ENDFORM.                    " sort_data
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  delete_from_final_tab
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM delete_from_final_tab .

  LOOP At it_final_tab INTO wa_final_tab.

    if wa_final_tab-rest LE 0.
      delete it_final_tab.
    endif.

  endloop.

ENDFORM.                    " delete_from_final_tab
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  validate_input
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM validate_input .

*Check for the Plant
  IF NOT s_werks[] IS INITIAL.
    SELECT SINGLE werks
      INTO t001w-werks FROM t001w
      WHERE werks IN  s_werks.
    IF sy-subrc NE 0.
      MESSAGE e000(0k) WITH text-pl1.
    ENDIF.
  ENDIF.

*Check for the Plant
  IF NOT s_werkz[] IS INITIAL.
    SELECT SINGLE werks
      INTO t001w-werks FROM t001w
      WHERE werks IN  s_werkz.
    IF sy-subrc NE 0.
      MESSAGE e000(0k) WITH text-pl1.
    ENDIF.
  ENDIF.
ENDFORM.                    " validate_input

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  grid_disply
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM grid_disply .

  DATA wls_layout   TYPE	slis_layout_alv.
  DATA wlv_repid    LIKE    sy-repid.
  DATA wlt_events   TYPE	slis_t_event .
  DATA wls_events   TYPE	slis_alv_event.


  CLEAR wlt_events.

  wls_events-name = 'TOP_OF_PAGE' . "name.
  wls_events-form = 'TOP-OF-PAGE' . "form.
  APPEND wls_events TO wlt_events.


**************** FILL THE LAYOUT***************************************

  wlv_repid = sy-repid.
  wls_layout-colwidth_optimize    = 'X'.
  wls_layout-zebra                = 'X'.
  wls_layout-detail_initial_lines = 'X'.
  wls_layout-detail_popup         = 'X'.
  wls_layout-get_selinfos         = 'X'.
  wls_layout-group_change_edit    = 'X'.


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program = wlv_repid
      is_layout          = wls_layout
      it_fieldcat        = FCAT[]
      i_default          = 'X'
      i_save             = 'X'
*      it_events	         = wlt_events
    TABLES
      t_outtab           = &amp;lt;TAB&amp;gt;
    EXCEPTIONS
      program_error      = 1
      OTHERS             = 2.
  IF sy-subrc &amp;lt;&amp;gt; 0.
    MESSAGE e003(zm).
  ENDIF.

ENDFORM.                    " grid_disply

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  TOP-OF-PAGE
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM TOP-OF-PAGE .                                          "#EC CALLED
*  DATA : li_header TYPE slis_t_listheader,
*         w_header  LIKE LINE OF li_header.
*
*  DATA: l_date TYPE char10.
*
*
*  w_header-typ  = 'H'.
*  w_header-info = sy-title.
*  APPEND w_header TO li_header.
*  CLEAR w_header.
*
*  WRITE sy-datum TO l_date.
*  w_header-typ  = 'S'.
*
*  CONCATENATE sy-repid ':' 'From Date' l_date INTO w_header-info SEPARATED BY space.
*  APPEND w_header TO li_header.
*  CLEAR w_header.
*
*  w_header-typ  = 'A'.
*  w_header-info = sy-uname.
*  APPEND w_header TO li_header.
*  CLEAR w_header.
*
*  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
*    EXPORTING
*      it_list_commentary = li_header.
ENDFORM.                    " TOP_OF_PAGE
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  init_ranges
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM init_ranges .

  MOVE : 'L'  TO s_loekz-low,
         'NE' TO s_loekz-option.
  append s_loekz.

  MOVE : 'X'  TO s_elikz-low,
         'NE' TO s_elikz-option.
  append s_elikz.
ENDFORM.                    " init_ranges
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  create_table
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM create_table .


  sort it_final_tab by dat01.

  clear ist.
  IST-INTTYPE = 'C'.
  IST-INTLEN = '50'.
  IST-FIELDNAME = 'WERKS'.
  APPEND IST TO  IT_FIELDCAT.

  clear ist.
  IST-INTTYPE = 'C'.
  IST-INTLEN = '50'.
  IST-FIELDNAME = 'MATNR'.
  APPEND IST TO  IT_FIELDCAT.

  clear ist.
  IST-INTTYPE = 'C'.
  IST-INTLEN = '50'.
  IST-FIELDNAME = 'DISGR'.
  if p_chk = 'X'.
    IST-no_out = 'X'.
  endif.
  APPEND IST TO  IT_FIELDCAT.


  clear ist.
  IST-INTTYPE = 'C'.
  IST-INTLEN = '50'.
  IST-FIELDNAME = 'DISPO'.
  if p_chk = 'X'.
    IST-no_out = 'X'.
  endif.
  APPEND IST TO  IT_FIELDCAT.

  clear ist.
  IST-INTTYPE = 'C'.
  IST-INTLEN = '50'.
  IST-FIELDNAME = 'SOBSL'.
  if p_chk = 'X'.
    IST-no_out = 'X'.
  endif.
  APPEND IST TO  IT_FIELDCAT.

  clear ist.
  IST-INTTYPE = 'C'.
  IST-INTLEN = '50'.
  IST-FIELDNAME = 'MISKZ'.
  if p_chk = 'X'.
    IST-no_out = 'X'.
  endif.
  APPEND IST TO  IT_FIELDCAT.

  clear ist.
  IST-INTTYPE = 'C'.
  IST-INTLEN = '50'.
  IST-FIELDNAME = 'STRGR'.
  if p_chk = 'X'.
    IST-no_out = 'X'.
  endif.
  APPEND IST TO  IT_FIELDCAT.

  clear ist.
  IST-INTTYPE = 'C'.
  IST-INTLEN = '50'.
  IST-FIELDNAME = 'EBELN'.
  if p_chk = 'X'.
    IST-no_out = 'X'.
  endif.
  APPEND IST TO  IT_FIELDCAT.

  clear ist.
  IST-INTTYPE = 'C'.
  IST-INTLEN = '50'.
  IST-FIELDNAME = 'EBELP'.
  if p_chk = 'X'.
    IST-no_out = 'X'.
  endif.
  APPEND IST TO  IT_FIELDCAT.

*--- FIELD CATALOG FOR ALV GRID

  clear wcat.
  WCAT-COL_POS = 1.
  WCAT-FIELDNAME = 'WERKS'.
  WCAT-SELTEXT_l = 'Plant'.
  APPEND WCAT TO FCAT.

  clear wcat.
  WCAT-COL_POS = 2.
  WCAT-FIELDNAME = 'MATNR'.
  WCAT-SELTEXT_l = 'Material Number'.
  WCAT-outputlen = 20.
* WCAT-no_zero   = 'X'.
  APPEND WCAT TO FCAT.

  clear wcat.
  WCAT-COL_POS = 3.
  WCAT-FIELDNAME = 'DISGR'.
  WCAT-SELTEXT_l = 'MRP Group'.
  WCAT-outputlen = 4.
  if p_chk = 'X'.
    wcat-no_out = 'X'.
  endif.
  APPEND WCAT TO FCAT.

  clear wcat.
  WCAT-COL_POS = 4.
  WCAT-FIELDNAME = 'DISPO'.
  WCAT-SELTEXT_l = 'MRP Controller'.
  if p_chk = 'X'.
    wcat-no_out = 'X'.
  endif.
  APPEND WCAT TO FCAT.

  clear wcat.
  WCAT-COL_POS = 5.
  WCAT-FIELDNAME = 'SOBSL'.
  if p_chk = 'X'.
    wcat-no_out = 'X'.
  endif.

  WCAT-SELTEXT_l = 'Special procurement type'.
  APPEND WCAT TO FCAT.

  clear wcat.
  WCAT-COL_POS = 6.
  WCAT-FIELDNAME = 'MISKZ'.
  if p_chk = 'X'.
    wcat-no_out = 'X'.
  endif.

  WCAT-SELTEXT_l = 'Mixed MRP'.
  APPEND WCAT TO FCAT.

  clear wcat.
  WCAT-COL_POS = 7.
  WCAT-FIELDNAME = 'STRGR'.
  if p_chk = 'X'.
    wcat-no_out = 'X'.
  endif.

  WCAT-SELTEXT_l = 'Strategy group'.
  APPEND WCAT TO FCAT.

  clear wcat.
  WCAT-COL_POS = 8.
  WCAT-FIELDNAME = 'EBELN'.
  if p_chk = 'X'.
    wcat-no_out = 'X'.
  endif.
  WCAT-SELTEXT_l = 'Purchasing document'.
  APPEND WCAT TO FCAT.

  clear wcat.
  WCAT-COL_POS = 9.
  WCAT-FIELDNAME = 'EBELP'.
  if p_chk = 'X'.
    wcat-no_out = 'X'.
  endif.
  WCAT-SELTEXT_l = 'Purchasing item'.
  APPEND WCAT TO FCAT.

  clear wcat.
*  WCAT-COL_POS = 10.
*  WCAT-FIELDNAME = 'ENTLI'.
*  WCAT-SELTEXT_l = 'Date type'.
*  wcat-no_out = 'X'.
*  APPEND WCAT TO FCAT.
*  clear wcat.

  POS = 10.
  LOOP AT it_final_tab.
    IST-INTTYPE = 'C'.
    IST-INTLEN = '50'.
    ON CHANGE OF it_final_tab-datez.
      MOVE  it_final_tab-datez  TO  IST-FIELDNAME.
      APPEND IST  TO  IT_FIELDCAT.

*--- field catalog for alv grid
      WCAT-COL_POS = POS.
      WCAT-FIELDNAME = IST-FIELDNAME.
      WCAT-SELTEXT_l = IST-FIELDNAME.
      APPEND WCAT TO FCAT.
      POS  =  POS + 1.
    ENDON.
  ENDLOOP.

*********************************************************************
* CREATE DYNAMIC TABLE
*********************************************************************

  DATA: NEW_TABLE TYPE REF TO DATA,
        NEW_LINE  TYPE REF TO DATA.


  CALL METHOD CL_ALV_TABLE_CREATE=&amp;gt;CREATE_DYNAMIC_TABLE
    EXPORTING
      IT_FIELDCATALOG = IT_FIELDCAT
    IMPORTING
      EP_TABLE        = NEW_TABLE.
  ASSIGN NEW_TABLE-&amp;gt;* TO &amp;lt;TAB&amp;gt;.
  CREATE DATA NEW_LINE LIKE LINE OF &amp;lt;TAB&amp;gt;.
  ASSIGN NEW_LINE-&amp;gt;* TO &amp;lt;WA&amp;gt;.

  DATA: text1 TYPE string,
        off TYPE i,
        len TYPE i.


  sort it_final_tab by matnr.
  wt_test[] = it_final_tab[].
  delete adjacent duplicates from it_final_tab comparing matnr.

  CLEAR &amp;lt;WA&amp;gt;.

  loop at it_final_tab.

    ASSIGN COMPONENT 1 OF STRUCTURE &amp;lt;WA&amp;gt; TO &amp;lt;F&amp;gt;.
    &amp;lt;F&amp;gt; = it_final_tab-werks.

    ASSIGN COMPONENT 2 OF STRUCTURE &amp;lt;WA&amp;gt; TO &amp;lt;F&amp;gt;.
    &amp;lt;F&amp;gt; = it_final_tab-matnr.

    ASSIGN COMPONENT 3 OF STRUCTURE &amp;lt;WA&amp;gt; TO &amp;lt;F&amp;gt;.
    &amp;lt;F&amp;gt; = it_final_tab-disgr.

    ASSIGN COMPONENT 4 OF STRUCTURE &amp;lt;WA&amp;gt; TO &amp;lt;F&amp;gt;.
    &amp;lt;F&amp;gt; = it_final_tab-dispo.

    ASSIGN COMPONENT 5 OF STRUCTURE &amp;lt;WA&amp;gt; TO &amp;lt;F&amp;gt;.
    &amp;lt;F&amp;gt; = it_final_tab-SOBSL.

    ASSIGN COMPONENT 6 OF STRUCTURE &amp;lt;WA&amp;gt; TO &amp;lt;F&amp;gt;.
    &amp;lt;F&amp;gt; = it_final_tab-MISKZ.

    ASSIGN COMPONENT 7 OF STRUCTURE &amp;lt;WA&amp;gt; TO &amp;lt;F&amp;gt;.
    &amp;lt;F&amp;gt; = it_final_tab-STRGR.

    ASSIGN COMPONENT 8 OF STRUCTURE &amp;lt;WA&amp;gt; TO &amp;lt;F&amp;gt;.
    &amp;lt;F&amp;gt; = it_final_tab-EBELN.

    ASSIGN COMPONENT 9 OF STRUCTURE &amp;lt;WA&amp;gt; TO &amp;lt;F&amp;gt;.
    &amp;lt;F&amp;gt; = it_final_tab-EBELP.


    loop at wt_test where matnr = it_final_tab-matnr.

      ASSIGN COMPONENT wt_test-DAtez OF STRUCTURE &amp;lt;WA&amp;gt; TO &amp;lt;F&amp;gt;.

      if not wt_test-REST is  initial.

        text1 = wt_test-REST.

        FIND '.' IN  text1  MATCH OFFSET off
                              MATCH LENGTH len.
        IF SY-SUBRC = 0.

          REPLACE SECTION OFFSET off LENGTH len OF:
                          text1 WITH ','.
          IF SY-SUBRC = 0.
            &amp;lt;F&amp;gt; = text1.
          endif.
        endif.

      endif.
    endloop.

    APPEND &amp;lt;WA&amp;gt; TO &amp;lt;TAB&amp;gt;.
    CLEAR &amp;lt;WA&amp;gt;.
    clear wa_final_tab.
  endloop.
ENDFORM.                    " create_table&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks,&lt;/P&gt;&lt;P&gt;anupama.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Jan 2009 05:24:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-with-editable-fields/m-p/4985586#M1161512</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-01-16T05:24:47Z</dc:date>
    </item>
    <item>
      <title>Re: ALV with Editable Fields</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-with-editable-fields/m-p/4985587#M1161513</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;i am not able to clarify my question clearly i guess.&lt;/P&gt;&lt;P&gt;can u send me ur mail id so that i can send u some screenshots so that u can understand my query better.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanx &lt;/P&gt;&lt;P&gt;sunil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Jan 2009 12:16:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-with-editable-fields/m-p/4985587#M1161513</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-01-19T12:16:19Z</dc:date>
    </item>
    <item>
      <title>Re: ALV with Editable Fields</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-with-editable-fields/m-p/4985588#M1161514</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi sunil,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think what you are trying to convey is that when u copy paste more than 5 entries in the editable ALV it accomodates more than 5 entries.&lt;/P&gt;&lt;P&gt;Actually when u insert more than 5 entries the alv becomes scrollable hence allows more than 5 entries.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you want to accomodate only then may be you can delete the entries exceeding 5, But having alv static ( Only 5 )is not possible i guess..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Navin.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Jan 2009 12:35:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-with-editable-fields/m-p/4985588#M1161514</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-01-19T12:35:28Z</dc:date>
    </item>
    <item>
      <title>Re: ALV with Editable Fields</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-with-editable-fields/m-p/4985589#M1161515</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Naveen,&lt;/P&gt;&lt;P&gt;U understood me correctly.&lt;/P&gt;&lt;P&gt;thanx for helping me.&lt;/P&gt;&lt;P&gt;If anytime u get any solution plz let me know also.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sunil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Jan 2009 04:39:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-with-editable-fields/m-p/4985589#M1161515</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2009-01-20T04:39:05Z</dc:date>
    </item>
  </channel>
</rss>

