Append, Insert controlling in ALV

Hello,
Currently I have to manually select the new line to that is appended or inserted. I want that when use press Append or Insert button in ALV it should pass the control and the new line to become the lead select row. My requirement is that when user make changes in the default fields and press append or insert, these default values should be replaced in the Item Detail section for that particular new row. I am able to capture the event when user press Append or Insert.
Shall appreciate soonest response.
Thks & Rgds,
Hemal
Edited by: Hemal Gandhi on May 12, 2010 4:45 PM

it sounds like you want to used the Append/Insert functionality to just validate your inputs and re-wrote the whole row with the new changes; you don't really want to add a new row?
if I understand correct I think you will need to create your own custom APPEND/INSERT BUTTON to disable standard functionality of Adding a new row to the ALV and run ON_DATA_CHECK to modify current entries behind your custom button.
I will hide the APPEND/INSERT standard button and add a custom button at the same position with the same text calling ON_DATA_CHECK and binding new values to the row that has been change.
Maybe someone else has a better approach but that's what I will do, and I know it works!
thanks!
Jason PV

Similar Messages

  • How to remove the the standard button APPEND/INSERT/DELETE in webdynpro alv

    Hello,
    how to remove the the standard button APPEND/INSERT/DELETE in webdynpro-abap  alv
    Thanks
    Rakshar

    Use  this.
        data lo_cmp_usage type ref to if_wd_component_usage.
        lo_cmp_usage =   wd_this->wd_cpuse_alv1( ).
        if lo_cmp_usage->has_active_component( ) is initial.
          lo_cmp_usage->create_component( ).
        endif.
        data lo_interfacecontroller type ref to iwci_salv_wd_table .
        lo_interfacecontroller =   wd_this->wd_cpifc_alv1( ).
        data lo_value type ref to cl_salv_wd_config_table.
        lo_value = lo_interfacecontroller->get_model(
        data: lr_std type ref to if_salv_wd_std_functions.
        lr_std ?= lo_value.
        lr_std->set_export_allowed( abap_false ).
    NOte: ALV1 is alv component name
    Regards
    Srinivas
    Edited by: sanasrinivas on Dec 1, 2011 6:11 AM

  • Remove standard button in ALV LIKE APPEND/INSERT/DELETE

    Hi Expert,
    I have a requirement in which we do not need APPEND/INSERT/DELETE button in ALV,Can you please tell how i can remove that.
    Pleaae suggest.
    Thanks
    Mahesh

    Check this
        data lo_cmp_usage type ref to if_wd_component_usage.
        lo_cmp_usage =   wd_this->wd_cpuse_alv1( ). " alv1 is my used alv component
        if lo_cmp_usage->has_active_component( ) is initial.
          lo_cmp_usage->create_component( ).
        endif.
        data lo_interfacecontroller type ref to iwci_salv_wd_table .
        lo_interfacecontroller =   wd_this->wd_cpifc_alv1( ).
        data lo_value type ref to cl_salv_wd_config_table.
        lo_value = lo_interfacecontroller->get_model(    ).
    data: lr_std type ref to if_salv_wd_std_functions.
        lr_std ?= lo_value.
    lr_std->SET_EDIT_APPEND_ROW_ALLOWED( abap_false ).
    lr_std->SET_EDIT_DELETE_ROW_ALLOWED( abap_false ).
    lr_std->SET_EDIT_INSERT_ROW_ALLOWED( abap_false ).
    Regards
    Srinivas

  • Append/Insert(not Single)  Mutliple rows on ALV Webdynpro

    Hello Friends,
    We all know that the std button Append/Insert , can insert only one row on a single click.
    My specific requirement is :
    1)  that when User clicks on this button(single click), we need to see  'n' rows( n will  be provided as a input box for th user to provide like 5,10,12 etc) appended/inserted at the end of the ALV list .
    2) In all the new rows, some of the columns should be defaulted to some data.
    Is there any approach to achieve this requirement?
    Regards
    Vinay.

    Hello Kiran,
    As i mentioned earlier, I already implemented the above said approach. Its working..
    But just wanted to check if there is any facility as these new rows will not be captured centrally in the
    r_param->t_inserted_rows (in data check event). So that i can move on with other processing .
    FYI...  there is a method in the class CL_SALV_WD_CONFIG_TABLE - IF_SALV_WD_STD_FUNCTIONS~SET_EDIT_APPEND_ROWS_ALLOWED( which is obsolete now).
    I dont know why this facility is not provided.
    May be we need to check this faciltiy as well with Thomas Jung to re-add this in future.
    Anyways..i continue with my approach...
    Regards
    Vinay.

  • Hotspot-clicking (Insert function) plus ALV Sorting

    Hi,
    I have a requirement where the ALV display has to be SORTED based on values entered/changed on a certain column. The sort works ok when used with a custom APPEND button for new records (always inserted at the bottom of the list).
    However, it does not work correctly when used with the Hotspot-click (INSERT functionality). It looks like if you CLICK on a particular record onscreen, you are actually addressing the original record in that position before the SORT was effected. 
    Is the Hotspot-clicking (Insert functionality) possible with ALV sorting? The ideal solution would be to have the ALV sorted at PBO and also at PAI so that the user can change existing records and add new ones with the sorting being updated everytime ON_DATA_CHANGED is triggered.
    Will appreciate any help on this.
    Thanks!
    Michael

    Hello Michael
    Thanks for further specifying your requirements. I have created the sample variant ZUS_SDN_ALVGRID_HOTSPOT_SORT_1 which contains two differences as compared to its template:
    Replace table VBAK with VBAP (so we have two levels of sorting: VBELN, POSNR)
    Move SET_TABLE_FOR_FIRST_DISPLAY method call into PBO
    When I click on the hotspot (VBELN) a new row entry for the order number is created. The sorting (VBELN, POSNR) is kept even though the new row has been appended to the itab.
    *& Report  ZUS_SDN_ALVGRID_HOTSPOT_SORT
    *& Thread: Hotspot-clicking (Insert function) plus ALV Sorting
    *& <a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="1159431"></a>
    REPORT  zus_sdn_alvgrid_hotspot_sort.
    TYPES: BEGIN OF ty_s_outtab.
    INCLUDE TYPE vbap.
    TYPES: END OF ty_s_outtab.
    TYPES: ty_t_outtab    TYPE STANDARD TABLE OF ty_s_outtab
                          WITH DEFAULT KEY.
    DATA: gt_outtab    TYPE ty_t_outtab.
    DATA:
      gd_okcode        TYPE ui_func,
      gd_repid         TYPE syrepid,
      gt_sort          TYPE lvc_t_sort,
      gt_fcat          TYPE lvc_t_fcat,
      gs_layout        TYPE lvc_s_layo,
      gs_variant       TYPE disvariant,
      go_docking       TYPE REF TO cl_gui_docking_container,
      go_grid          TYPE REF TO cl_gui_alv_grid.
    *       CLASS lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler DEFINITION.
      PUBLIC SECTION.
        CLASS-DATA:
          ms_sel_row    TYPE lvc_s_row. " selected row
        CLASS-METHODS:
          handle_data_changed FOR EVENT data_changed OF cl_gui_alv_grid
            IMPORTING
              er_data_changed
              e_onf4
              e_onf4_before
              e_onf4_after
              sender,
          handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
            IMPORTING
              e_row_id
              e_column_id
              es_row_no
              sender.
    ENDCLASS.                    "lcl_eventhandler DEFINITION
    *       CLASS lcl_eventhandler IMPLEMENTATION
    CLASS lcl_eventhandler IMPLEMENTATION.
      METHOD handle_data_changed.
        FIELD-SYMBOLS: <lt_outtab>  TYPE ty_t_outtab.
        BREAK-POINT.
      ENDMETHOD.                    "handle_data_changed
      METHOD handle_hotspot_click.
        " define local data
        DATA: ls_outtab    TYPE ty_s_outtab,
              ld_msg        TYPE bapi_msg.
        BREAK-POINT.
        CLEAR: lcl_eventhandler=>ms_sel_row.
        ms_sel_row = e_row_id.
        READ TABLE gt_outtab INTO ls_outtab INDEX e_row_id-index.
        CONCATENATE 'Selected Sales Order = ' ls_outtab-vbeln ' / '
                                              ls_outtab-posnr
          INTO ld_msg.
          message i398(00) with ld_msg.
        " Trigger PAI
        CALL METHOD cl_gui_cfw=>set_new_ok_code
          EXPORTING
            new_code = 'INSERT'
    *      IMPORTING
    *        rc       =
      ENDMETHOD.                    "handle_hotspot_click
    ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION
    PARAMETERS:
      p_vkorg      TYPE vkorg  DEFAULT '0001'  OBLIGATORY.
    START-OF-SELECTION.
    **  SELECT  * FROM  vbak INTO CORRESPONDING FIELDS OF TABLE gt_outtab
    **    UP TO 200 ROWS
    **         WHERE  vkorg = p_vkorg.
      SELECT * FROM vbap INTO CORRESPONDING FIELDS OF TABLE gt_outtab
        UP TO 100 ROWS.
      PERFORM init_controls.
    * Build fieldcatalog and set hotspot for field KUNNR
      PERFORM build_fieldcatalog.
      PERFORM set_layout_and_variant.
      PERFORM set_sorting.
      " Register EDIT event
      CALL METHOD go_grid->register_edit_event
        EXPORTING
          i_event_id = cl_gui_alv_grid=>mc_evt_enter
        EXCEPTIONS
          error      = 1
          OTHERS     = 2.
      IF sy-subrc NE 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      SET HANDLER:
        lcl_eventhandler=>handle_data_changed  FOR go_grid,
        lcl_eventhandler=>handle_hotspot_click FOR go_grid.
    * Link the docking container to the target dynpro
      gd_repid = syst-repid.
      CALL METHOD go_docking->link
        EXPORTING
          repid                       = gd_repid
          dynnr                       = '0100'
    *      CONTAINER                   =
        EXCEPTIONS
          OTHERS                      = 4.
      IF sy-subrc NE 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * ok-code field = GD_OKCODE
      CALL SCREEN '0100'.
    END-OF-SELECTION.
    *&      Module  STATUS_0100  OUTPUT
    *       text
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'STATUS_0100'.
    *  SET TITLEBAR 'xxx'.
    * Display data
      CALL METHOD go_grid->set_table_for_first_display
        EXPORTING
          i_bypassing_buffer            = abap_true
          is_variant                    = gs_variant
          i_save                        = 'A'
    *      i_default                     = 'X'
          is_layout                     = gs_layout
    *      is_print                      =
    *      it_special_groups             =
    *      it_toolbar_excluding          =
    *      it_hyperlink                  =
    *      it_alv_graphics               =
    *      it_except_qinfo               =
    *      ir_salv_adapter               =
        CHANGING
          it_outtab                     = gt_outtab
          it_fieldcatalog               = gt_fcat
          it_sort                       = gt_sort
    *      it_filter                     =
        EXCEPTIONS
          invalid_parameter_combination = 1
          program_error                 = 2
          too_many_lines                = 3
          OTHERS                        = 4.
      IF sy-subrc NE 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    **  CALL METHOD go_grid->refresh_table_display
    ***        EXPORTING
    ***          IS_STABLE      =
    ***          I_SOFT_REFRESH =
    **    EXCEPTIONS
    **      finished       = 1
    **      OTHERS         = 2.
    **  IF sy-subrc ne 0.
    ***       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    ***                  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    **  ENDIF.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
    *       text
    MODULE user_command_0100 INPUT.
      CASE gd_okcode.
        WHEN 'BACK' OR
             'EXIT'  OR
             'CANC'.
          SET SCREEN 0. LEAVE SCREEN.
        WHEN 'INSERT'.
          PERFORM insert_row.
        WHEN OTHERS.
          " Check for changed data at the frontend (= grid control)
          CALL METHOD go_grid->check_changed_data( ).
      ENDCASE.
      CALL METHOD go_grid->refresh_table_display
    *    EXPORTING
    *      IS_STABLE      =
    *      I_SOFT_REFRESH =
        EXCEPTIONS
          finished       = 1
          OTHERS         = 2.
      IF sy-subrc NE 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CLEAR: gd_okcode.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Form  INIT_CONTROLS
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM init_controls .
    * Create docking container
      CREATE OBJECT go_docking
        EXPORTING
          parent = cl_gui_container=>screen0
          ratio  = 90
        EXCEPTIONS
          others = 6.
      IF sy-subrc NE 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CALL METHOD go_docking->set_extension
        EXPORTING
          extension  = 99999
        EXCEPTIONS
          cntl_error = 1
          OTHERS     = 2.
      IF sy-subrc NE 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    * Create ALV grid
      CREATE OBJECT go_grid
        EXPORTING
          i_parent = go_docking
        EXCEPTIONS
          others   = 5.
      IF sy-subrc NE 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " INIT_CONTROLS
    *&      Form  BUILD_FIELDCATALOG
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM build_fieldcatalog.
    * define local data
      DATA:
        ls_fcat        TYPE lvc_s_fcat.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
    *     I_BUFFER_ACTIVE              =
          i_structure_name             = 'VBAP'  " 'VBAK'
    *     I_CLIENT_NEVER_DISPLAY       = 'X'
    *     I_BYPASSING_BUFFER           =
    *     I_INTERNAL_TABNAME           =
        CHANGING
          ct_fieldcat                  = gt_fcat
        EXCEPTIONS
          inconsistent_interface       = 1
          program_error                = 2
          OTHERS                       = 3.
      IF sy-subrc NE 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    **  LOOP AT gt_fcat INTO ls_fcat.
    **    CASE ls_fcat-fieldname.
    **      WHEN 'VBELN'  OR
    **           'ERDAT'  OR
    **           'ERZET'  OR
    **           'ERNAM'  OR
    **           'AUART'  OR
    **           'NETWR'  OR
    **           'WAERK'.
    **        CONTINUE.
    **      WHEN OTHERS.
    **        ls_fcat-no_out = abap_true.
    **    ENDCASE.
    **    MODIFY gt_fcat FROM ls_fcat INDEX syst-tabix.
    **  ENDLOOP.
    * Only non-key fields are editable
    **  ls_fcat-edit = 'X'.
    **  MODIFY gt_fcat FROM ls_fcat
    **    TRANSPORTING edit
    **    WHERE ( fieldname NE space ).
      ls_fcat-hotspot = abap_true.
      MODIFY gt_fcat FROM ls_fcat
        TRANSPORTING hotspot
        WHERE ( fieldname = 'AUART'   OR
                fieldname = 'VBELN' ).
    **  DELETE gt_fcat FROM 15 TO 99.
    ENDFORM.                    " BUILD_FIELDCATALOG_KNB1
    *&      Form  SET_LAYOUT_AND_VARIANT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM set_layout_and_variant .
      CLEAR: gs_layout,
             gs_variant.
      gs_layout-cwidth_opt = abap_true.
      gs_variant-report = syst-repid.
      gs_variant-handle = 'GRID'.
    ENDFORM.                    " SET_LAYOUT_AND_VARIANT
    *&      Form  SET_SORTING
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM set_sorting .
    * define local data
      DATA: ls_sort   TYPE lvc_s_sort.
      REFRESH: gt_sort.
      CLEAR: ls_sort.
      ls_sort-spos = 1.
      ls_sort-fieldname = 'VBELN'.
      ls_sort-up = abap_true.
      APPEND ls_sort TO gt_sort.
      CLEAR: ls_sort.
      ls_sort-spos = 1.
      ls_sort-fieldname = 'POSNR'.
      ls_sort-up = abap_true.
      APPEND ls_sort TO gt_sort.
    ENDFORM.                    " SET_SORTING
    *&      Form  INSERT_ROW
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM insert_row .
    * define local data
      DATA: ls_outtab   TYPE ty_s_outtab,
            ld_order    TYPE vbeln.
      READ TABLE gt_outtab INTO ls_outtab
                           INDEX lcl_eventhandler=>ms_sel_row-index.
      ld_order = ls_outtab-vbeln.
      " Find last item of sales order
      LOOP AT gt_outtab INTO ls_outtab
                        WHERE ( vbeln = ld_order ).
      ENDLOOP.
      " Create next item:
      add 10 to ls_outtab-posnr.
      " NOTE: added at the end of the list
      APPEND ls_outtab TO gt_outtab.
      " NOTE: insert new row AFTER selected row => works, too
    **  INSERT ls_outtab INTO gt_outtab
    **                   INDEX lcl_eventhandler=>ms_sel_row-index.
    ENDFORM.                    " INSERT_ROW

  • Insert logo in alv

    hello experts....
    In alv reports how i insert logo into alv grid ?tell me procedure, in the same report how insert background logo?

    Hi,
    At first you have to upload the logo in the application server using transaction 'OAER'.
       1. Go to Transaction OAER,
       2. Give Class Name as PICTURES
       3. Class type as OT
       4. Object Key as the name of the Object u want to specify
       5. Upon execution you would be prompted to give the file path details. Just upload which ever logo u want to display
       6. Now you can use the same name in your ALV FM
    In your ALV program, you need to have event for TOP_OF_PAGE, and also this works only in case of Grid not in ALV LIST.
    Look at the sample code to display LOGO.
    call function 'REUSE_ALV_GRID_DISPLAY'
    exporting
      i_callback_program = i_repid
      it_fieldcat = header
      is_layout = gt_layout
      i_callback_top_of_page = 'TOP-OF-PAGE1'
      i_grid_title = xyz
      it_sort = gt_sort[]
      i_default = 'X'
      i_save = 'U'
      is_variant = gt_variant
      it_events = gt_events
    tables
      t_outtab = t_output.
    Form TOP-OF-PAGE1
    form top-of-page1.
    data: header type slis_t_listheader,
          wa     type slis_listheader.
    TITLE AREA
    wa-typ = 'S'.
    wa-info = text-h04.
    append wa to header.
    wa-typ = 'S'.
    write sy-datum to wa-info mm/dd/yyyy.
    concatenate text-h03 wa-info into wa-info separated by space.
    append wa to header.
    wa-typ = 'S'.
    concatenate text-h02 sy-uname into wa-info separated by space.
    append wa to header.
    wa-typ = 'S'.
    concatenate text-h01 sy-repid into wa-info separated by space.
    append wa to header.
    ********" LOGO
    call function 'REUSE_ALV_COMMENTARY_WRITE'
    exporting
    it_list_commentary = header
    i_logo = 'ENJOYSAP_LOGO'.
    *********" LOGO
    endform.
    Here in TOP-OF-PAGE form it will show you the Prog name,Date, User Name.

  • INSERTING LOGO IN ALV GRID

    hi experts,
    how can i insert logo in alv grid..can u send me some examples of alv that includes all the functionalities like user-command,commentary write n also logo insertion etc..
    regards,
    raman

    hi ,
        chk out this .....and  try this ..
    for getting the events ....
    FORM ZVRPSALV_EVENT_CAT  CHANGING RT_EVENT TYPE slis_t_event .
        DATA : s_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type     = 0
        IMPORTING
          et_events       = RT_EVENT
       EXCEPTIONS
         list_type_wrong = 1
         OTHERS          = 2.
    CASE sy-subrc.
       WHEN 1.
         MESSAGE s000 WITH 'List type does not exist'(058).
         LEAVE LIST-PROCESSING.
       WHEN 2.
         MESSAGE s000 WITH 'Error with List Type'(059).
         LEAVE LIST-PROCESSING.
    ENDCASE.
      READ TABLE RT_EVENT WITH KEY NAME = slis_ev_top_of_page INTO s_event .
      IF sy-subrc = 0.
        MOVE 'TOP_OF_PAGE'(056) TO s_event-form.
        APPEND s_event TO rt_event.
        CLEAR s_event.
      ENDIF.
    ENDFORM.                    " EVENT_CAT
    *&      Form  ZVRPSALV_GRIDDISPLAY1
          text
    -->  p1        text
    <--  p2        text
    FORM ZVRPSALV_GRIDDISPLAY1 .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = REPID
      I_CALLBACK_PF_STATUS_SET          = ' '
       I_CALLBACK_USER_COMMAND           = 'DISPLAY_DOCUMENT '
       I_CALLBACK_TOP_OF_PAGE            = ' TOP-OF-PAGE '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
       I_GRID_TITLE                      = 'BASIC LIST'
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         =
       IT_FIELDCAT                       = T_FCAT
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
      IT_EVENTS                         = RT_EVENT
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      I_HTML_HEIGHT_TOP                 = 0
      I_HTML_HEIGHT_END                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      IR_SALV_FULLSCREEN_ADAPTER        =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
      TABLES
        T_OUTTAB                          = T_ITAB
    EXCEPTIONS
      PROGRAM_ERROR                     = 1
      OTHERS                            = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM.                    " ZVRPSALV_GRIDDISPLAY1
    SUBROTINE FOR DISPLAYING THE SECONDRY ALV GRID.
    FORM DISPLAY_DOCUMENT USING R_UCOMM  LIKE SY-UCOMM
                                RS_SELFIELD TYPE SLIS_SELFIELD.
    IF RS_SELFIELD-FIELDNAME = 'VBELN'.
      READ TABLE T_ITAB INDEX  RS_SELFIELD-TABINDEX .
    V_VBELN = T_ITAB-VBELN.
    LOOP AT T_ITAB WHERE VBELN = V_VBELN.
       Move: T_ITAB-POSNR to T_ITAB1-POSNR  ,
             T_ITAB-MATNR to T_ITAB1-MATNR ,
             T_ITAB-MATKL to T_ITAB1-MATKL,
             T_ITAB-ARKTX to T_ITAB1-ARKTX  ,
             T_ITAB-PSTYV to T_ITAB1-PSTYV  ,
             T_ITAB-SPART to T_ITAB1-SPART ,
             T_ITAB-GSBER to T_ITAB1-GSBER ,
             T_ITAB-KWMENG to T_ITAB1-KWMENG .
       Append T_ITAB1.
    ENDLOOP.
       ENDIF.
    *&      Form  ZVRPSALV_COMMENT
          text
         -->P_T_HEADER  text
    FORM ZVRPSALV_COMMENT  USING  P_T_HEADER type slis_t_listheader .
    DATA : LS_LINE TYPE SLIS_LISTHEADER.
    CLEAR LS_LINE .
    LS_LINE-TYP = 'H'.
    LS_LINE-INFO =  'HEADING LIST'.
    APPEND LS_LINE TO P_T_HEADER.
      CLEAR LS_LINE.
      LS_LINE-typ = 'S'.
      write sy-datum to LS_LINE-info MM/DD/YYYY.
      CONCATENATE text-041 LS_LINE-info INTO LS_LINE-info separated by space .
      APPEND LS_LINE TO P_T_HEADER.
    ENDFORM.                    " ZVRPSALV_COMMENT
    SUBROUINE FOR TOP OF PAGE.
    FORM TOP_OF_PAGE.
    clear t_header.
    DATA: LV_HEADER TYPE SLIS_LISTHEADER.
      LV_HEADER-TYP = 'S'.
      WRITE SY-DATUM TO LV_HEADER-INFO MM/DD/YYYY.
      CONCATENATE TEXT-041 LV_HEADER-INFO INTO LV_HEADER-INFO SEPARATED BY SPACE.
      APPEND LV_HEADER TO T_HEADER.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
         IT_LIST_COMMENTARY       = T_HEADER
        I_LOGO                   = ' ENJOYSAP_LOGO '
       I_END_OF_LIST_GRID       =
       I_ALV_FORM               =
    ENDFORM.
    *&      Form  ZVRPSALV_EVENTTAB
          text
         <--P_T_EVENT  text
    FORM ZVRPSALV_EVENTTAB  CHANGING P_T_EVENT TYPE SLIS_T_EVENT.
      DATA : LS_EVENT TYPE SLIS_ALV_EVENT.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         I_LIST_TYPE           = 0
       IMPORTING
         ET_EVENTS             = P_T_EVENT.
    SEARCH THE TOP OF PAGE EVENT.
      READ TABLE P_T_EVENT WITH KEY NAME = SLIS_EV_TOP_OF_PAGE INTO LS_EVENT .
      IF SY-SUBRC = 0 .
      MOVE 'TOP_OF_PAGE' TO LS_EVENT-FORM.
      APPEND LS_EVENT TO P_T_EVENT.
      ENDIF.
    ENDFORM.                    " ZVRPSALV_EVENTTAB
    thanks and regards
    Priyank Dixit

  • Insert LOGO in ALV Table Cell

    Hi Gurus,
    How to insert logo in ALV Cell Level.
    thanks in advance.
    regards,
    kiran.ch

    Hi,
    I saw a sample code in Wiki:
    https://www.sdn.sap.com/irj/scn/wiki?path=/display/snippets/inserting%2520a%2520logo%2520in%2520alv%2520program
    Edited by: Renjith Michael on Jun 26, 2009 1:12 PM
    Edited by: Renjith Michael on Jun 26, 2009 1:12 PM

  • How to append leading spaces in ALV Output

    Hello Experts,
    Is it possible to append leading spaces in ALV Output? We want to have a functionality that will show the output like a hierarchy in a column.
    Thanks a lot for your help.
    Example:
    WBSElement
    WBSELEL01VL2
        WBSELEL01VL3A
             WBSELEL01VL4X
                 WBSELEL01VL5W
                 WBSELEL01VL5Z
             WBSELEL01VL4Y
                 WBSELEL01V5P
                 WBSELEL01V5Q
        WBSELEL01VL3B
             WBSELEL01VL4L
                 WBSELEL01VL5H
                 WBSELEL01VL5T
             WBSELEL01VL4M
                 WBSELEL01V5C
                 WBSELEL01V5D
    Edited by: sam jose on Dec 1, 2009 4:01 PM

    Thanks, Nilesh.
    Sorry for the delayed response. I have modified the ITAB with that logic and I see the indentation now (in Debug Mode of T_PLAN). 
    However, when I display the ALV output though, it disappears.
    I am using the following method.
    data: plan_control   type scrfname value 'TOOL',
          plan_container type ref to cl_gui_custom_container,
          plan_grid      type ref to cl_gui_alv_grid,
          plan_fieldcat  type lvc_t_fcat,
          plan_layout    type lvc_s_layo.
      if plan_container is initial.
        perform plan_fieldcat_init using plan_fieldcat[].
        create object plan_container
          exporting
            container_name = plan_control.
        create object plan_grid
          exporting
            i_parent = plan_container.
        plan_layout-cwidth_opt  = 'X'.
        plan_layout-zebra       = 'X'.
        call method plan_grid->set_table_for_first_display
          exporting
            is_layout                     = plan_layout
          changing
            it_outtab                     = T_PLAN[]
            it_fieldcatalog               = plan_fieldcat
          exceptions
            invalid_parameter_combination = 1
            program_error                 = 2
            too_many_lines                = 3
            others                        = 4.
      endif.
    Can anybody please let me know if I am missing anything?
    Thanks again.
    Edited by: sam jose on Dec 8, 2009 8:44 PM

  • Append Multiple Control Images as a 2-D array/tabl​e ?

    All
    I am trying to generate a report and I wish to have the following pattern:
    Image      Blank      Image
    Blank      Image      Blank
    Image      Blank      Image
    Where I intend to place my control images at "Image" and no image at "Blank"
    I thought I can build a table of control images and append but it accepts only string/numeric tables.
    Is there a easier way to include images into WORD report, equivalent to: me inserting a 3x3 table in a word document, and pasting images in 1st row 1st column, 1st row 3rd colum, 2nd row 2nd colum, 3rd row 1st column, 3rd row 3rd column.
    Please let me know, thanks
    Kudos always welcome for helpful posts

    That example was cool. I wish to add images to table using control reference.
    I tried using the control reference to get image, save as a png and then use it to add images. Is there a way that I can use the control reference to add images to my table directly ?
    Kudos always welcome for helpful posts

  • Inserting row in ALV

    hi  experts ..
    I want to add a row in the alv when i click on add button..
    I know there is insert row and append row buttons available in alv but i dont want those names ..
    Can i change the name of standard buttons or is there sm class that i can use to develop this functionality.
    jagruti.

    Hi Jagruti,
    You just have to add a new button with whatever name you want, and map it to the existing functionality in ALV. It will work and you dont need to do anything else.
    The code will be:
    data:
    lr_button type ref to cl_salv_wd_fe_button,
    lr_function type ref to cl_salv_wd_function.
    CREATE OBJECT lr_button.
    lr_button->set_text( 'Your text' ).
    lr_button->set_tooltip( 'Your tooltip' ).
    lr_function = l_alv_model->if_salv_wd_function_settings~create_function( id = 'INSERT' ).
    <b>lr_function->set_function_std( IF_SALV_WD_C_STD_FUNCTIONS=>EDIT_APPEND_ROW ).</b>
    lr_function->set_editor( lr_button ).
    The method set_function_std sets your funcion to take the behaviour of the standard ALV function for inserting rows. So it would work automatically. You have only changed the text.
    <b>If your problem is solved, please award points and close the threads. Couple of your previous threads are still open, please close them</b>
    Regards,
    Nithya

  • Insert rows in ALV

    Hi,
    Want to insert rows in editable cell of ALV grid display without using classes and methods.
    Thanks in advance

    you need to have a button to append the Rows. it can be possible with the PF_STATUS event. and handling will be done using the User_command.
    FORM PF_STATUS using extab type slis_t_extab.
    set pf-status 'STANDARD' excluding extab.
    ENDFORM.
    FORM USER_COMMAND  using r_cuomm type sy-ucomm
       selfield type slis_selfield.
    case r_ucomm.
    when 'APPEND'.
      APPEND EMPTY LINE HERE to internal table
    endcase.
    selefield-refresh = 'X'.
    ENDFORM.

  • How to display Insert button in ALV Grid

    Hi All,
    When I create an ALV Grid, I dont see the Insert Row and Delete Row buttons in the toolbars by default. But when I see the class CL_GUI_ALV_GRID, I see two attributes named MC_FC_LOC_INSERT_ROW and MC_FC_LOC_DELETE_ROW. These attributes, I feel are for the insert and delete functionalities only.
    Then How can we display them in our toolbar..
    Please help me out.
    Points are guaranteed for useful answers.
    Thanks in advance.
    Regards,
    Himanshu

    hi,
    1) define local CLASS :  DEFINITION.
       METHODS:
    *for event  double click
        handle_dclick for event double_click OF cl_gui_alv_grid
                importing ES_ROW_NO,
        handle_toolbar
            FOR EVENT toolbar OF cl_gui_alv_grid
               IMPORTING e_object e_interactive.
      PRIVATE SECTION.
    ENDCLASS.
    2)
    implmentation:
      METHOD handle_toolbar.
    * § 2.In event handler method for event TOOLBAR: Append own functions
    *   by using event parameter E_OBJECT.
    *   DATA: ls_toolbar  TYPE stb_button.
    * append a separator to normal toolbar
        CLEAR ls_toolbar.
        ls_toolbar-butn_type = 0.
        ls_toolbar-function  = 'PICK'.
        ls_toolbar-icon = ICON_MASTER_DATA_ACT.
        ls_toolbar-quickinfo = 'Debitor anzeigen'.
        ls_toolbar-disabled = space.
        APPEND ls_toolbar TO e_object->mt_toolbar.
      endmethod.
    3) after creating grid
        CREATE OBJECT event_receiver.
        SET HANDLER event_receiver->handle_dclick FOR grid.
        SET HANDLER event_receiver->handle_toolbar FOR grid.
    A.

  • Appending Rows To Editable ALV Grid

    Hi,
    I have a requirement to allow users to append rows to ALV grid in order to insert new data.  The standard append button works to add the row on the front end, however, when I go to process the row through the DATA_CHANGED event of the CL_GUI_ALV_GRID class the program errors out with a GETWA_NOT_ASSIGNED error. 
    Any help or examples of programs utilizing the Append button would be much appreciated.
    Thanks,
    Brian S

    Hi,
    check this demo program <b> BCALV_EDIT_04</b>
    regards
    Vijay

  • How to trap Append row fcode from ALV toolbar in OOPS approache

    Hi
    1. I would like trap the function code for ALV toolbar button like APPEND row and Delete row etc. Please let the procedure for that or may be if somebody can tell me that how do what logic is being  followed while appending a line to the grid using "Insert Row" in BCALV_TEST_GRID_EDITABLE program.
    2. My is editable ALV grid, if i pressing the delete button from the keyboard then it is deleting the from the ALV.I would like to prevent from not deleting the rows.
    Thanks
    Suruchi

    how did you resolve it?
    thank in advance.

Maybe you are looking for

  • How to change a DIVISION in Sales Order which is already saved?

    Hi, I want to change only the division in Sales Order which is already created and saved. Which means I already created sales order with sales area GB50/02/12 and now I want to change that division to 14. Please note that it has no reference docs and

  • How to consider advance in APP

    Gurus, I have paid an advance through Down payment F-47 & F-48 i.e USD 5000.  Afterwards i have booked an invoice through FB60 i.e USD 7000.  Now i want to run APP.  Is it consider the advance, and paid the balance of USD 2000. How

  • QT Movie is 1 minute - Motion thinks it's 12 seconds

    I created a 1 minute QT movie with Motion. I'm importing it into Motion now and Motion thinks it's 12 seconds long. It only plays 12 seconds of it in the timeline. The file manager's info in Motion says 12 seconds. Open it up in QT Pro and QT Pro say

  • Csutil.exe error in ACS 4.1 for Windows

    Hi, When I try to list VSAs created on the ACS by running csutil.exe -listUDV at the cmd prompt I get the error "can not initialize schemelayer". What could be the problem?

  • Continuous updating date and time

    trying to login to appletv but screen stay on Updating Date and Time.  I have confirmed WiFi is connected and have reset per instruction.