How to Set Checkbox of ALV Grid Dark on Display Mode

    ABAP experts, I want to switch between display mode and edit mode for some columns of ALV Grid. So I set "LVC_S_FCAT-EDIT" "X" for the columns which need to switch mode, and use method "SET_READY_FOR_INPUT" to switch.
    Currently, the function of switch mode has been achieved. But icons of checkbox columns are light but not dark when display mode, although the columns can't be edited. (Please refer to the image below.) I want to make checkbox columns dark as other columns on display mode.
    I tried to use "CL_GUI_ALV_GRID=>MC_STYLE_ENABLED" and "CL_GUI_ALV_GRID=>MC_STYLE_DISABLED", but failed. I also studied sample program "BCALV_EDIT_05" which is related to checkbox in ALV Grid, and compared my program with this program. But I still have not found problems.
    Help me solve this problem, please.
    Part of my codes are as follows.
    Part 1:
IF iv_is_create_group = abap_true OR iv_is_edit_group = abap_true.
       set_enable( iv_flag = 1 ).
       LOOP AT gt_acct_group_item ASSIGNING <lfs_acct_group_item>.
         CLEAR ls_celltab.
         IF <lfs_acct_group_item>-celltab IS INITIAL.
           CLEAR ls_celltab.
           ls_celltab-fieldname = 'CHECK_BOX'.
           ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
           APPEND ls_celltab TO <lfs_acct_group_item>-celltab.
           CLEAR ls_celltab.
           ls_celltab-fieldname = 'XPORE'.
           ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
           APPEND ls_celltab TO <lfs_acct_group_item>-celltab.
         ELSE.
           LOOP AT <lfs_acct_group_item>-celltab ASSIGNING <lfs_celltab>.
             <lfs_celltab>-style = cl_gui_alv_grid=>mc_style_enabled.
           ENDLOOP.
         ENDIF.
       ENDLOOP.
     ELSE.
       set_enable( iv_flag = 0 ).
       LOOP AT gt_acct_group_item ASSIGNING <lfs_acct_group_item>.
         IF <lfs_acct_group_item>-celltab IS INITIAL.
           CLEAR ls_celltab.
           ls_celltab-fieldname = 'CHECK_BOX'.
           ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
           APPEND ls_celltab TO <lfs_acct_group_item>-celltab.
           CLEAR ls_celltab.
           ls_celltab-fieldname = 'XPORE'.
           ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
           APPEND ls_celltab TO <lfs_acct_group_item>-celltab.
         ELSE.
           LOOP AT <lfs_acct_group_item>-celltab ASSIGNING <lfs_celltab>.
             <lfs_celltab>-style = cl_gui_alv_grid=>mc_style_disabled.
           ENDLOOP.
         ENDIF.
       ENDLOOP.
     ENDIF.
     CALL METHOD gr_grid->refresh_table_display
*      EXPORTING
*        is_stable      =
*        i_soft_refresh =
       EXCEPTIONS
         finished       = 1
         OTHERS         = 2
     IF sy-subrc <> 0.
*     Implement suitable error handling here
     ENDIF.
    Part 2:
