Editable fields in Hierarchical ALV output

Hi Experts,
I have developed a report using hierarchical ALV display. I wanted to make some of the fields(in a particular column) editable in the output of Hierarchical ALV. Please provide your suggestions with examples.
Regards,
Rajesh

I am not getting what u mean,.
Coz I have done the editable property in my hierarcical ALV only...
I have header line and correspodning item lines.
In all header line I will make the 3rd column as editable...
CHECK below
*& Report  ZFIR_WRITE_OFF
REPORT  zfir_write_off
                NO STANDARD PAGE HEADING
                MESSAGE-ID zles.
TYPE-POOLS
TYPE-POOLS:slis.
TABLES
TABLES: kna1, t001, zdunning_data, bsid, t052.
INTERNAL TABLES
To check for bukrs in selection screen
DATA: BEGIN OF t_t001 OCCURS 0,
        bukrs TYPE t001-bukrs,
      END OF t_t001.
To check for the customer in selection screen
DATA: BEGIN OF t_kna1 OCCURS 0,
        kunnr TYPE kna1-kunnr,
        name1 TYPE kna1-name1,
      END OF t_kna1.
*Data from BSID table
DATA: BEGIN OF t_bsid OCCURS 0,
      bukrs LIKE bsid-bukrs,
      budat LIKE bsid-budat,
      kunnr LIKE bsid-kunnr,
      belnr LIKE bsid-belnr,
      zfbdt LIKE bsid-zfbdt,
      zterm LIKE bsid-zterm,
      dmbtr LIKE bsid-dmbtr,
      waers LIKE bsid-waers,
      vbeln LIKE bsid-vbeln,
      END OF t_bsid.
*Data from ZDunning_data
DATA: BEGIN OF t_zdunning OCCURS 0,
      belnr LIKE zdunning_data-belnr,
      kunnr LIKE zdunning_data-kunnr,
      zdef_notice_flg LIKE zdunning_data-zdef_notice_flg,
      zterm_notice_flg LIKE zdunning_data-zterm_notice_flg,
      END OF t_zdunning.
*Data from t052 for base line days
DATA: BEGIN OF t_t052 OCCURS 0,
      zterm LIKE t052-zterm,
      ztag1 LIKE  t052-ztag1,
      END OF t_t052.
*with duedate and date for write off calculation
DATA: BEGIN OF t_data OCCURS 0,
      belnr LIKE bsid-belnr,
      kunnr LIKE bsid-kunnr,
      zterm LIKE bsid-zterm,
      zfbdt LIKE bsid-zfbdt,
      ztag1 LIKE t052-ztag1,
      duedate LIKE bsid-zfbdt,
      wdate LIKE bsid-zfbdt,
      vbeln LIKE bsid-vbeln,
      dmbtr LIKE bsid-dmbtr,
      waers LIKE bsid-waers,
      budat LIKE bsid-budat,
      vbelv like vbfa-vbelv,
      Name1 like kna1-name1,
      END OF t_data.
*Output display in ALV report
DATA: BEGIN OF t_output OCCURS 0,
      Flag type C,
      bukrs LIKE bsid-bukrs,
      kunnr LIKE bsid-kunnr,
      vbeln LIKE bsid-vbeln,  "Invoice
      posnv like vbfa-posnv,
      wdate LIKE bsid-zfbdt,
      belnr LIKE bsid-belnr,
      dmbtr LIKE bsid-dmbtr,
      waers LIKE bsid-waers,
      budat LIKE bsid-budat,
      vbelv like vbfa-vbelv, "Contract
      name1 like kna1-name1,
      duedate like  bsid-zfbdt,
      END OF t_output.
To get contract number for the billing document number
DATA: BEGIN OF t_vbfa OCCURS 0,
      vbelv LIKE vbfa-vbelv,
      vbeln LIKE vbfa-vbeln,
      POSNV like vbfa-POSNV,
      END OF t_vbfa.
data: begin of t_cust occurs 0,
      KUNNR like kna1-kunnr,
      name1 like kna1-name1,
      end of t_cust.
data: begin of t_head occurs 0,
      VBELv like vbfa-vbelv,
      posnv like vbfa-posnv,
      VKUEGRU type ZLIST_WO_RCANCEL,
      end of t_head.
data: begin of it_veda occurs 0,
      VBELn LIKE Veda-VBELN,
      POSNR LIKE Veda-VPOSN,
      VKUEGRU LIKE Veda-VKUEGRU,
      end of it_veda.
                        VARIABLE DECLARATION
DATA: l_duedate  LIKE bsid-zfbdt,
      l_wdate LIKE bsid-zfbdt.
                        VARIABLE FOR ALV DISPLAY
