Ver Mensaje Individual
  #3  
Viejo 27/06/12, 14:43:11
SAPING SAPING is offline
Senior Member
 
Fecha de Ingreso: may 2010
Localización: Buenos Aires, Argentina
Mensajes: 199
- Primero tenes que crear en tu tabla de la cual mostras el alv con un campo para flag (TYPE c).

-Despues tenes que declararla en el fieldcat:
gw_fieldcat-checkbox = 'X'.
gw_fieldcat-edit = 'X'.

- Crea un nuevo STATUS_GUI con un boton que diga "Eliminar"

- En la funcion donde llamas al ALV tenes que pasarle un user command:
i_callback_user_command = 'FR_USER_COMMAND' => debes crear un form

- En este form colocas:
IF pe_ucomm = '%ANUL'. "si presiono el boton "Eliminar"

CLEAR lf_change.
* estas funciones son para actualizar el campo flag que creaste al principio
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = cl_ref1.

CALL METHOD cl_ref1->check_changed_data
IMPORTING
e_valid = lf_change.

* valido que se hayan seleccionado al menos un documento para anular
READ TABLE gt_alv WITH KEY anular = co_x TRANSPORTING NO FIELDS.
IF sy-subrc IS INITIAL.

CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = text-002 "Anular Compensaciones
text_question = text-003 "Se procederá a la anulación de los documentos seleccionados. ¿Desea Continuar?
default_button = '2'
display_cancel_button = 'X'
IMPORTING
answer = lf_answer.
IF sy-subrc IS INITIAL.

IF lf_answer = co_1.
* anulo las compensaciones marcadas
PERFORM fr_anular_docs.
ENDIF.

ENDIF.

ELSE.
* Seleccionar al menos un documento.
MESSAGE i004(zfbank) DISPLAY LIKE 'E'.
ENDIF.

ENDIF.

Espero te sirva.
Slds.
Responder Con Cita