Forzar user command
Buenas,
tengo un dypro con un ALV orientado a objetos, el caso es que el programa ya esta hecho y yo tengo que cambiarlo :( , tiene control de eventos en el alv asi que cada vez que introduzco un valor o hago cualquier cosa lo capta, el problema es que intentando quitar un registros del alv desde el control de eventos no funciona y entonces queria que pasase por el user command, pork cuando pasa por el si que lo elimina bien, he encontrado un parametro i_appl_events que precisamente lo que hace es eso pasar por el pbo y el pai CREATE OBJECT gr_gui_alv_prod EXPORTING i_parent = gr_gui_con_prod i_appl_events = 'X' pero tambien hace que ya no capture los eventos y todo el alv esta montado para funcionar con eventos. Alguien sabe si se puede forzar pasar por el user command?? para que desde la gestion de eventos pueda forzar a que pase por la dynpro como si hubiera pulsado un boton?? No se me ocurre otra solucion :_____( Muchas gracias de antemano. |
Hola, dentro del Status GUI standard existe un boton que elimina registros, normalmente cuando creo un ALV con OO le exluyo muchos botones, entre ellos
Seria bueno solo mostrar el standard y excluir los botones que no te sirvan menos el de borrar la fila para que no modifiques mucho codigo |
Muchas gracias, el problema es que yo no tengo que borrar la linea dandole a un boton tengo que borrarla con el control de eventos, cuando introducen un valor, compruebo si esta en determinada tabla y lo borro, en la tabla interna no esta y el refresh lo hace bien, pero al no pasar por el user command, creo yo, no me lo actualiza bien del todo.
Si se os ocurre algo.... :( Muchas gracias de nuevo :) |
Puedes probar la función :
desde el PBO de la dynpro. CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE' EXPORTING functioncode = '##PAI##' EXCEPTIONS function_not_supported = 1 OTHERS = 2. IF sy-subrc eq 0. d_gui = 'X'. <-- Inicializar flag indicativo del proceso ENDIF. Luego en el USER-COMMAND del PAI de la dynpro : IF NOT d_gui IS INITIAL. CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE' EXPORTING functioncode = '=' EXCEPTIONS function_not_supported = 1 OTHERS = 2. CLEAR d_gui. EXIT. <-- para salir del evento y volver a PBO ENDIF. En modul-pool funciona ok, para tu ALV estiendo que también. Lo único que deber buscar es el momento en que fuerzas el salto desde el PBO al PAI. |
Muchas gracias lo voy a probar ahora mismo :) , pero esk yo tengo que saltar de un metodo de control de eventos al pai o al pbo, el problema es que no llega ha entrar ni en el PBO ni en el PAI, cuando toco cualquier cosa en el alv se ejecuta el metodo que comprueba si ha habido cambios pero por la dynpro no pasa.
|
GRACIAS GRACIAS MIL GRACIAS POR AYUDARME!!!!!
la verdad ke habia hecho una cosa mu sucia para arreglarlo pork tenia ke corregirlo si o si pero no me gustaba nada y ahora funciona como yo keria y estoy super FELIZ :) Bueno pues he usado la funcion que me habias comentado, la he puesto asi CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE' EXPORTING functioncode = '=00' EXCEPTIONS function_not_supported = 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. en el codigo del metodo que comprobaba los cambios, simula un enter y entonces pasa por el user comman. GRACIAS GRACIAS GRACIAS, es como kitarse un peso de encima :) |
Husos Horarios son GMT. La hora en este momento es 01:27:02. |
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web