DATA: t_fieldcat TYPE slis_t_fieldcat_alv,
      wa_fieldcat TYPE slis_fieldcat_alv.
DATA: t_fieldcat1 TYPE slis_t_fieldcat_alv WITH HEADER LINE,
      wa_fieldcat1 TYPE slis_fieldcat_alv.
DATA: t_layout TYPE slis_layout_alv.
DATA: g_repid LIKE sy-repid.
                         SELECTION-SCREEN
*Selection Screen Parameters for user input
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS:
*Company Code
          p_bukrs LIKE t001-bukrs OBLIGATORY.
SELECT-OPTIONS:
*Customer Number
          s_kunnr FOR kna1-kunnr OBLIGATORY DEFAULT '0' TO 'ZZZZZZZZZZ'.
PARAMETERS:
*Write Off Date
          p_wodate TYPE sy-datum OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1 .
                        AT SELECTION-SCREEN
*Selection Screen validation for Company code
AT SELECTION-SCREEN ON p_bukrs.
  SELECT SINGLE bukrs FROM t001                             "#EC *
       INTO t_t001
       WHERE bukrs = p_bukrs.
  IF sy-subrc NE 0.
*Error message for Invalid Company Code
    MESSAGE e000 WITH text-002.
  ENDIF.
*Selection Screen Validation for Customer
AT SELECTION-SCREEN ON s_kunnr.
  IF NOT s_kunnr IS INITIAL.
    SELECT SINGLE kunnr name1
         FROM kna1                                          "#EC *
         INTO t_kna1
         WHERE kunnr IN s_kunnr.
    IF sy-subrc NE 0.
*Error message for Invalid Customer Number
      MESSAGE e000 WITH text-003.
    ENDIF.
  ENDIF.
AT SELECTION-SCREEN ON p_wodate.
  IF p_wodate IS INITIAL.
    p_wodate = sy-datum.
  ENDIF.
                       INITIALIZATION
INITIALIZATION.
  PERFORM clear_data.
                       START-OF-SELECTION
START-OF-SELECTION.
*Get the Accounting Document Number and base line date  from BSID
  SELECT bukrs kunnr belnr budat zfbdt zterm dmbtr waers  vbeln
              FROM bsid
              INTO corresponding fields of TABLE t_bsid
             WHERE kunnr IN s_kunnr AND
                    bukrs = p_bukrs.
  IF NOT t_bsid[] IS INITIAL.
*Get the Dunning data based on the Accounting Document Number from BSID
    SELECT  belnr kunnr zdef_notice_flg zterm_notice_flg
                FROM zdunning_data
                INTO TABLE t_zdunning
                FOR ALL ENTRIES IN t_bsid
                WHERE kunnr = t_bsid-kunnr AND
                      belnr = t_bsid-belnr AND
                      zdef_notice_flg = 'Y' AND
                      zterm_notice_flg = 'Y'.
*Get the base line days from t052 table based on BSID data
    SELECT zterm ztag1
                FROM t052
                INTO TABLE t_t052
                FOR ALL ENTRIES IN t_bsid
                WHERE zterm = t_bsid-zterm.
*Calculate the due date(bse line date BSID-ZFBDT + base line days
*T052-ZTAG )
    IF NOT t_zdunning[] IS INITIAL.
Get the customer name
    Select KUNNR NAME1 from KNA1
              INTO table t_cust
              for all entries in t_zdunning
              where kunnr = t_zdunning-kunnr.
     LOOP AT t_zdunning.
      LOOP AT t_bsid.
        CLEAR t_zdunning.
        READ TABLE t_zdunning WITH KEY belnr = t_bsid-belnr
                                   kunnr = t_bsid-kunnr.
        CHECK sy-subrc = 0.
        CLEAR t_t052.
        READ TABLE t_t052 WITH KEY zterm = t_bsid-zterm.
        IF sy-subrc = 0 .
          t_data-belnr = t_zdunning-belnr.
          t_data-kunnr = t_zdunning-kunnr.
        Clear t_cust.
        read table t_cust with key kunnr = t_zdunning-kunnr.
         if sy-subrc = 0.
         t_data-name1 = t_cust-name1.
         endif.
          t_data-zterm = t_bsid-zterm.
          t_data-zfbdt = t_bsid-zfbdt.
          t_data-ztag1 = t_t052-ztag1.
          t_data-vbeln = t_bsid-vbeln.
          t_data-dmbtr = t_bsid-dmbtr.
          t_data-waers = t_bsid-waers.
          t_data-budat = t_bsid-budat.
*calculate duedate
          CLEAR l_duedate.
          l_duedate = t_bsid-zfbdt + t_t052-ztag1.
          t_data-duedate = l_duedate.
