#1
|
||||
|
||||
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 |
Herramientas | Buscar en Tema |
Desplegado | |
|
|