#1
|
|||
|
|||
Insertar botón en la barra de herramientas del ALV
Hola a todos:
Tengo preparado un ALV y necesito insetar un botón en la barra de herramientas mediante código, he visto algún ejemplo pero con programación orientada a objetos pero yo tengo un ALV de tipo grid normalillo. La idea poder insertar un botón y capturar cuando ese botón sea pulsado para llamar a un formulario, bueno cuando descubra como. Saludos. |
#2
|
|||
|
|||
Hola jplozano yo tengo el mismo problema que tú. Te comento lo que se hasta ahora a ver si nos podemos ayudar mutuamente.
Por lo visto cuanto tu llamas a la función alv grid. De la siguiente forma En donde pone i_callback_top_of_page lo que estas poniendo en realidad es una llamada a una perform por lo que tienes que tener en tú programa una form con la siguiente forma. Desda aqui puedes pinchar en SET PF-STATUS 'ALV' y de esta forma crearas el status. Por lo que es posible deducir que para tratar el evento que va a producir el status deberías tener un form que se llamase 'USER_COMMAND'. Es decir de esta forma. Pero la verdad es que a mi me da un dump me dice lo siguiente Errores tiempo ejecució MOVE_TO_LIT_NOTALLOWED_NODATA ocurrido el 25.02.2007 a 23:15:39 >> Dump breve ABAP no almacenado completamente (muy grande) Assignment error: Overwriting a protected field. Siento responderte con una pregunta pero la verdad es que no se por donde seguir a ver si la gente del foro nos echa una mano. |
#3
|
|||
|
|||
Hola JAC:
Yo está parte creo que la tengo más o menos resuelta. Por lo que he visto mí código es muy parecido al tuyo. Te lo adjunto por si tú ves alguna diferencia. form user_command_01 using ucomm like sy-ucomm selfield type slis_selfield. READ TABLE ti_datos INDEX selfield-tabindex into wa_datos. check sy-subrc = 0. case ucomm. * Doble Click when '&IC1'. CASE SELFIELD-FIELDNAME. WHEN 'CHECKBOX'. wa_datos-checkbox = 'X'. modify ti_datos from wa_datos index sy-tabix. ucomm = '&REFRESH'. WHEN OTHERS. ENDCASE. endcase. endform. "user_command_01 Lo unico que yo controlo si se punsa en una columna para activar un checkbox. Saludos. Espero que te sirva. |
#4
|
|||
|
|||
jplozano me puedes decir que le has puesto para rellenar el argumento
IT_EVENTS, es que creo que este es mi problema. Que es precisamente donde se rellena el evento a que form esta asociado. Si me equivoco que alguién me corrija gracias. |
#5
|
|||
|
|||
Te pasó la llamada a la función entera, por si quieres compararla.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = g_repid i_callback_user_command = 'USER_COMMAND_01' * i_callback_pf_status_set = 'SET_PF_STATUS_01' i_structure_name = 't_trabajo ' is_layout = gs_layout it_fieldcat = gt_fieldcat[] IT_SORT = GT_SORT[] IT_EXCLUDING = GT_EXCLUDE[] * I_DEFAULT = 'X' I_SAVE = ' ' "Grabar Variante IS_VARIANT = ls_vari IT_EVENTS = GT_EVENTS[] TABLES T_OUTTAB = t_materiales EXCEPTIONS program_error = 1 OTHERS = 2. Suerte. |
#6
|
|||
|
|||
Solución
1. Visualizar el programa SAPLSLVC_FULLSCREEN.
2. Desplegar Status GUI. 3. clic derecho sobre STANDARD_FULLSCREEN. 4. clic en copiar. 5. escoger el programa destino y colocar un nombre. 6. Editar nuestro programa Z y luego ingresar al status copiado. Modificar ó añadir el botón requerido. Funciona!!! |
Herramientas | Buscar en Tema |
Desplegado | |
|
|