*calculate date for write off
          CLEAR l_wdate.
          l_wdate = l_duedate + 180.
          t_data-wdate = l_wdate.
          APPEND t_data.
          CLEAR l_wdate.
          CLEAR l_duedate.
        ENDIF.
      ENDLOOP.
    ELSE.
      MESSAGE s000 WITH text-005.
    ENDIF.
*Check the wdate with write off date in the selection screen value.
*If this calculated date is Greater than value enetred in selection
*screen, display the corresponding data in ALV report.
    IF NOT t_data[] IS INITIAL.
      SELECT vbelv vbeln
      POSNV
                FROM vbfa
                INTO TABLE t_vbfa
                FOR ALL ENTRIES IN t_data
                WHERE vbeln = t_data-vbeln.
               and
                     VBTYP_V = 'G'.
*If reason for cancelation is there, no writeoff.
   Select VBELn VPOSN VKUEGRU from Veda
         into table it_veda
         for all entries in t_vbfa
         where vbeln = t_vbfa-vbelv.
   SELECT vbelv
      POSNV
                FROM vbfa
                INTO TABLE t_Head
                FOR ALL ENTRIES IN t_data
                WHERE vbeln = t_data-vbeln
               and
                     VBTYP_V = 'G'.
loop at t_head.
clear it_veda.
Read table it_veda with key vbeln = t_head-vbelv
                            posnr = t_head-posnv.
if not it_veda-VKUEGRU is initial.
Delete  t_head where vbelv = it_veda-vbeln and
                          posnv = it_veda-posnr.
endif.
endloop.
      LOOP AT t_data.
        IF t_data-wdate LE p_wodate.
          t_output-bukrs = p_bukrs.
          t_output-kunnr = t_data-kunnr.
          CLEAR t_vbfa.
          READ TABLE t_vbfa WITH KEY vbeln = t_data-vbeln.
          read table t_head with key vbelv = t_vbfa-vbelv
                                     posnv = t_vbfa-posnv.
          if sy-subrc = 0.
            t_output-vbelv = t_vbfa-vbelv.
            t_output-posnv = t_vbfa-posnv.
          t_output-name1 = t_data-name1.
          t_output-wdate = t_data-wdate.
          t_output-belnr = t_data-belnr.
          t_output-dmbtr = t_data-dmbtr.
          t_output-waers = t_data-waers.
          t_output-budat = t_data-budat.
          t_output-vbeln = t_data-vbeln.
          t_output-duedate  = t_data-duedate .
          APPEND t_output.
          ENDIF.
          clear t_output.
        ENDIF.
      ENDLOOP.
    ELSE.
      MESSAGE s000 WITH text-006.
    ENDIF.
*ALV display for the output records
    IF NOT t_output[] IS INITIAL.
      PERFORM alv_display.
    ELSE.
      MESSAGE s000 WITH text-006.
    ENDIF.
  ELSE.
    MESSAGE s000 WITH text-004.
  ENDIF.
*&      Form  clear_data
      text
-->  p1        text
<--  p2        text
FORM clear_data .
  CLEAR:t_t001,
        t_kna1,
        t_bsid,
        t_zdunning,
        t_t052,
        t_data,
        t_output,
        wa_fieldcat,
        t_layout,
        t_fieldcat,
        t_vbfa.
  REFRESH:t_t001,
          t_kna1,
          t_bsid,
          t_zdunning,
          t_t052,
          t_data,
          t_output,
          t_fieldcat,
          t_vbfa.
clear:t_head,
      it_veda.
Refresh:t_head,
      it_veda.
Clear T_cust.
Refresh t_data.
ENDFORM.                    " clear_data
*&      Form  alv_display
      text
-->  p1        text
<--  p2        text
FORM alv_display .
*To build the field catalogue
  PERFORM build_fieldcatalog1.
  PERFORM build_fieldcatalog.
*To build the ALV layout
  PERFORM build_layout.
*To displayt the data in ALV report
  PERFORM display_alv_report.
ENDFORM.                    " alv_display
*&      Form  build_fieldcatalog
      text
-->  p1        text
<--  p2        text
FORM build_fieldcatalog1 .
  REFRESH t_fieldcat1.
CLEAR wa_fieldcat.
  wa_fieldcat-col_pos    = '1'.
  wa_fieldcat-fieldname  = 'VBELV'.
  wa_fieldcat-tabname = 'T_HEAD'.
  wa_fieldcat-seltext_l  = 'Contract Number'.
