Ver Mensaje Individual
  #1  
Viejo 09/12/09, 07:23:19
Avatar de playa82
playa82 playa82 is offline
Member
 
Fecha de Ingreso: abr 2007
Mensajes: 34
Unhappy Mostrar error al seleccionar registros de Table Control

Hola buenos días,

Necesito controlar que no se seleccionen más de 3 registros de un table control. Para ello, cuando se han seleccionado 4 o más, muestro un error:

********************************************************
* Comprobar el número de beneficiarios seleccionados
CLEAR l_num_benef.
LOOP AT t_beneficiarios INTO e_beneficiario WHERE selec EQ 'X'.
l_num_benef = l_num_benef + 1.
ENDLOOP.

* Si el usuario ha seleccionado más de 3 beneficiarios --> error!
IF l_num_benef GT 3 AND sy-ucomm EQ 'UPD'.
MESSAGE e029(zrh_pa_mc_mensajes).
* E: El empleado solo puede tener 3 beneficiarios
ENDIF.
********************************************************

El problema es que tras el error, el TC se me queda bloqueado y no puedo deseleccionar los registros marcados ni hacer nada más.
He probado a:
- Recorrer la tabla y limpiar el campo de selección, pero claro, el error mostrado no deja llegar al PBO, por lo que no se actualiza nada.
- Controlar el error desde la badi de infotipos de PA HRPAD00INFTY, y tb se me queda todo bloqueado.
- A meter mi código (module controlar_tres_beneficiarios) dentro del loop, y nada:
LOOP AT t_beneficiarios.
CHAIN.
FIELD e_beneficiario-famsa.
FIELD e_beneficiario-stext.
FIELD e_beneficiario-objps.
FIELD e_beneficiario-fanam.
FIELD e_beneficiario-fnac2.
FIELD e_beneficiario-favor.
FIELD e_beneficiario-fasex.
FIELD e_beneficiario-fgbdt.
FIELD e_beneficiario-fgbot.
FIELD e_beneficiario-landx.
FIELD e_beneficiario-natio.
ENDCHAIN.
FIELD e_beneficiario-selec
MODULE tc_benef_mark ON REQUEST.

* Controlar que solamente se puedan marcar 3 beneficiarios
MODULE controlar_tres_beneficiarios.

ENDLOOP.


¿Alguna idea más?
__________________
Yo misma
Responder Con Cita