REUSE_ALV_FIELDCATALOG_MERGE Modificar disposicion

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • mendocar
    Senior Member
    • ago
    • 226

    #1

    REUSE_ALV_FIELDCATALOG_MERGE Modificar disposicion

    Que debo agregar para que me aparezcan los iconos de modificar, gestionar disposiciones.
  • jmenendez
    Member
    • may
    • 54

    #2
    No se si te entiendo bien.

    Me suena a querés modificar el Status GUI del reporte final.
    Para eso no tenés que modificar el catálogo sino el display.
    Copiate un estatus estandar por la trx: SE41 a tu programa y este aplicalo al alv.

    Ej: Programa: SAPLKKBL
    Status: STANDARD_FULLSCREEN

    Este tiene los botones: &OL0 &OAD &AVE
    Que creo son los que solucionan el problema que planteás.

    SAludos.

    Comentario

    • ibecerra

      #3
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
      EXPORTING
      i_callback_program = g_repid
      i_callback_pf_status_set = 'SET_STATUS'
      i_callback_user_command = 'USER_COMMAND'
      i_structure_name = 'TI_ZTPICK_VER'
      is_layout = gs_layout
      it_fieldcat = gt_fieldcat[]
      i_save = g_save --------> esto te habilita los botones para poder grabar y mod disp

      Comentario

      • mendocar
        Senior Member
        • ago
        • 226

        #4
        Estimados : De nuevo la explicaciòn con algo de còdigo.

        FORM get_layout .
        clear gs_layout.
        * gs_layout-zebra = 'X'.
        gs_layout-sel_mode = 'D'.
        ENDFORM. " get_layout

        FORM get_fieldcat .
        data: ls_fcat type lvc_s_fcat.
        data: w_pos(2) TYPE n.
        DATA: w_repid LIKE sy-repid.
        data: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
        w_repid = sy-repid.
        CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
        i_program_name = w_repid
        i_internal_tabname = 'GT_DATA'
        i_inclname = w_repid
        CHANGING
        ct_fieldcat = IT_FIELDCAT[]
        EXCEPTIONS
        inconsistent_interface = 1
        program_error = 2
        OTHERS = 3.
        LOOP AT IT_FIELDCAT.
        CLEAR ls_fcat.
        MOVE-CORRESPONDING IT_FIELDCAT to ls_fcat.
        ls_fcat-ref_table = IT_FIELDCAT-ref_tabname.
        ls_fcat-ref_field = IT_FIELDCAT-ref_fieldname.
        ls_fcat-outputlen = IT_FIELDCAT-ddic_outputlen.
        ls_fcat-key = space.
        ls_fcat-fix_column = space.
        ls_fcat-auto_value = space.
        ls_fcat-edit = space.
        CASE ls_fcat-fieldname.
        WHEN 'BELNR'.
        ls_fcat-key = 'X'.
        ls_fcat-fix_column = 'X'.
        WHEN 'GJAHR'.
        ls_fcat-key = 'X'.
        ls_fcat-fix_column = 'X'.
        WHEN 'PROCESS'.
        ls_fcat-scrtext_l = 'Procesado'.
        ls_fcat-scrtext_m = 'Procesado'.
        ls_fcat-scrtext_s = 'Procesado'.
        WHEN 'SGTXT'.
        ls_fcat-edit = 'X'.
        WHEN OTHERS.
        ENDCASE.
        APPEND ls_fcat to gt_fieldcat.
        ENDLOOP.

        Luego viene:

        MODULE STATUS_0100 OUTPUT.
        SET PF-STATUS 'ST_001'.
        SET TITLEBAR 'TIT01'.
        if GRID1 is INITIAL.
        CREATE OBJECT g_custom_container
        EXPORTING
        container_name = G_CONTAINER.
        CREATE OBJECT GRID1
        EXPORTING
        I_PARENT = g_custom_container.
        CREATE OBJECT gr_events.
        SET HANDLER gr_events->handle_data_changed
        FOR GRID1.
        * Validar al dar enter
        CALL METHOD GRID1->register_edit_event
        EXPORTING
        i_event_id = cl_gui_alv_grid=>mc_evt_enter.
        * Validar al modificar el campo
        CALL METHOD grid1->register_edit_event
        EXPORTING
        i_event_id = cl_gui_alv_grid=>mc_evt_modified.

        CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
        EXPORTING
        is_layout = gs_layout
        i_save = 'A'
        CHANGING
        IT_OUTTAB = gt_data[]
        IT_FIELDCATALOG = GT_FIELDCAT.
        ELSE.
        call METHOD GRID1->refresh_table_display.
        ENDIF.
        ENDMODULE. " STATUS_0100 OUTPUT

        Comentario

        Trabajando...