wa_fieldcat-Checkbox = 'X'.
wa_fieldcat-edit = 'X'.
wa_fieldcat-no_out = 'X'.
  wa_fieldcat-outputlen  = '15'.
  APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
   wa_fieldcat-col_pos    = '2'.
  wa_fieldcat-fieldname  = 'POSNV'.
  wa_fieldcat-tabname = 'T_HEAD'.
  wa_fieldcat-seltext_l  = 'Item Number'.
  wa_fieldcat-outputlen  = '15'.
  APPEND wa_fieldcat TO t_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-col_pos    = '3'.
  wa_fieldcat-fieldname  = 'VKUEGRU'.
  wa_fieldcat-edit = 'X'.
  wa_fieldcat-input = 'X'.
  wa_fieldcat-tabname = 'T_HEAD'.
wa_fieldcat-drdn_hndl = '1'.
  wa_fieldcat-seltext_l  = 'Reason for Cancel'.
  wa_fieldcat-outputlen  = '25'.
  APPEND wa_fieldcat TO t_fieldcat.
  CLEAR wa_fieldcat.
endform.
FORM build_fieldcatalog .
REFRESH t_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-col_pos    = '4'.
  wa_fieldcat-fieldname  = 'KUNNR'.
  wa_fieldcat-tabname = 'T_OUTPUT'.
  wa_fieldcat-seltext_l  = 'Customer Number'.
  wa_fieldcat-outputlen  = '15'.
  APPEND wa_fieldcat TO t_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-col_pos    = '5'.
  wa_fieldcat-fieldname  = 'NAME1'.
  wa_fieldcat-tabname = 'T_OUTPUT'.
  wa_fieldcat-seltext_l  = 'Customer Name'.
  wa_fieldcat-outputlen  = '30'.
  APPEND wa_fieldcat TO t_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-col_pos    = '6'.
  wa_fieldcat-fieldname  = 'VBELV'.
  wa_fieldcat-tabname = 'T_OUTPUT'.
  wa_fieldcat-seltext_l  = 'Contract Number'.
  wa_fieldcat-outputlen  = '20'.
  APPEND wa_fieldcat TO t_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-col_pos    = '7'.
  wa_fieldcat-fieldname  = 'VBELN'.
  wa_fieldcat-tabname = 'T_OUTPUT'.
  wa_fieldcat-seltext_l  = 'Invoice No.'.
  wa_fieldcat-outputlen  = '10'.
  APPEND wa_fieldcat TO t_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-col_pos    = '8'.
  wa_fieldcat-fieldname  = 'BELNR'.
  wa_fieldcat-tabname = 'T_OUTPUT'.
  wa_fieldcat-seltext_l  = 'Acc doc Number'.
  wa_fieldcat-outputlen  = '20'.
  APPEND wa_fieldcat TO t_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-col_pos    = '9'.
  wa_fieldcat-fieldname  = 'WAERS'.
  wa_fieldcat-tabname = 'T_OUTPUT'.
  wa_fieldcat-seltext_l  = 'Currency'.
  wa_fieldcat-outputlen  = '15'.
  APPEND wa_fieldcat TO t_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-col_pos    = '10'.
  wa_fieldcat-fieldname  = 'DMBTR'.
  wa_fieldcat-tabname = 'T_OUTPUT'.
  wa_fieldcat-do_sum        = 'X'.   "SUM UPON DISPLAY
  wa_fieldcat-datatype = 'CURR'.
  wa_fieldcat-seltext_l  = 'Amount'.
  wa_fieldcat-outputlen  = '15'.
  APPEND wa_fieldcat TO t_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-col_pos    = '11'.
  wa_fieldcat-fieldname  = 'DUEDATE'.
  wa_fieldcat-tabname = 'T_OUTPUT'.
  wa_fieldcat-seltext_l  = 'Due Date'.
  wa_fieldcat-outputlen  = '20'.
  APPEND wa_fieldcat TO t_fieldcat.
data: lt_dropdown type lvc_t_drop,
        ls_dropdown type lvc_s_drop.
First listbox (handle '1').
  ls_dropdown-handle = '1'.
  ls_dropdown-value = 'KG'.
  append ls_dropdown to lt_dropdown.
  ls_dropdown-handle = '1'.
  ls_dropdown-value = 'G'.
  append ls_dropdown to lt_dropdown.
call method g_grid->set_drop_down_table
           exporting it_drop_down = lt_dropdown.
ENDFORM.                    " build_fieldcatalog
*&      Form  build_layout
      text
-->  p1        text
<--  p2        text
FORM build_layout .
  t_layout-no_input          = 'X'.
  t_layout-colwidth_optimize = 'X'.
ENDFORM.                    " build_layout
*&      Form  display_alv_report
      text
