#4
|
|||
|
|||
alv llama popup
Creo q ya entendi lo q intentas hacer y si se puede:
Primero debes capturar la accion d dar doble clic a la celda q quieres editar, para eso debes asegurarte q: q tu layout tenga asignado un valor en el campo F2CODE. GS_LAYOUT-F2CODE = 'MATCHCODE'. q tu llamado a alv grid tenga como export este layout y el user_command: CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE' I_CALLBACK_USER_COMMAND = 'USER_COMMAND' * * * IS_LAYOUT = GS_LAYOUT TABLES T_OUTTAB = 'tu_tabla_interna' EXCEPTIONS PROGRAM_ERROR = 1 OTHERS = 2. Luego implementar tu user_command: FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE SLIS_SELFIELD. CHECK NOT RS_SELFIELD-TABNAME IS INITIAL. CASE R_UCOMM. WHEN 'MATCHCODE'. IF RS_SELFIELD-FIELDNAME EQ 'nombre_campo_editable'. " Aqui va la funcionalidad una vez q hiciste doble clic al campo " Llamado al pop up tipo matchcode CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING RETFIELD = 'CAMPO-TABLA-POPUP' WINDOW_TITLE = 'TITULO POP-UP' VALUE_ORG = 'S' TABLES VALUE_TAB = 'tabla interna con valores popup' RETURN_TAB = IT_MATCH EXCEPTIONS PARAMETER_ERROR = 1 NO_VALUES_FOUND = 2 OTHERS = 3. IF SY-SUBRC EQ 0. READ TABLE IT_MATCH INDEX 1. tu_tabla_interna-nombre_campo_editable = IT_MATCH-FIELDVAL. ENDIF. " Actualizacion del campo con el valor dl pop up MODIFY tu_tabla_interna INDEX RS_SELFIELD-TABINDEX. rs_selfield-refresh = 'X'. clear i_ucomm. ENDIF. ENDCASE. ENDFORM. Necesitaras declarar la tabla interna: DATA: BEGIN OF IT_MATCH OCCURS 0, SHLPNAME LIKE DDSHRETVAL-SHLPNAME, FIELDNAME LIKE DDSHRETVAL-FIELDNAME, RECORDPOS LIKE DDSHRETVAL-RECORDPOS, FIELDVAL LIKE DDSHRETVAL-FIELDVAL, RETFIELD LIKE DDSHRETVAL-RETFIELD, END OF IT_MATCH. Esto lo hice sin compilar pero he hecho programas q hacen esto, asi q si tienes alguna duda, me avisas. salu2
__________________
Jaime Zegarra V. ________________ ABAP Developer |
Herramientas | Buscar en Tema |
Desplegado | |
|
|