Soy completamente nuevo en el lenguaje ABAP, ya solicité los manuales en español. Pero adicional, tengo dudas en concreto.
Tengo un requerimiento en el trabajo (soy nuevo y sin experiencia) en el cuál tengo que hacer una afectación directa (crear, modificar, eliminar y visualizar) a una tabla de SAP desde un grid. He leído que se puede con un ALV dinámico, pero no lo tengo muy claro y no sé ni por donde comenzar.
Genera primero un reporte ALV, y dentro de ese reporte puedes agregar eventos USER_COMMANDS
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_user_command = 'USER_COMMAND' "Aqui indicas la rutina de los comandos
i_callback_pf_status_set = 'BAR_ASSIGN' "Barra de botones
it_fieldcat_lvc = gt_fcat_agru
TABLES
t_outtab = gt_agrupados
EXCEPTIONS
program_error = 1
OTHERS = 2.
FORM user_command_process USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
*** Esta parte sirve para actulizar la tabla interna con la información visualizada en el reporte ALV
rs_selfield-refresh = 'X'.
DATA: lr_grid_pro TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = lr_grid_pro.
CALL METHOD lr_grid_pro->check_changed_data.
***
CASE r_ucomm. "Viene de la variable del sistema SY-UCOMM que tiene el comando ejecutado por el usuario
WHEN '&INSERT'.
WHEN '&DELE'.
WHEN '&UPDA'.
WHEN '&INSERT'.
ENDCASE.
Hola OMCI, hay varias maneras de realizar un ALV, pero la parte importante para lo que tú buscas es el FIELDCAT (propiedades de las columnas). Te dejo un ejemplo:
Si te das cuenta son dos campos diferentes del mismo reporte, pero uno de ellos tiene la propiedad Edit activa, esto automáticamente activará los botones para un ALV modificables (insertar, eliminar, copiar registros, etc., aunque incluso estos botones se pueden ocultar si solo quieres que un campo sea editable y no todos los demás) y hace que ese campo/columna en especifico se pueda ingresar un valor. Ya con eso, combinalo con lo que te mandó Alonso, tendrás que jugar con los eventos, para capturar que línea fue modificada, lo que harás con los valores modificados y todo eso.
Hola, es correcto lo que te han indicado. También te puedes ayudar copiando de los programas demo de Sap donde hay pequeños ejemplos del uso de ALV. Busca en la se38 los programas que empiezan con BCALV
Cuéntanos cómo te ha ido hasta ahora con el programa.