#11
|
|||
|
|||
oka...
Codigo declaro el ALV *-------------------------------------------------------------------------- * TABLA INTERNA ALV *-------------------------------------------------------------------------- DATA: t_layout TYPE slis_layout_alv, " FORMATO QUe TIENE EL ALV t_fieldcat TYPE slis_fieldcat_alv OCCURS 0 WITH HEADER LINE, t_sort TYPE slis_t_sortinfo_alv, " PERMITE ORDENAR EL ALV t_list_top_of_page TYPE slis_t_listheader, t_events TYPE slis_t_event. types: begin of slis_alv_event, nombre(30), form(30), end of slis_alv_event. types slis_t_event type slis_alv_event OCCURS 0. Codigo Ejecuto el ALV *&---------------------------------------------------------------------* *& Form EJECUCION_ALV_CAJAS *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM ejecucion_alv_cajas . CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING it_sort = t_sort[] i_interface_check = 'X' i_callback_program = sy-repid i_callback_user_command = 'USER_COMMAND_CAJAS' i_callback_pf_status_set = 'PF_STATUS_T_ALV_CAJAS' i_structure_name = 'TI_ALV' i_save = w_save is_layout = t_layout it_fieldcat = t_fieldcat[] i_grid_settings = w_s_grid_settings i_default = ' ' it_events = t_events[] * it_event_exit = 'X' is_print = w_impresion * it_special_groups = 'VTEXT' TABLES t_outtab = ti_alv 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. " EJECUCION_ALV_CAJAS form pf_status_set using rt_extab type slis_t_extab. set PF-STATUS 'ZSTAT' EXCLUDING rt_extab. ENDFORM. form evento_pf_status. data w_events type slis_alv_event. CLEAR w_events. w_events-form = 'pf_status_set'. w_events-nombre = slis_ev_pf_status_set. APPEND w_events TO t_events. ENDFORM. Acà esta el manejo del user command que creo que deberia cambiar ya que aca habia definido los botones, no el ZSTAT que es donde los quiero manejar ya que no me alcanza para asignar los botones que necesito .... Ojala me puedas entender ... mira que ya estoy enredada ... gracias *&---------------------------------------------------------------------* *& Form user_command_kilos *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->U_UCOMM text * -->US_SELFIELD text *----------------------------------------------------------------------* FORM user_command_cajas USING u_ucomm TYPE syucomm us_selfield TYPE slis_selfield. "#EC CALLED CASE u_ucomm. WHEN 'FC01'. IF p_conso = ' '. PERFORM llena_alv_fieldcat_pesos. PERFORM layout_pesos. PERFORM sort_pesos. PERFORM ejec_alv_pesos. ELSE. PERFORM llena_alv_fieldcat_consolidado. PERFORM layout_pesos. PERFORM sort_pesos_consolidado. PERFORM ejec_alv_pesos. ENDIF. WHEN 'FC02'. IF p_conso = ' ' . " DETALLE POR CANAL DE VENTAS PERFORM llena_alv_fieldcat_kilos. PERFORM layout_kilos. PERFORM sort_kilos. PERFORM ejecucion_alv_kilos. ELSE. PERFORM llena_alv_fieldcat_kilos_con. " DETALLE CONSOLIDADO PERFORM layout_kilos_con. PERFORM sort_kilos_con. PERFORM ejecucion_alv_kilos_con. ENDIF. WHEN 'FC03'. IF p_conso = ' ' . " DETALLE POR CANAL DE VENTAS PERFORM llena_alv_fieldcat_unidad. PERFORM layout_unidad. PERFORM sort_unidad. PERFORM ejecucion_alv_unidad. ELSE. PERFORM llena_alv_fieldcat_unidad_con. PERFORM layout_unidad. PERFORM sort_unidad_con. PERFORM ejecucion_alv_unidad. ENDIF. WHEN 'FC04'. IF p_conso = ' ' . " DETALLE POR CANAL DE VENTAS PERFORM llena_alv_fieldcat_margen. PERFORM layout_margen. PERFORM sort_margen. PERFORM ejecucion_alv_margen. ELSE. PERFORM llena_alv_fieldcat_margen_con. PERFORM layout_margen. PERFORM sort_margen_con. PERFORM ejecucion_alv_margen. ENDIF. ENDCASE. ENDFORM. "user_command2 |
#12
|
|||
|
|||
Yanett, dos cositas:
Primero, no hace falta que declares los eventos, ya que el evento del status lo estás declarando aca: Así que esto: debería ser así: Y lo otro, en el FORM user_command_cajas, en el CASE, en vez de esos nombres FC01, etc... deberías poner los que asignaste a tus botones en la se41. |
#13
|
|||
|
|||
Siiiiii ahora entendí y me funciono ... espectacular ... agradecida por tú buena onda !!!! |
#14
|
|||
|
|||
Bien!!
|
#15
|
|||
|
|||
Sigo molestando .... Saben como puedo agregar los porcentajes de los totales y subtotales en un ALV . Y lo otro que me esta pasando que dentro del evento 'pf_status_set' no puedo manejar la salida del programa como el &F03 BACK , cuando entro en el ALV y pulso los distintos botones creados y hago un BACK no se devuelve al inicio del programa, se devuelve cuantas veces haya pulsado el botón. Ojala se entienda ... Muchas Gracias por sus ayudas .... |
Herramientas | Buscar en Tema |
Desplegado | |
|
|