METHOD set_enable.
     gr_grid->set_ready_for_input(
         i_ready_for_input = iv_flag
ENDMETHOD.

Hi Liu,
    Please go through the below code.
*& Report  YEDIT_DISPLAY
REPORT  YEDIT_DISPLAY.
TABLES : VBAK.
TYPE-POOLS SLIS.
TYPES : BEGIN OF TY_VBAK,
          VBELN TYPE VBAK-VBELN,
         END OF TY_VBAK,
         BEGIN OF TY_FINAL,
           BOX TYPE C,
           VBELN TYPE VBAK-VBELN,
         END OF TY_FINAL.
DATA : IT_VBAK TYPE TABLE OF TY_VBAK,
        WA_VBAK TYPE TY_VBAK,
        IT_FINAL TYPE TABLE OF TY_FINAL,
        WA_FINAL TYPE TY_FINAL,
        IT_FCAT TYPE TABLE OF SLIS_FIELDCAT_ALV,
        WA_FCAT TYPE SLIS_FIELDCAT_ALV.
START-OF-SELECTION.
   PERFORM FETCH_DATA.
   PERFORM FCAT_DATA.
   PERFORM DISPLAY.
*&      Form  FETCH_DATA
*       text
*  -->  p1        text
*  <--  p2        text
FORM FETCH_DATA .
   SELECT VBELN INTO TABLE IT_VBAK FROM VBAK UP TO 10 ROWS.
   LOOP AT IT_VBAK INTO WA_VBAK.
     WA_FINAL-VBELN = WA_VBAK-VBELN.
     APPEND WA_FINAL TO IT_FINAL.
     CLEAR : WA_FINAL , WA_VBAK.
   ENDLOOP.
ENDFORM.                    " FETCH_DATA
*&      Form  FCAT_DATA
*       text
*  -->  p1        text
*  <--  p2        text
FORM FCAT_DATA .
   WA_FCAT-COL_POS = 1.
   WA_FCAT-FIELDNAME = 'BOX'.
   WA_FCAT-TABNAME = 'IT_FINAL'.
   WA_FCAT-OUTPUTLEN = '3'.
   WA_FCAT-SELTEXT_M = 'BOX'.
   wa_fcat-checkbox = 'X'.
   WA_FCAT-EDIT = 'X'.
   APPEND WA_FCAT TO IT_FCAT.
   CLEAR WA_FCAT.
   WA_FCAT-COL_POS = 2.
   WA_FCAT-FIELDNAME = 'VBELN'.
   WA_FCAT-TABNAME = 'IT_FINAL'.
   WA_FCAT-OUTPUTLEN = '3'.
   WA_FCAT-SELTEXT_M = 'Sales Document'.
   APPEND WA_FCAT TO IT_FCAT.
   CLEAR WA_FCAT.
ENDFORM.                    " FCAT_DATA
*&      Form  DISPLAY
*       text
*  -->  p1        text
*  <--  p2        text
FORM DISPLAY .
   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
      I_CALLBACK_PROGRAM                = SY-REPID
*   I_CALLBACK_PF_STATUS_SET          = ' '
    I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
*   I_CALLBACK_TOP_OF_PAGE            = ' '
      IT_FIELDCAT                       = IT_FCAT
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = ' '
     TABLES
       T_OUTTAB                          = IT_FINAL
* EXCEPTIONS
*   PROGRAM_ERROR                     = 1
*   OTHERS                            = 2
   IF SY-SUBRC <> 0.
* Implement suitable error handling here
   ENDIF.
ENDFORM.                    " DISPLAY
FORM USER_COMMAND USING UCOMM TYPE SY-UCOMM
                         RTAB TYPE slis_selfield.
   CASE UCOMM.
     WHEN '&IC1'.
       MESSAGE 'SUCESSFUL' TYPE 'S'.
     WHEN '&DATA_SAVE'.
       PERFORM FIL_FCAT.
       PERFORM DISPLAY1.
     WHEN 'BACK'.
       LEAVE TO SCREEN 0.
     WHEN OTHERS.
       LEAVE TO SCREEN 0.
   ENDCASE.
ENDFORM.
*&      Form  FIL_FCAT
*       text
*  -->  p1        text
*  <--  p2        text
FORM FIL_FCAT .
CLEAR IT_FCAT.
   WA_FCAT-COL_POS = 1.
   WA_FCAT-FIELDNAME = 'BOX'.
   WA_FCAT-TABNAME = 'IT_FINAL'.
   WA_FCAT-OUTPUTLEN = '3'.
   WA_FCAT-SELTEXT_M = 'BOX'.
   wa_fcat-checkbox = 'X'.
**  WA_FCAT-EDIT = 'X'.
   APPEND WA_FCAT TO IT_FCAT.
   CLEAR WA_FCAT.
   WA_FCAT-COL_POS = 2.
   WA_FCAT-FIELDNAME = 'VBELN'.
   WA_FCAT-TABNAME = 'IT_FINAL'.
   WA_FCAT-OUTPUTLEN = '3'.
   WA_FCAT-SELTEXT_M = 'Sales Document'.
   APPEND WA_FCAT TO IT_FCAT.
   CLEAR WA_FCAT.
ENDFORM.                    " FIL_FCAT
*&      Form  DISPLAY1
*       text
*  -->  p1        text
*  <--  p2        text
FORM DISPLAY1 .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
      I_CALLBACK_PROGRAM                = SY-REPID
*   I_CALLBACK_TOP_OF_PAGE            = ' '
      IT_FIELDCAT                       = IT_FCAT
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = ' '
     TABLES
       T_OUTTAB                          = IT_FINAL
* EXCEPTIONS
*   PROGRAM_ERROR                     = 1
*   OTHERS                            = 2
   IF SY-SUBRC <> 0.
* Implement suitable error handling here
   ENDIF.
ENDFORM.                    " DISPLAY1
Here i written code under the SAVE button , if requires you create your own status and apply.
Regards,
Krishna

Similar Messages

  • How to set variant for ALV grid from ABAP

    Hello,
    I have a program which displays some data with ALV grid. Then after some operation I would like to set different layout for the grid, but not by choosing it manually but by the program. I thought that it would be enough to use the method SET_VARIANT, so I'm setting DISVARIANT structure properly, using SET_VARIANT method and after that I'm calling REFRESH_TABLE_DISPLAY but layout is not changed. What else should I do? Is that possible?
    Best regards,
    Marcin

    Hi,
    Check this
    * While declaring select-options
    parameters: p_vari        like ltdx-variant.  " Layout
    * then add the following code in
    at selection-screen on value-request for p_vari.
      perform f_variant_f4 using p_vari.
    * Code for f_variant_f4
    form f_variant_f4 using  p_vari.
    * private variables
      data : v_exit    type c.
      clear gs_variantt.
      v_variant_save = 'U'.
      call function 'LVC_VARIANT_F4'
        exporting
          is_variant    = gs_variant
          i_save        = v_variant_save
        importing
          e_exit        = v_exit
          es_variant    = gs_variantt
        exceptions
          not_found     = 1
          program_error = 2
          others        = 3.
      if sy-subrc ne c_0.
        message i999(yscc) with text-064.    " No Layout Available for F4
      endif.
      if v_exit is initial.
        gs_variant-variant = gs_variantt-variant.
        p_vari             = gs_variantt-variant.
      endif.
    endform.                                 " F_variant_f4
    * In PBO
        call method grid1->set_table_for_first_display
          exporting
            is_layout                     = gs_layout
            is_variant                    = gs_variant
            i_save                        = 'A'
            it_toolbar_excluding          = i_exclude[]
          changing
            it_outtab                     = i_output[]
            it_fieldcatalog               = i_fieldcat[]
          exceptions
            invalid_parameter_combination = 1
            program_error                 = 2
            too_many_lines                = 3
            others                        = 4.

  • Hi, how to set printer to alv grid, please check my code

    Hi,
    Iam giving my code, please observe...
    DEFAULT PRINTER NAME "A909".
    NOW IAM SETTING OT "LP01".
    GS_PRINT-PRINT = 'X'.
    P_PRINTR = 'LP01'.
    CALL FUNCTION 'UPDATE_DEFAULT_PRINTPARAMS'
    EXPORTING
    USER = SY-UNAME
    DESTINATION = P_PRINTR
    IMMEDIATELY = ' '
    RELEASE = 'X'
    NEW_LIST_ID = 'X'.
    SY-BATCH = 'X'
    CALL METHOD GO_GRID->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
    I_BUFFER_ACTIVE =
    I_BYPASSING_BUFFER =
    I_CONSISTENCY_CHECK = G_CONSISTENCY_CHECK
    I_STRUCTURE_NAME = 'KNA1'
    IS_VARIANT = GS_VARIANT
    I_SAVE = 'A'
    I_DEFAULT = 'X'
    IS_LAYOUT = GS_LAYOUT
    IS_PRINT = GS_PRINT
    IT_SPECIAL_GROUPS =
    IT_TOOLBAR_EXCLUDING = GT_EXCLUDE
    IT_HYPERLINK =
    IT_ALV_GRAPHICS =
    IT_EXCEPT_QINFO =
    IR_SALV_ADAPTER =
    CHANGING
    IT_OUTTAB = ITAB2[]
    IT_FIELDCATALOG = GT_FIELDCAT
    IT_SORT =
    IT_FILTER =
    EXCEPTIONS
    INVALID_PARAMETER_COMBINATION = 1
    PROGRAM_ERROR = 2
    TOO_MANY_LINES = 3
    others = 4
    After running this program iam getting the default printer spool request number 'A909', Iam not getting printing form 'LP01'.
    Need is to send the print to given printer (LP01), here printer may varry accoring to the selection. So nee is to set the printer that which has choosen.
    Please give me the valuble solution as early as possible.
    Please solve this as early as possible.

    Hi Ravi,
    You can choose for the print version to be created as a PostScript file instead of a PDF document. The PostScript file is then sent directly to a printer of your choice
    If you do not specify an output device here, a PDF file is generated and displayed on the screen.
    You use the methods of the interface class IF_SALV_WD_PDF_SETTINGS for this (implementing class CL_SALV_WD_CONFIG_TABLE).
    <b>Function</b>                      <b>Method</b>
    Set ALV output to be printed immediately -->  SET_PRINT_IMMEDIATE
    Check whether the ALV output is to be printed immediately --> GET_PRINT_IMMEDIATE
    Set printer -->  SET_PRINTER
    Get printer --> GET_PRINTER
    See the below for SAP link
    http://help.sap.com/saphelp_nw04s/helpdata/en/43/27472def40601ee10000000a422035/content.htm
    see the thread also
    Re: How to set the printer in set_table_for_first_display
    mark all the helpful answers
    Regards
    Sudheer

  • Set editable/non-editable checkbox in alv grid

    Hi all,
    How to set a checkbox in alv grid in editable/non-editable. i am using alv gird display function module for this. i tried to used method  cl_gui_alv_grid=>mc_style_disabled. but its not working. is it possible to have this functionality in grid? please help. thanks in advance.

    Hi,
    Try like this.
    CALL METHOD gr_alvgrid->set_table_for_first_display
    EXPORTING
    I_BUFFER_ACTIVE =
    I_CONSISTENCY_CHECK =
    I_STRUCTURE_NAME =
    IS_VARIANT =
    I_SAVE =
    I_DEFAULT = 'X'
    is_layout = gs_layout
    IS_PRINT =
    IT_SPECIAL_GROUPS =
    IT_TOOLBAR_EXCLUDING =
    IT_HYPERLINK =
    CHANGING
    it_outtab = gt_list[]
    it_fieldcatalog = gt_fieldcat
    IT_SORT =
    IT_FILTER =
    EXCEPTIONS
    invalid_parameter_combination = 1
    program_error = 2
    too_many_lines = 3
    OTHERS = 4
    regards
    Rajesh kumar

  • Problems with checkbox in ALV-GRID OO

    Hi,
    i have Problems by listing an editable checkbox
    in ALV GRID OO and handle the itab with
    the marked fields.
    Here my Code extract. Has anybody an idea or a short example.
    TYPES: BEGIN OF ALV_TAB,
            SGTXT  LIKE RK23B-SGTXT,
            CHECK(1),
          END   OF ALV_TAB.
    DATA: ITAB    TYPE TABLE OF ALV_TAB.
    Is this Declaration correct??
    <b>  GS_FIELDCAT-FIELDNAME  = 'CHECK'.
      GS_FIELDCAT-CHECKBOX   = 'X'.
      APPEND GS_FIELDCAT TO GT_FIELDCAT.
      GS_LAYOUT-EDIT         = 'X'.
      GS_LAYOUT-BOX_FNAME    = 'CHECK'.</b>
      CALL METHOD GR_ALVGRID->SET_TABLE_FOR_FIRST_DISPLAY
        EXPORTING
          IT_TOOLBAR_EXCLUDING = PT_EXCLUDE
          IS_LAYOUT            = GS_LAYOUT
        CHANGING
          IT_FIELDCATALOG      = GT_FIELDCAT
          IT_OUTTAB            = ITAB.
    FORM HANDLE_USER_COMMAND USING E_UCOMM.
      CASE E_UCOMM.
        WHEN 'REFR'.
    <b>      Here i will have the itab with the marked checkbox.
          how can i refresh?</b>*
        WHEN 'EXCEL'.
          MESSAGE I010 WITH E_UCOMM.
      ENDCASE.
    ENDFORM.                    "HANDLE_USER_COMMAND
    Regards, Dieter

    Hi, in reference to....
    ASE E_UCOMM.
    WHEN 'REFR'.
    Here i will have the itab with the marked checkbox.
    how can i refresh?*
    Do you want to get rid of the checks in any checkbox?
    If so,  just loop at modify.
    ASE E_UCOMM.
    WHEN 'REFR'.
    <b>   Loop at itab where check = 'X'.
            itab-check = space.
            modify itab.
       endloop.</b>
    Regards,
    Rich Heilman

  • How to implement 'hypelink' in ALV GRID

    Hi,everybody,please tell me how to implement 'hypelink' in ALV GRID?
    I just try to design a ALV GRID report but I do not kown the way of using 'hypelink'.  I refer to some documents but failsed.     somebody can help me and give a example including entire code.

    1. Create a table where hyperlinks & corresponding handles are stored (TYpe LVC_T_HYPE)
    DATA ls_hype TYPE lvc_s_hype .
    data lt_hype type lvc_t_hype.
    ls_hype-handle = '1' .
    ls_hype-href = 'http://www.company.com/carrids/car1' .
    APPEND ls_hype TO lt_hype .
    2. In your list data table create additional field of type INT4 which will contain the handle of the hyper link (ex. '1' for above hyperlink)
    DATA carrid_handle TYPE int4 .
    3. For the field which shall contain the hyperlink, make an entry in the field catalog indicating the field name which contains handle for the hyperlink. This is done by setting the handle field name in WEB_FIELD.
    ls_fieldcat-fieldname = 'CARRID'
    ls_fieldcat-web_field = 'CARRID_HANDLE'.
    4. While calling set_table_for_first_display, pass the hyperlink table created in step 1 to parameter 'it_hyperlink'
    ~Piyush Patil

  • User command for checkbox in alv grid output

    Hi,
    Does anyone knows the user command for checkbox in alv grid display. My requirement is to have a column for checkbox in alv output. When the user checks the checkbox, a pop-up dialog box will appear. This dialog box was created in screen painter. I can't find the user command for this. Please help.
    Thanks in advance.

    Hi,
    there r two ways for creating checkbox col on the ALV grid.
    1.)  take an extra field in your internal table i.e 
    data:
       checkbox type c.
    loop at internal_table into wa.
    checkbox.
    endloop.
    or
    the fieldcatalog attribute
    2.) wa_fcat-checkbox = 'X'.
    append wa_fcat to t_fcat.
    clear wa_fcat.
    if itab-checkbox = 'X'.
    call screen <dialogbox screen number>.
    endif.
    regards
    ravi

  • How to put checkbox into sap grid display

    hi,
         how to put checkbox into sap grid display ,when i am selecting the check box it should move to second secondary list.
          could u plz explain clearly

    Hi,
    In the layout fill
    is_layout-box_fieldname = 'CHECKBOX'
    is_layout-box_tabname   = 'I_OUTPUT'.
    The internal table that you are passing as I_OUTPUT, should have an extra field called CHECKBOX of length 1.
    Also refer to tutorial Easy Grid :
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/documents/a1-8-4/an%20easy%20reference%20for%20alv%20grid%20control.pdf
    Cheers,
    Simha.

  • ALV GRID AND LIST DISPLAY

    Hi experts, how are you.
    What is the difference between ALV Grid Display and ALV List Display?

    ALV LIST Can be coded using only FMs
    ALV GRID Can be coded using FMs and object oriented concepts
    ALV LIST Can be displayed hieraicharlly
    ALV GRID cannot be displayed hierarichally
    ALV grid uses ActiveX controls
    present on the Presentation Server.
    Hence, it consumes More Memory
    on the presentation server.
    ALV LIST is Display Only.
    Whereas
    ALV Grid Can Be made EDITABLE for entry purpose.
    In alv grid, these options are possible,
    but not in alv list.
    without horizontal lines
    without vertical lines
    without cell merging during sorts
    display total lines above the entries
    Thanks
    Seshu

  • Based from my code, how do I implement an ALV grid using OO concept...

    Hello experts,
    I am currently practicing ABAP Objects and I would like to use alv in my report. Now, How can I implement ALV in my report in the simplest way possible. Sample codes will be highly appreciated. Thanks guys and take care!
    REPORT  z_aris_oo_practice_9
            NO STANDARD PAGE HEADING
            LINE-SIZE 0
            LINE-COUNT 0.
    TABLES: spfli.
    Selection screen
    SELECTION-SCREEN BEGIN OF BLOCK box1 WITH FRAME.
    SELECTION-SCREEN BEGIN OF BLOCK box2 WITH FRAME.
    PARAMETERS: p_carrid TYPE spfli-carrid,
                p_connid TYPE spfli-connid.
    SELECTION-SCREEN END OF BLOCK box2.
    SELECTION-SCREEN BEGIN OF BLOCK box3 WITH FRAME.
    PARAMETERS: p_sumdis AS CHECKBOX.
    SELECTION-SCREEN END OF BLOCK box3.
    SELECTION-SCREEN END OF BLOCK box1.
          INTERFACE status
    INTERFACE status.
      METHODS write.
    ENDINTERFACE.                    "status
          CLASS main DEFINITION
    CLASS main DEFINITION.
      PUBLIC SECTION.
        INTERFACES status.
        METHODS: get_data,
                 combine_data.
        CLASS-DATA: counter TYPE i.
      PRIVATE SECTION.
        TYPES: BEGIN OF t_spfli,
             carrid    TYPE spfli-carrid,
             connid    TYPE spfli-connid,
             countryfr TYPE spfli-countryfr,
             cityfrom  TYPE spfli-cityfrom,
             airpfrom  TYPE spfli-airpfrom,
             countryto TYPE spfli-countryto,
             cityto    TYPE spfli-cityto,
             airpto    TYPE spfli-airpto,
             fltime    TYPE spfli-fltime,
             deptime   TYPE spfli-deptime,
             arrtime   TYPE spfli-arrtime,
            END OF t_spfli.
        DATA: it_spfli        TYPE STANDARD TABLE OF t_spfli.
    ENDCLASS.                    "main DEFINITION
          CLASS main IMPLEMENTATION
    CLASS main IMPLEMENTATION.
      METHOD status~write.
        WRITE: / 'The number of records is:', counter.
      ENDMETHOD.                    "status~write
      METHOD get_data.
        SELECT carrid   connid   countryfr
               cityfrom airpfrom countryto
               cityto   airpto   fltime
               deptime  arrtime
        FROM spfli
        INTO TABLE it_spfli
        WHERE carrid = p_carrid.
      ENDMETHOD.                    "get_data
      METHOD combine_data.
        FIELD-SYMBOLS: <fs_spfli> LIKE LINE OF it_spfli.
        LOOP AT it_spfli ASSIGNING <fs_spfli>.
          ADD 1 TO counter.
          WRITE: / <fs_spfli>-carrid,
                   <fs_spfli>-connid,
                   <fs_spfli>-countryfr,
                   <fs_spfli>-cityfrom,
                   <fs_spfli>-airpfrom,
                   <fs_spfli>-countryto,
                   <fs_spfli>-cityto,
                   <fs_spfli>-airpto,
                   <fs_spfli>-fltime,
                   <fs_spfli>-deptime,
                   <fs_spfli>-arrtime.
        ENDLOOP.
      ENDMETHOD.                    "show_data
    ENDCLASS.                    "main IMPLEMENTATION
    START-OF-SELECTION.
      DATA: main TYPE REF TO main,
            status TYPE REF TO status.
      CREATE OBJECT main.
      CALL METHOD main->get_data.
      CALL METHOD main->combine_data.
      CALL METHOD main->status~write.

    Hi,
    Check this example..., In this i implemented so many functionalities like top_of_page, drop_down at cell level etc.., also Check the programs BCALVEDIT also
    Just check it.
    REPORT  ZTEST_ALV_OO    MESSAGE-ID ZZ                           .
    DATA: G_GRID TYPE REF TO CL_GUI_ALV_GRID.
    DATA: L_VALID TYPE C,
          V_FLAG,
          V_DATA_CHANGE,
          V_ROW TYPE LVC_S_ROW,
          V_COLUMN TYPE LVC_S_COL,
          V_ROW_NUM TYPE LVC_S_ROID.
    DATA: IT_ROW_NO TYPE LVC_T_ROID,
          X_ROW_NO TYPE LVC_S_ROID.
    DATA:BEGIN OF  ITAB OCCURS 0,
         VBELN LIKE LIKP-VBELN,
         POSNR LIKE LIPS-POSNR,
         CELLCOLOR TYPE LVC_T_SCOL, "required for color
         DROP(10),
         check,
         END OF ITAB.
    "The Below Definitions Must.....
    DATA:
    * Reference to document
           DG_DYNDOC_ID       TYPE REF TO CL_DD_DOCUMENT,
    * Reference to split container
           DG_SPLITTER          TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
    * Reference to grid container
           DG_PARENT_GRID     TYPE REF TO CL_GUI_CONTAINER,
    * Reference to html container
           DG_HTML_CNTRL        TYPE REF TO CL_GUI_HTML_VIEWER,
    * Reference to html container
           DG_PARENT_HTML     TYPE REF TO CL_GUI_CONTAINER.
    "up to here
    *       CLASS lcl_event_handler DEFINITION
    CLASS LCL_EVENT_HANDLER DEFINITION .
      PUBLIC SECTION .
        METHODS:
    **Hot spot Handler
        HANDLE_HOTSPOT_CLICK FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID
                          IMPORTING E_ROW_ID E_COLUMN_ID ES_ROW_NO,
    **Double Click Handler
        HANDLE_DOUBLE_CLICK FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
                                         IMPORTING E_ROW E_COLUMN ES_ROW_NO,
        TOP_OF_PAGE FOR EVENT TOP_OF_PAGE              "event handler
                             OF CL_GUI_ALV_GRID
                             IMPORTING E_DYNDOC_ID.
    *        END_OF_LIST FOR EVENT end_of_list              "event handler
    *                         OF CL_GUI_ALV_GRID
    *                         IMPORTING E_DYNDOC_ID.
    ENDCLASS.                    "lcl_event_handler DEFINITION
    *       CLASS lcl_event_handler IMPLEMENTATION
    CLASS LCL_EVENT_HANDLER IMPLEMENTATION.
    *Handle Hotspot Click
      METHOD HANDLE_HOTSPOT_CLICK .
        CLEAR: V_ROW,V_COLUMN,V_ROW_NUM.
        V_ROW  = E_ROW_ID.
        V_COLUMN = E_COLUMN_ID.
        V_ROW_NUM = ES_ROW_NO.
    *    MESSAGE I000 WITH V_ROW 'clicked'.
        CLEAR IT_ROW_NO[].
        X_ROW_NO-ROW_ID = V_ROW.
        APPEND X_ROW_NO TO IT_ROW_NO .
        CALL METHOD G_GRID->SET_SELECTED_ROWS
          EXPORTING
            IT_ROW_NO = IT_ROW_NO.
      ENDMETHOD.                    "lcl_event_handler
    *Handle Double Click
      METHOD  HANDLE_DOUBLE_CLICK.
        CLEAR: V_ROW,V_COLUMN,V_ROW_NUM.
        V_ROW  = E_ROW.
        V_COLUMN = E_COLUMN.
        V_ROW_NUM = ES_ROW_NO.
        IF E_COLUMN = 'VBELN'.
          SET PARAMETER ID 'VL' FIELD ITAB-VBELN.
          CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
        ENDIF.
        IF E_COLUMN = 'POSNR'.
          SET PARAMETER ID 'VL' FIELD ITAB-VBELN.
          CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN."
        ENDIF.
      ENDMETHOD.                    "handle_double_click
    *  METHOD END_OF_LIST.                   "implementation
    ** Top-of-page event
    *    PERFORM EVENT_TOP_OF_PAGE USING DG_DYNDOC_ID.
    *  ENDMETHOD.                            "top_of_page
        METHOD TOP_OF_PAGE.                   "implementation
    * Top-of-page event
        PERFORM EVENT_TOP_OF_PAGE USING DG_DYNDOC_ID.
      ENDMETHOD.                            "top_of_page
    ENDCLASS.                    "LCL_EVENT_HANDLER IMPLEMENTATION
    *&             Global Definitions
    DATA:      G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,"Container1
                G_HANDLER TYPE REF TO LCL_EVENT_HANDLER. "handler
    DATA: OK_CODE LIKE SY-UCOMM,
          SAVE_OK LIKE SY-UCOMM,
          G_CONTAINER1 TYPE SCRFNAME VALUE 'TEST',
          GS_LAYOUT TYPE LVC_S_LAYO.
    data: v_lines type i.
    data: v_line(3) type c.
    *- Fieldcatalog for First and second Report
    DATA: IT_FIELDCAT  TYPE  LVC_T_FCAT,
          X_FIELDCAT TYPE LVC_S_FCAT,
          LS_VARI  TYPE DISVARIANT.
    *                START-OF_SELECTION
    START-OF-SELECTION.
      SELECT VBELN
             POSNR
             FROM LIPS
             UP TO 20 ROWS
             INTO CORRESPONDING FIELDS OF TABLE ITAB.
    describe table itab lines v_lines.
    END-OF-SELECTION.
      IF NOT ITAB[] IS INITIAL.
        CALL SCREEN 100.
      ELSE.
        MESSAGE I002 WITH 'NO DATA FOR THE SELECTION'(004).
      ENDIF.
    *&      Form  CREATE_AND_INIT_ALV
    *       text
    FORM CREATE_AND_INIT_ALV .
      DATA: LT_EXCLUDE TYPE UI_FUNCTIONS.
      "attention.....from here
      "split your container here...into two parts
      "create the container
      CREATE OBJECT G_CUSTOM_CONTAINER
               EXPORTING CONTAINER_NAME = G_CONTAINER1.
      "this is for top of page
    * Create TOP-Document
      CREATE OBJECT DG_DYNDOC_ID
                       EXPORTING STYLE = 'ALV_GRID'.
    * Create Splitter for custom_container
      CREATE OBJECT DG_SPLITTER
                 EXPORTING PARENT  = G_CUSTOM_CONTAINER
                           ROWS    = 2
                           COLUMNS = 1.
    * Split the custom_container to two containers and move the reference
    * to receiving containers g_parent_html and g_parent_grid
      "i am allocating the space for grid and top of page
      CALL METHOD DG_SPLITTER->GET_CONTAINER
        EXPORTING
          ROW       = 1
          COLUMN    = 1
        RECEIVING
          CONTAINER = DG_PARENT_HTML.
      CALL METHOD DG_SPLITTER->GET_CONTAINER
        EXPORTING
          ROW       = 2
          COLUMN    = 1
        RECEIVING
          CONTAINER = DG_PARENT_GRID.
    *  CALL METHOD DG_SPLITTER->GET_CONTAINER
    *    EXPORTING
    *      ROW       = 2
    *      COLUMN    = 1
    *    RECEIVING
    *      CONTAINER = DG_PARENT_HTML.
    *  CALL METHOD DG_SPLITTER->GET_CONTAINER
    *    EXPORTING
    *      ROW       = 1
    *      COLUMN    = 1
    *    RECEIVING
    *      CONTAINER = DG_PARENT_GRID.
      "you can set the height of it
    * Set height for g_parent_html
      CALL METHOD DG_SPLITTER->SET_ROW_HEIGHT
        EXPORTING
          ID     = 1
          HEIGHT = 5.
      "from here as usual..you need to specify parent as splitter part
      "which we alloted for grid
      CREATE OBJECT G_GRID
             EXPORTING I_PARENT = DG_PARENT_GRID.
    * Set a titlebar for the grid control
      CLEAR GS_LAYOUT.
      GS_LAYOUT-GRID_TITLE = TEXT-003.
      GS_LAYOUT-ZEBRA = SPACE.
      GS_LAYOUT-CWIDTH_OPT = 'X'.
      GS_LAYOUT-NO_ROWMARK = 'X'.
      GS_LAYOUT-CTAB_FNAME = 'CELLCOLOR'.
      CALL METHOD G_GRID->REGISTER_EDIT_EVENT
        EXPORTING
          I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_ENTER.
      CREATE OBJECT G_HANDLER.
      SET HANDLER G_HANDLER->HANDLE_DOUBLE_CLICK FOR G_GRID.
      SET HANDLER G_HANDLER->HANDLE_HOTSPOT_CLICK FOR G_GRID.
    *  SET HANDLER G_HANDLER->END_OF_LIST FOR G_GRID.
      SET HANDLER G_HANDLER->TOP_OF_PAGE FOR G_GRID.
      DATA: LS_CELLCOLOR TYPE LVC_S_SCOL. "required for color
      DATA: L_INDEX TYPE SY-TABIX.
      "Here i am changing the color of line 1,5,10...
      "so you can change the color of font conditionally
      LOOP AT ITAB.
        L_INDEX = SY-TABIX.
        IF L_INDEX = 1 OR L_INDEX = 5 OR L_INDEX = 10.
          LS_CELLCOLOR-FNAME = 'VBELN'.
          LS_CELLCOLOR-COLOR-COL = '6'.
          LS_CELLCOLOR-COLOR-INT = '0'.
          LS_CELLCOLOR-COLOR-INV = '1'.
          APPEND LS_CELLCOLOR TO ITAB-CELLCOLOR.
          MODIFY ITAB INDEX L_INDEX TRANSPORTING CELLCOLOR.
          LS_CELLCOLOR-FNAME = 'POSNR'.
          LS_CELLCOLOR-COLOR-COL = '6'.
          LS_CELLCOLOR-COLOR-INT = '0'.
          LS_CELLCOLOR-COLOR-INV = '1'.
          APPEND LS_CELLCOLOR TO ITAB-CELLCOLOR.
          MODIFY ITAB INDEX L_INDEX TRANSPORTING CELLCOLOR.
        ENDIF.
      ENDLOOP.
    * setting focus for created grid control
      CALL METHOD CL_GUI_CONTROL=>SET_FOCUS
        EXPORTING
          CONTROL = G_GRID.
    * Build fieldcat and set editable for date and reason code
    * edit enabled. Assign a handle for the dropdown listbox.
      PERFORM BUILD_FIELDCAT.
      PERFORM  SET_DRDN_TABLE.
    * Optionally restrict generic functions to 'change only'.
    *   (The user shall not be able to add new lines).
      PERFORM EXCLUDE_TB_FUNCTIONS CHANGING LT_EXCLUDE.
    **Vaiant to save the layout
      LS_VARI-REPORT      = SY-REPID.
      LS_VARI-HANDLE      = SPACE.
      LS_VARI-LOG_GROUP   = SPACE.
      LS_VARI-USERNAME    = SPACE.
      LS_VARI-VARIANT     = SPACE.
      LS_VARI-TEXT        = SPACE.
      LS_VARI-DEPENDVARS  = SPACE.
    **Calling the Method for ALV output
      CALL METHOD G_GRID->SET_TABLE_FOR_FIRST_DISPLAY
        EXPORTING
          IT_TOOLBAR_EXCLUDING = LT_EXCLUDE
          IS_VARIANT           = LS_VARI
          IS_LAYOUT            = GS_LAYOUT
          I_SAVE               = 'A'
        CHANGING
          IT_FIELDCATALOG      = IT_FIELDCAT
          IT_OUTTAB            = ITAB[].
      "do these..{
    * Initializing document
      CALL METHOD DG_DYNDOC_ID->INITIALIZE_DOCUMENT.
    * Processing events
      CALL METHOD G_GRID->LIST_PROCESSING_EVENTS
        EXPORTING
          I_EVENT_NAME = 'TOP_OF_PAGE'
          I_DYNDOC_ID  = DG_DYNDOC_ID.
      "end }
    * Set editable cells to ready for input initially
      CALL METHOD G_GRID->SET_READY_FOR_INPUT
        EXPORTING
          I_READY_FOR_INPUT = 1.
    ENDFORM.                               "CREATE_AND_INIT_ALV
    *&      Form  EXCLUDE_TB_FUNCTIONS
    *       text
    *      -->PT_EXCLUDE text
    FORM EXCLUDE_TB_FUNCTIONS CHANGING PT_EXCLUDE TYPE UI_FUNCTIONS.
    * Only allow to change data not to create new entries (exclude
    * generic functions).
      DATA LS_EXCLUDE TYPE UI_FUNC.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY_ROW.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_DELETE_ROW.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_APPEND_ROW.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_INSERT_ROW.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_MOVE_ROW.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_CUT.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE_NEW_ROW.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
      LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_UNDO.
      APPEND LS_EXCLUDE TO PT_EXCLUDE.
    ENDFORM.                               " EXCLUDE_TB_FUNCTIONS
    *&      Form  build_fieldcat
    *       Fieldcatalog
    FORM BUILD_FIELDCAT .
      DATA: L_POS TYPE I.
      L_POS = L_POS + 1.
      X_FIELDCAT-SCRTEXT_M = 'Check'.
      X_FIELDCAT-FIELDNAME = 'CHECK'.
      X_FIELDCAT-TABNAME = 'IT_FINAL'.
      X_FIELDCAT-COL_POS    = L_POS.
      X_FIELDCAT-CHECKbox   = 'X'.
        X_FIELDCAT-EDIT = 'X'.
      X_FIELDCAT-OUTPUTLEN = '1'.
      APPEND X_FIELDCAT TO IT_FIELDCAT.
      CLEAR X_FIELDCAT.
      L_POS = L_POS + 1.
      X_FIELDCAT-SCRTEXT_M = 'Delivery'(024).
      X_FIELDCAT-FIELDNAME = 'VBELN'.
      X_FIELDCAT-TABNAME = 'IT_FINAL'.
      X_FIELDCAT-COL_POS    = L_POS.
      X_FIELDCAT-NO_ZERO    = 'X'.
      X_FIELDCAT-OUTPUTLEN = '10'.
      X_FIELDCAT-HOTSPOT = 'X'.
      APPEND X_FIELDCAT TO IT_FIELDCAT.
      CLEAR X_FIELDCAT.
      L_POS = L_POS + 1.
      X_FIELDCAT-SCRTEXT_M = 'Item'(025).
      X_FIELDCAT-FIELDNAME = 'POSNR'.
      X_FIELDCAT-TABNAME = 'IT_FINAL'.
      X_FIELDCAT-COL_POS    = L_POS.
      X_FIELDCAT-OUTPUTLEN = '5'.
      APPEND X_FIELDCAT TO IT_FIELDCAT.
      CLEAR X_FIELDCAT.
      L_POS = L_POS + 1.
      X_FIELDCAT-SCRTEXT_M = 'Drop'(025).
      X_FIELDCAT-FIELDNAME = 'DROP'.
      X_FIELDCAT-TABNAME = 'IT_FINAL'.
      X_FIELDCAT-COL_POS    = L_POS.
      X_FIELDCAT-OUTPUTLEN = '5'.
      X_FIELDCAT-EDIT = 'X'.
      X_FIELDCAT-DRDN_HNDL = '1'.
      X_FIELDCAT-DRDN_ALIAS = 'X'.
      APPEND X_FIELDCAT TO IT_FIELDCAT.
      CLEAR X_FIELDCAT.
    ENDFORM.                    " build_fieldcat
    *&      Module  STATUS_0100  OUTPUT
    *       text
    MODULE STATUS_0100 OUTPUT.
      SET PF-STATUS 'MAIN100'.
      SET TITLEBAR 'MAIN100'.
      IF G_CUSTOM_CONTAINER IS INITIAL.
    **Initializing the grid and calling the fm to Display the O/P
        PERFORM CREATE_AND_INIT_ALV.
      ENDIF.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
    *       text
    MODULE USER_COMMAND_0100 INPUT.
      CASE SY-UCOMM.
        WHEN 'BACK'.
          LEAVE TO SCREEN 0.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Form  SET_DRDN_TABLE
    *       text
    FORM SET_DRDN_TABLE.
      DATA:LT_DRAL TYPE LVC_T_DRAL,
            LS_DRAL TYPE LVC_S_DRAL.
      LOOP AT ITAB .
    * First listbox (handle '1').
        IF SY-INDEX = 1.
          LS_DRAL-HANDLE = '1'.
          LS_DRAL-VALUE =  ' '.
          LS_DRAL-INT_VALUE =  ' '.
        ELSE.
          LS_DRAL-HANDLE = '1'.
          LS_DRAL-VALUE =  ITAB-POSNR.
          LS_DRAL-INT_VALUE =  ITAB-POSNR.
        ENDIF.
        APPEND LS_DRAL TO LT_DRAL.
      ENDLOOP.
    **Setting the Drop down table for Reason Code
      CALL METHOD G_GRID->SET_DROP_DOWN_TABLE
        EXPORTING
          IT_DROP_DOWN_ALIAS = LT_DRAL.
    ENDFORM.                               " set_drdn_table
    *&      Form  EVENT_TOP_OF_PAGE
    *       text
    *      -->DG_DYNDOC_ID  text
    FORM EVENT_TOP_OF_PAGE USING   DG_DYNDOC_ID TYPE REF TO CL_DD_DOCUMENT.
      "this is more clear.....check it
      "first add text, then pass it to comentry write fm
      DATA : DL_TEXT(255) TYPE C.  "Text
    * Populating header to top-of-page
      CALL METHOD DG_DYNDOC_ID->ADD_TEXT
        EXPORTING
          TEXT      = 'Test Report'
          SAP_STYLE = CL_DD_AREA=>HEADING.
    * Add new-line
      CALL METHOD DG_DYNDOC_ID->NEW_LINE.
      CLEAR : DL_TEXT.
    * Move program ID
      CONCATENATE 'Program Name :' SY-REPID
             INTO DL_TEXT SEPARATED BY SPACE.
    * Add Program Name to Document
      PERFORM ADD_TEXT USING DL_TEXT.
    * Add new-line
      CALL METHOD DG_DYNDOC_ID->NEW_LINE.
      CLEAR : DL_TEXT.
    * Move User ID
      CONCATENATE 'User ID :' SY-UNAME INTO DL_TEXT SEPARATED BY SPACE
    * Add User ID to Document
      PERFORM ADD_TEXT USING DL_TEXT.
    * Add new-line
      CALL METHOD DG_DYNDOC_ID->NEW_LINE.
      CLEAR : DL_TEXT.
    * Move count (no of records).
      move v_lines to v_line.
      CONCATENATE 'No of records :' v_line INTO DL_TEXT SEPARATED BY SPACE.
    * Add Client to Document
      PERFORM ADD_TEXT USING DL_TEXT.
    * Add new-line
      CALL METHOD DG_DYNDOC_ID->NEW_LINE.
      CLEAR : DL_TEXT.
    * Move date
      WRITE SY-DATUM TO DL_TEXT.
      CONCATENATE 'Date :' DL_TEXT INTO DL_TEXT SEPARATED BY SPACE.
    * Add Date to Document
      PERFORM ADD_TEXT USING DL_TEXT.
    * Add new-line
      CALL METHOD DG_DYNDOC_ID->NEW_LINE.
      CLEAR : DL_TEXT.
    * Move time
      WRITE SY-UZEIT TO DL_TEXT.
      CONCATENATE 'Time :' DL_TEXT INTO DL_TEXT SEPARATED BY SPACE.
    * Add Time to Document
      PERFORM ADD_TEXT USING DL_TEXT.
    * Add new-line
      CALL METHOD DG_DYNDOC_ID->NEW_LINE.
    * Populating data to html control
      PERFORM HTML.
    ENDFORM.                    " EVENT_TOP_OF_PAGE
    *&      Form  ADD_TEXT
    *       To add Text
    FORM ADD_TEXT USING P_TEXT TYPE SDYDO_TEXT_ELEMENT.
    * Adding text
      CALL METHOD DG_DYNDOC_ID->ADD_TEXT
        EXPORTING
          TEXT         = P_TEXT
          SAP_EMPHASIS = CL_DD_AREA=>HEADING.
    ENDFORM.                    " ADD_TEXT
    *&      Form  HTML
    *       text
    FORM HTML.
      DATA : DL_LENGTH  TYPE I,                           " Length
             DL_BACKGROUND_ID TYPE SDYDO_KEY VALUE SPACE. " Background_id
    * Creating html control
      IF DG_HTML_CNTRL IS INITIAL.
        CREATE OBJECT DG_HTML_CNTRL
             EXPORTING
                  PARENT    = DG_PARENT_HTML.
      ENDIF.
    * Reuse_alv_grid_commentary_set
      CALL FUNCTION 'REUSE_ALV_GRID_COMMENTARY_SET'
        EXPORTING
          DOCUMENT = DG_DYNDOC_ID
          BOTTOM   = SPACE
        IMPORTING
          LENGTH   = DL_LENGTH.
    * Get TOP->HTML_TABLE ready
      CALL METHOD DG_DYNDOC_ID->MERGE_DOCUMENT.
    * Set wallpaper
      CALL METHOD DG_DYNDOC_ID->SET_DOCUMENT_BACKGROUND
        EXPORTING
          PICTURE_ID = DL_BACKGROUND_ID.
    * Connect TOP document to HTML-Control
      DG_DYNDOC_ID->HTML_CONTROL = DG_HTML_CNTRL.
    * Display TOP document
      CALL METHOD DG_DYNDOC_ID->DISPLAY_DOCUMENT
        EXPORTING
          REUSE_CONTROL      = 'X'
          PARENT             = DG_PARENT_HTML
        EXCEPTIONS
          HTML_DISPLAY_ERROR = 1.
      IF SY-SUBRC NE 0.
        MESSAGE I999 WITH 'Error in displaying top-of-page'(036).
      ENDIF.
    ENDFORM.                    " HTML
    Regards
    vijay

  • Reg: CheckBox in ALV Grid Display

    Hi all,
    My requirement is to display checkbox field in ALV Grid which is editable.
    And i also need to get all the records that i have selected in ALV grid.
    How can i do it. Kindly Help me with sample codes.
    Its Urgent.
    <REMOVED BY MODERATOR>
    Regards
    Naveen
    Edited by: Alvaro Tejada Galindo on Feb 18, 2008 5:41 PM

    Hi,
    First declare ur itab with the first field of length 1 char,
    Dont mention dat in the field cat.
    Give that field name and itab name in the layout.
    as
      is_layout-box_fieldname = 'CHECK'.
      is_layout-box_tabname   = 'IT_FINAL'.
    u can dispaly ur checkbox in the output dispaly.
    now to read the selected checkboxes u need to read the display with the syntax..
    first describe the table + headre length = w_count.
    FORM sub_read_checkbox.
      DATA: w_cbox TYPE char1.
      REFRESH : it_mail,it_text,it_selected.                   
      REFRESH : it_selected.
      DO w_count TIMES.
        READ LINE sy-index FIELD VALUE  : is_final-cbox  INTO w_cbox.
        IF w_cbox = c_x.
          READ TABLE it_header INTO is_header WITH KEY lifnr = is_header-lifnr
                                                       u_r   = is_header-u_r.
          IF sy-subrc = 0.
            APPEND is_header TO it_selected .
            CLEAR: is_header,w_cbox.
          ENDIF.
        ENDIF.
      ENDDO.
    endform.
    This serves ur purpose.
    Regards............

  • Handling checkboxes in ALV Grid.

    Hi  guys.
    I have displayed an ALV grid with checkboxes. I want to opearate on the selected checkboxes by the user by clicking on a added button.
    I am using oops and using function set_table_for_first_display.
    if no box is selected the function works properly. If i select a checkbox, i get a dump.
    Thanks

    Hi arun
    here is the required code.
    <b>Form to register events</b>
    FORM register_events .
      CREATE OBJECT gr_event_handler .
      SET HANDLER gr_event_handler->handle_toolbar FOR gr_alvgrid .
      SET HANDLER gr_event_handler->handle_user_command FOR gr_alvgrid.
      SET HANDLER gr_event_handler->handle_hotspot_click FOR gr_alvgrid.
      SET HANDLER gr_event_handler->handle_double_click FOR gr_alvgrid.
    ENDFORM. 
    <b>Class Defination and implementation</b>
    CLASS LCL_EVENT_HANDLER DEFINITION.
        PUBLIC SECTION .
          METHODS:
    *To add new functional buttons to the ALV toolbar
          handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid
          IMPORTING e_object e_interactive,
    *To implement user commands.
          handle_user_command
          FOR EVENT user_command OF cl_gui_alv_grid
          IMPORTING e_ucomm,
       To handle hotspot click.
          handle_hotspot_click
          FOR EVENT hotspot_click OF cl_gui_alv_grid
          IMPORTING e_row_id e_column_id es_row_no,
         To handle Double Click
          handle_double_click
          FOR EVENT double_click OF cl_gui_alv_grid
          IMPORTING e_row e_column .
      ENDCLASS.                    "LCL_EVENT_HANDLER DEFINITION
    *&       Class (Implementation)  lcl_event_handler
           Text
      CLASS lcl_event_handler IMPLEMENTATION.
        METHOD handle_toolbar.
          PERFORM handle_toolbar USING e_object.
        ENDMETHOD .                    "handle_toolbar
        METHOD handle_user_command.
          perform handler_user_command using e_ucomm .
        ENDMETHOD.                    "handle_user_command
        METHOD handle_hotspot_click .
          PERFORM handle_hotspot_click USING e_row_id e_column_id es_row_no .
        ENDMETHOD .                    "handle_hotspot_click
        METHOD handle_double_click .
          PERFORM handle_double_click USING e_row e_column .
        ENDMETHOD .                    "handle_hotspot_click
      ENDCLASS.            "lcl_event_handler
    <b>
    PBO of screen that is called after the pushbutton is pressed.</b>
    MODULE STATUS_9400 OUTPUT.
      SET PF-STATUS 'SCREEN9400'.
      perform diaply_checkbox.
    <b>and the method display_checkbox.</b>
    FORM diaply_checkbox .
      data: count type i.
      count = 0.
      loop at za004_t_t into wa_a004_t_t.
        if wa_a004_t_t-checkboc = 'X'.
          count = count + 1.
        endif.
          count = count + 1.
      endloop.
    ENDFORM.                    " diaply_checkbox
    thanks
    Abhinav Dhasmana

  • Set cusor in alv grid

    Hello friends,
              How to set cusor in a particular cell of an alv grid.
    Thanks
    Suga prasad.N

    try this method of the grid SET_CURRENT_CELL_ID ,
    by passing ROW_ID and COL_ID in it .
    Or   SET_FOCUS methode to set cursor on a particular cell

  • Click checkbox on alv grid

    hi all,
    Is there any way to handle the single click/tick on checkbox. Is there user command on that? For now, if we will click on the checkbox, the changes made on it does not reflect. I checked on the debugging mode, checkbox is not populated/ marked even if it was ticked by the user.
    thanks in advance.

    Hi Akira,
    For Controling  Check Box , you have to use grid display using customised  Container screen.
    From there you can control check Box .
    CREATE OBJECT custom_container
         EXPORTING container_name = o_container.
      CREATE OBJECT o_grid
               EXPORTING i_parent = custom_container.
    Form for building the fieldcatalog
      PERFORM build_fieldcat CHANGING it_fieldcat.
    Form for excluding the unwanted functionalities from the toolbar.
      PERFORM exclude_tb_functions CHANGING it_exclude.
    Method for displaying the ALV grid.
      CALL METHOD o_grid->set_table_for_first_display
        EXPORTING
          is_layout            = it_layout
          it_toolbar_excluding = it_exclude
        CHANGING
          it_fieldcatalog      = it_fieldcat
          it_outtab            = it_final.
      CREATE OBJECT o_event_receiver.
    Setting the event handlers for events toolbar, usercommand and datachange.
      SET HANDLER o_event_receiver->catch_toolbar FOR o_grid.
      SET HANDLER o_event_receiver->catch_user_command FOR o_grid.
      SET HANDLER o_event_receiver->catch_datachange FOR o_grid.
    Set editable cells to ready for input.
      CALL METHOD o_grid->set_ready_for_input
        EXPORTING
          i_ready_for_input = 1.

  • To activate/deactivate checkbox in ALV grid report

    Hi All,
    I am trying to create an ALV Grid that contains check-box as column fields. I am able to either activate or deactivate all the check-boxes in the entire column. But, I need to keep only certain check-boxes for editing based on certain conditions. The other check-boxes in the column should be deactivated for editing by the user. Any help is appreciated.
    -Dinesh

    Hi dinesh babu ,
    In this example, i use 'REUSE_ALV_GRID_DISPLAY_LVC'
    FORM display_alv .
    DATA: ls_event_exit TYPE slis_event_exit,
          lt_event_exit TYPE slis_event_exit OCCURS 1.
    DESCRIBE TABLE itab_data LINES lv_cont.
    PERFORM layout_build   USING gs_layout.
    PERFORM eventtab_build USING gt_events[].
    PERFORM comment_build  USING gt_lheader[].
    CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
    i_structure_name            = 'ZHRESS_FORMACION_ALV'
    i_client_never_display   = 'X'
    i_bypassing_buffer         = 'X'
    CHANGING
    ct_fieldcat                      = gt_fieldcat[]
    EXCEPTIONS
    inconsistent_interface   = 1
    program_error               = 2
    OTHERS                         = 3.
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LOOP AT gt_fieldcat INTO ls_fcat.
    Active check field
      IF ls_fcat-fieldname EQ 'CHECK'.
         ls_fcat-checkbox     = 'X'.
         ls_fcat-edit             = 'X'.
         ls_fcat-fix_column  = 'X'.
         ls_fcat-reptext        = 'Check'.
      ENDIF.
      PERFORM field_attributes.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
         i_background_id                   = 'ALV_BACKGROUND'
    i_callback_program             = g_repid
    i_callback_pf_status_set      = 'PF_STATUS'
    i_callback_user_command  = 'USER_COMMAND'
    is_layout_lvc                       = gs_layout
    it_fieldcat_lvc                     = gt_fieldcat[]
    i_save                                 = g_save
    is_variant                            = g_variant
    it_events                             = gt_events[]
    it_event_exit                       = lt_event_exit
    i_default                             = 'X'
    TABLES
    t_outtab                              = itab_data.
    ENDFORM.                    " DISPLAY_ALV
    FORM field_attributes .
      DATA ls_stylerow TYPE lvc_s_styl .
      DATA lt_styletab TYPE lvc_t_styl .
      LOOP AT itab_data INTO wa_data.
        IF wa_data-status NE c_status_p.         " Condition for enable / disable check
          ls_stylerow-fieldname = 'CHECK' .
          ls_stylerow-style = cl_gui_alv_grid=>mc_style_disabled.  "set field to disabled
          APPEND ls_stylerow TO wa_data-field_style.
          MODIFY itab_data FROM wa_data.
        ENDIF.
      ENDLOOP.
    ENDFORM.   
    Regards,
    José
    Edited by: Jose Luzardo on Oct 6, 2009 3:37 PM