-->  p1        text
<--  p2        text
FORM display_alv_report .
  g_repid = sy-repid.
  data g_keyinfo type SLIS_KEYINFO_ALV.
  g_keyinfo-HEADER01 = 'VBELV'.
  g_keyinfo-ITEM01 = 'VBELV'.
  g_keyinfo-HEADER02 = 'POSNV'.
  g_keyinfo-ITEM02 = 'POSNV'.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
    EXPORTING
      i_interface_check              = 'I'
      i_callback_program             = g_repid
      i_callback_pf_status_set       = 'SET_STATUS'
      i_callback_user_command        = 'USER_COMMAND'
     is_layout                      = gs_layout
      it_fieldcat                    = t_fieldcat[]
     i_default                      = ' '
      i_save                         = 'A'
      i_tabname_header               = 'T_HEAD'
      i_tabname_item                 = 'T_OUTPUT'
     i_structure_name_header        = v_headers_table
     i_structure_name_item          = v_items_table
      is_keyinfo                     = g_keyinfo
     i_bypassing_buffer             = 'X'
    TABLES
      t_outtab_header                = t_head[]
     t_outtab_item                  = i_result
      t_outtab_item                  = t_output[]
    EXCEPTIONS
      program_error                  = 1
      OTHERS                         = 2.
  REFRESH: t_fieldcat[].
  refresh t_fieldcat1[].
ENDFORM.                    " display_alv_report
form SET_STATUS using extab TYPE slis_t_extab.
  SET PF-STATUS  'ZEO_S1' .
endform.
*&      Form  Top_Of_Page
Top_Of_Page event in ALV
FORM top_of_page .
  DATA: t_header TYPE slis_t_listheader,
        wa_header TYPE slis_listheader.
Title
  wa_header-typ  = 'H'.
  wa_header-info = ' Write Off Worklist'.
  APPEND wa_header TO t_header.
  CLEAR wa_header.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary = t_header.
ENDFORM.                    "Top_Of_Page
*User Command for the button
form user_command using r_ucomm type syucomm
                          ls_selfield type SLIS_SELFIELD.
                          Break-point.
case r_ucomm.
when 'EXEC'.
data: begin of lt_cancel occurs 0.
      include structure ZCANCEL.
data  end of lt_cancel.
Clear lt_cancel.
Refresh lt_cancel.
     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.
      loop at t_Head where VKUEGRU is not initial.
       if ( t_HEAD-VKUEGRU  NE '1' ) or
           ( t_Head-VKUEGRU  NE '2' ) or
           ( t_head-VKUEGRU  NE '3' ).
         Clear t_head-vkuegru.
         message e000 with text-110.
       endif.
        lt_cancel-vbeln = t_head-vbelv.
        lt_cancel-posnr = t_head-posnv.
        lt_cancel-VKUEGRU = t_head-VKUEGRU.
        Append lt_cancel.
        Clear lt_cancel.
      Endloop.
       CALL FUNCTION 'ZSD_CNTR_CANCEL'
         TABLES
           zcancel       = lt_cancel.
message s000 .
endcase.
endform.