Maybe you are looking for

  • More Than One Website and More Than One Column

    Hi. I have two questions. 1. I have two websites on my iWeb - one for me and one for a company I'm making a website for. I only want to upload the one for me onto my .Mac account, but I don't want to delete the other site. How do I get only one site

  • Message Schema changes on receiver side..Need Help!!

    Hi All, The scenario is ECC --> PI --> MDM. The message payload schema that is seen in the Message Monitoring (Adapter Engine) in RWB is different from the message that reaches MDM side. Also, specifically the Message header is lost in the schema on

  • How to make Functional area to be mandotory in KS01

    Hi all, My requirement is to make the Functional area field in Transaction KS01,KS02, KS03 to be mandotory. are there any SPRO settings for that...? Or Is there any Exit ? Thanks in advance. Regards, Amruta

  • OBIEE Data Level Security - Prompt While logging into the OBI Portal

    All, Below is what we are trying to see if it’s possible We have a BM say 'Sales and Profits' . This is a simple model built around 1 fact and 5 dimensions. The underlying tables contain data from 5 different geographic segments US-NE, US-SW,US-NW,US

  • Saving MP3 files in a different format

    I currently have an extensive MP3 library already tagged and named to avoid doubles. I wish to import this library into Itunes but had noticed with a test import of a few hundred it is renaming them. Is there any way to change Itunes so that when it