Similar Messages

  • Date Field in Hierarchical ALV

    Hello Friends,
    I have a few fields in my Hierarchical ALV output which are initially hidden.
    When I choose to display these fields by changing the Layout the date fields come out in the form
    MMDDYYYY
    I need those fields as 
    MM/DD/YYYY
    The date fields which are NOT hidden initially  are in the format MM/DD/YYYY. No problem there.
    When I go to settings and choose column width optimize I am then able to see these date fields as MM/DD/YYYY.
    In My code I already set this col width to optimize. It is also working . But for fields which are hidden initially I have to explicitly set the width optimize again .
    This problem is not there in GRID ALV.
    Why is the HIER ALV not putting the date fields in MM/DD/YYYY format.

    Hi,
    Just pass the Edit option of the fieldcatalog for those specific fields...
    fcat-edit = 'X'.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program       = sy-cprog
          i_callback_pf_status_set = 'PF_STATUS_SET'
          i_callback_user_command  = 'USER_COMMAND'    "<----  pass this
          i_callback_top_of_page   = 'TOP'
          is_layout                = it_layout
          it_fieldcat              = it_fcat
          i_default                = 'X'
          i_save                   = 'A'
          it_events                = it_event
        TABLES
          t_outtab                 = it_final
        EXCEPTIONS
          program_error            = 1
          OTHERS                   = 2.
    *&      Form  USER_COMMAND
    *       text
    *      -->R_UCOMM      text
    *      -->RS_SELFIELD  text
    FORM user_command USING r_ucomm LIKE sy-ucomm
                            rs_selfield TYPE slis_selfield.
      CASE r_ucomm.
        WHEN '&DATA_SAVE'.                "<-------check this
          PERFORM save_data.
      ENDCASE.
    ENDFORM.                    "USER_COMMAND

  • To capture the selected rows along with edited field contents in alv report

    Dear All,
             I do have requirement where, in alv report output one field is editable and need to save the content of the edited field along with the selected rows.
             For example If there are 10 records displayed in the alv output with 20 fields.
    Out of this 20 fields one field (say XYZ) is editable. Also i have already created a new pushbutton (say ABC) on alv output. Now in the alv output if we maintain some value in the field (XYZ ) for the 2nd and 4th record and select this two records, and when clicked on the pushbutton (ABC) it has to update the DB table.
          I am using the Func Module  'REUSE_ALV_GRID_DISPLAY'. 
          Your early reply with sample code would be appreciated.
    Thanks in Advance.

    HI Naveen ,
    There is an import parameter "i_callback_program" in the function module,
    plz pass the program name to it.
    Capture the command by passing a field of type sy-ucomm to "I_CALLBACK_USER_COMMAND ".  Check the returned command and
    and program a functionality as desired.
    u can try the event double_click or at line selection. there u can use READLINE command to c if the line has been selected.
    In case it is , process the code segment.
    Regards
    Pankaj

  • SORT Not merging similar fields if there are any editable fields in the ALV

    Hi All,
    I have two issues with my OOPS ALV report.
    1) Standard sort is not working :
    Output of the report looks like this
    WBS    TEXT          Period 1  Period 2
    A           Total hours     1         1
    A           Total hours     1         1 
    A           Total COSt     1         1
    A          Total COST     1         1
    My agenda is to calculate sub total of period1 and period 2 based on fields WBS and TEXT, my output should look like
    WBS    TEXT          Period 1  Period 2
    A          Total hours         1           1
                                         1           1
    Total hours                     2           2 ( Sub total )
    A          Total COST        1         1
                                         1         1
    Total COST                    2         2 ( Sub total )
    To achieve this i pass these two fields in the sort table and pass field subtot = 'X' for TEXT field.
    It is working fine, i am getting the sub totals but the WBS field are not grouped( Even though it is a standard functionality).
    my output looks like
    WBS    TEXT          Period 1  Period 2
    A         Total hours   1         1
    A         Total hours   1         1
    Total hours               2         2 ( Sub total )
    A      Total COST      1         1
    A      Total COST      1         1
    Total COST              2         2 ( Sub total )
    I have few editable fields in my output, i came to know this issue is because of the editable fields. have anybody come across the same error.
    Please let me know how to achieve the standard sort ( Merging similar values ) functionality even if the output has editable fields.
    2) IS it possible to get two Grand total based on a field value . In my example , my TEXT field will always have value either  'Total hours' or 'Total COST'
    my output should look like this.
    WBS    TEXT          Period 1  Period 2
    A      Total hours     1         1
                                  1         1
    Total hours(A)          2         2 ( Sub total )
    A      Total COST     1         1
                                  1         1
    Total COST(A)         2         2 ( Sub total )
    B      Total hours      1         1
                                  1         1
    Total hours(B)          2         2 ( Sub total )
    B      Total COST      1         1
                                    1         1
    Total COST(B)           2         2 ( Sub total )
    GRAND TOTAL HOURS    4         4
    GRAND TOTAL COST       4         4.
    Response will be appreciated.
    Thanks & Regards,
    Rajanidhi Rajasekeran
    Edited by: Julius Bussche on Jul 14, 2008 7:39 PM

    Hi
    If I make  the editable field to non editable then sort & cell merge is happening but if I make any of the field as editable then merge is not working shall i request you the solution
    Regards-Sreeni

  • Event for edit fields in Object ALV grid

    Hi community,
    I've building an ALV Grid in a SubDynpro of Tabstrip...
    Any fields are edit.
    I would like refresh my internal table at data changed of ALV object but if not assign a field at F4 event this result 
    not refresh.
    Thanks everybody,
    Antonello

    Hi Antonello Didonna,
    Use this code, its working:-
    After the user edits any records and performs an action then place this code.
    Say when user presses a button with function code 'EXECUTE', and all the changes from the output screen in ALV reflects back to internal table.
    * handle the code execution based on the function code encountered
    CASE sy-ucomm.
    * when the function code is EXECUTE then process the selected records
      WHEN 'EXECUTE'.
    * to reflect the data changed into internal table
        DATA : ref_grid TYPE REF TO cl_gui_alv_grid. "new
        IF ref_grid IS INITIAL.
          CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
            IMPORTING
              e_grid = ref_grid.
        ENDIF.
        IF NOT ref_grid IS INITIAL.
          CALL METHOD ref_grid->check_changed_data.
        ENDIF.
        " now your internal table data is changed as in ALV output
        " append your code
      WHEN OTHERS.
        " your code
    ENDCASE.
    Hope this solves your problem.
    Thanks & Regards,
    Tarun Gambhir

  • Editable field lenght in ALV - given 254 but only taking 120?

    Hi Friends,
    I have an ALV grid in OO.
    There is a editable field for remarks to be entered, and it has been mapped to a domain with CHAR254.
    Following is the fieldcat set for the column
            LS_FIELDCAT-EDIT             = 'X'.
            LS_FIELDCAT-REPTEXT      = 'Remarks'.
            LS_FIELDCAT-SCRTEXT_L  = 'Remarks'.
            LS_FIELDCAT-SCRTEXT_M = 'Remarks'.
            LS_FIELDCAT-SCRTEXT_S  = 'Remarks'.
            LS_FIELDCAT-OUTPUTLEN = 254.
            LS_FIELDCAT-INTLEN         = 254.
    but still in the report, i am able to input only 120 chars, what could be the reason?
    Appreciate if someone can help me out.
    Thanks,
    Simha

    Hi Vijay,
    Its still the same result.
    i am not able to input more than 120char.
    Same is the case when i try to enter remarks using FM POPUP_GET_VALUES when i pass a field of length 254, i am able to input only upto 124(approx) char
    What could be the prob?
    how to over come this?
    Appreciate your help.
    Regards,
    Simha.
    Edited by: Simha on Nov 17, 2008 9:18 AM

  • Reduce out put field length of alv output in back ground

    Hi all,
    Is there a way to reduce the output length of the field in back groundfor ALV out put
    Its back ground
    I have thsi things in my field catalog
    wa_fieldcat-outputlen = 10.
    wa_fieldcat-ddic_outputlen = 10.
    If the field has value of length 10 characters its ok
    but when the field has lenth of more than 10 characters
    (say 20 char). in fore ground it displays 10 characters and then we can move the column to see full thing , but in back ground it displays 20 char.
    In fact that is what i have to see because in background you cannot drag the column to see entire thing , but i want to cut short to 12 char even if i don't see the remaining thing its ok
    Thanks

    Hi Vasu,
    WHAT EXACTLY SY-BATCH DOES .
    I tried reducing wa_fieldcat-outputlen = 10. and then i tried
    wa_fieldcat-outputlen = 5., but it doesnot really changed anything in back ground but it did in fore ground . I haven't used any called sy-batch
    Let me know
    This is how my field catalog looks for mATNR
    clear wa_fieldcat.
      wa_fieldcat-fieldname = 'MATNR'.
      wa_fieldcat-seltext_l = ' Material #'.
      wa_fieldcat-seltext_m = 'Material #'.
      wa_fieldcat-seltext_s = ' Material #'.
      wa_fieldcat-reptext_ddic   = 'Material #'.
      wa_fieldcat-ddictxt   = 'L'.
      wa_fieldcat-col_pos   = 4.
      wa_fieldcat-outputlen = 18.
      wa_fieldcat-intlen    = 18.
      wa_fieldcat-ddic_outputlen = 18.
      wa_fieldcat-tabname   = '1'.
      append wa_fieldcat to fieldcat.
    NEXT TIME I COMMENTED THIS AND HAD
    wa_fieldcat-fieldname = 'MATNR'.
      wa_fieldcat-seltext_l = ' Material #'.
      wa_fieldcat-seltext_m = 'Material #'.
      wa_fieldcat-seltext_s = ' Material #'.
      wa_fieldcat-reptext_ddic   = 'Material #'.
      wa_fieldcat-ddictxt   = 'L'.
      wa_fieldcat-col_pos   = 4.
      wa_fieldcat-outputlen = 10.
      wa_fieldcat-intlen    = 10.
      wa_fieldcat-ddic_outputlen = 10.
      wa_fieldcat-tabname   = '1'.
      append wa_fieldcat to fieldcat.
    BUT I DID SEE DIFFERENCE IN FOREBROUND BUT NOT IN BACK GROUND
    Let me know
    Thanks

  • Edit field in OOPS ALV on button click

    Hello All,
    I have created an ALV using set_table_for_first_display, where one of the field is set to editable mode I have two buttons, one for save data and other to change data. Initially when the layout is displayed for first time, all the fields should be in non-editable mode and if user click on change button that particular field gets in editable mode.
    How  can I achieve this?
    Regards,
    Sachin

    Check the below code to enable or disable user input for the Edit cells...
          IF GO_GRID->IS_READY_FOR_INPUT( ) EQ 0.
    * Set edit enabled cells ready for input
            CALL METHOD GO_GRID->SET_READY_FOR_INPUT
              EXPORTING
                I_READY_FOR_INPUT = 1.
          ELSE.
    * Lock edit enabled cells against input
            CALL METHOD GO_GRID->SET_READY_FOR_INPUT
              EXPORTING
                I_READY_FOR_INPUT = 0.
          ENDIF.

  • Arrow mark with kunnr field values in alv output.

    Hi ,
    I  need to increase the column field length. I am using Function Module REUSE_ALV_LIST_DISPLAY because alv_grid display fm is not available in 4.0b version. I have used column optimization in layout. The column kunnr is coming with a small arrow though there is no data loss. Is there any way I can remove the arrow mark with kunnr field values.

    Hi,
    You can increase your column lenght in fieldcat by using Fcat-columnwidth = "SIZE OF KUNNR ".
    Set the size of kunnr field in fieldcat and get the appropiate output.
    Regards
    Abdul

  • BCALV_WIZARD Hierarchical ALV output

    I've been using the BCALV_WIZARD program to generate ALV Grid Control template programs for a while.
    However, when I select the radio button "Hierarchical-Sequential ALV" radio button, the program doesn't produce the template ABAP.
    Has anyone else gotten this feature to work?

    I've been using the BCALV_WIZARD program to generate ALV Grid Control template programs for a while.
    However, when I select the radio button "Hierarchical-Sequential ALV" radio button, the program doesn't produce the template ABAP.
    Has anyone else gotten this feature to work?

  • Unable to save data entered in editable field of IW37N output

    Hi Gurus,
    I have made one of the fields in IW37N ALV output as editable using exit IWOC0004. When I enter the values in the field, I am unable to save the data to the order. The orders are getting successfully released but the values entered are not saved in database. Please help.
    Thanks,
    Pramod.V

    Discovered that the problem was with the Adobe version. Updated version to 8.1.1 and installed  Active X control software and things started working.

  • ALV grid case-sensitive edit field

    Hello,
    i've a editable field on a alv grid.
    The field is case-sensitive in the domain.
    But when i enter a field an click rturn, the letters get uppercase.
    What's the problem?
    Best regards,
    TomSd

    Hi,
    Add the attribute  lowercase = 'X'  while preapring field catalog for this field.
    Regards,
    Gopi.
    Reward points if helpfull.

  • ALV Grid Display Editable Field Disables Zebra Style

    Hi all,
    First of all, I want to say: "I did my research." I found a post with a very similar question but not identically my case, or at least I can't solve it the same way. [Here is the reference post.|Re: Check box impact on ALV grid (Using OOPS)]
    My Goal: I have an ALV Grid which I want to display using the ZEBRA style in the layout and also make one field in the field catalog editable.
    My Issue: As soon as you make one field editable in the field catalog using the EDIT option, the ZEBRA style in the layout does not works. I also have key fields in the ALV Grid which I want to keep as KEY and which get painted dark blue.
    I can't use the individual row coloring method used in the reference link above since this overrides the blue coloring of the key fields in the ALV. I haven't gone through all the effort of individually painting each cell on the grid, and honestly I don't think it is efficient.
    My Question: Is there a way to have editable fields in the ALV Grid and keep the ZEBRA setting working?
    Please, I will really appreciate if you can read and try to understand my issue before posting incoherent solutions or answers. I don't want to waste anybody's time nor mine.

    Shiva,
    Thanks for your reply; it someway addresses what I am looking for. Unfortunately, I've already went through that reference code; it has exactly the same problem that I am facing.
    If you take that code for example, and you throw it u201Cas-isu201D in your ABAP editor you'll see that even when the ZEBRA style is being used in the layout, since the EDIT option in the field catalog is being set for field NETPR, the ZEBRA style gets lost; only the whole editable column gets white. You can go ahead and play a little bit with that piece of code and you will see what I am saying.
    Regards

  • Add new selection fields and ALV output  fields in VA05

    Hi,
    I want to add two new selection fields in VA05 'Further selection criteria' screen, also want to add some more fields in VA05 ALV output.
    Please help me how i can do it using user exit ?
    Thanks ,
    Archana

    hi,
    You have to copy the standard program SAPMV75A to ZSAPMV75A, change them accordingly.

  • Fixed length for the fields of  ALV output

    Hi,
          How to fix a field in the ALV output to its max length..For example..if a field's max length is 10...that coloumn should not be dragged or moved to right..Its lenght shluld be fixed to 10...Could any bod suggest me how to perform this...thanks..
    Shyam.

    Hi,
    U can better optimize the width.it will be good.
    data : W_LAYOUT TYPE SLIS_LAYOUT_ALV.
    W_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM     = SY-REPID
          I_STRUCTURE_NAME       = 'T_ALV'
          IS_LAYOUT              = W_LAYOUT
          IT_FIELDCAT            = T_FIELDCAT_ALV
          I_CALLBACK_TOP_OF_PAGE = 'ALV_TOP_OF_PAGE'
        TABLES
          T_OUTTAB               = T_ALV
        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.

Maybe you are looking for