MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   validar checkbox (foro/showthread.php?t=45627)

J_Delcanto 03/10/11 14:44:11

validar checkbox
 
1 Adjunto(s)
Holaaaaaaaaaaaaaaaa,

Tengo un table control, uno de los campos del table es checkbox (Campo Padre). Ahora bien, lo que quiero es q al momento de guardar me permita solo guardar cuando exista un checkbox tildado, de caso contrario envie un mensaje de error.

De antemano muchas gracias-

beltsoft 03/10/11 15:32:14

Debes hacer el Loop a la tabla interna, una vez que tengas los datos en el Work area haces la validación que indicas.

Saludos.

J_Delcanto 03/10/11 15:54:37

hice lo siguiente:

FORM check_checkbox.
DATA: cuenta type i.

CLEAR cuenta.

LOOP AT t_tc_datosg_itab WHERE padre = 'X'.
cuenta = cuenta + 1.
ENDLOOP.

IF cuenta > 1.
MESSAGE ID 'ZFC' TYPE 'E' NUMBER '014'.

ENDIF.

ENDFORM.

Me funciona bien pero me bloquea el table y lo que quiero es q en caso de equivocarme me permita sacar el tilde. El problema es q como es mensaje de error entonces no me deja modificar haciendole doble click. (no se si me entiendes) y la unica opcion que queda es hacer el ingreso de clientes TODO de nuevo... =/

Agradecida por tu respuesta

beltsoft 03/10/11 16:26:21

La verdad no te entiendo bien . . . Jjejejje

Pero por lo que más o menos entendí me imagino que estas haciendo el Loop en un momento incorrecto, por eso te bloquea la pantalla.

Mandas el mensaje y pones el cursor donde quieras que el usuario haga algo.

Saludos.

J_Delcanto 03/10/11 16:34:31

2 Adjunto(s)

Mira primero mi pantalla esta como el adjunto (dibujo) luego si pongo dos tildes y guardar, me aparece el mensaje de error y se bloquea el table (dibujo2). Estuve leyendo y decia q una de las caracteristicas de los mensajes de error es q bloquean el programa (momentaneamente) a diferencia del warning q te permite seguir trabajando en el programa.

La pregunta es como puedo hacer para que el mensaje sea de error pero si hago doble click en cualquier parte del table me deje editar y luego guardar. Lo que pasa es q sino perderia la informacion. Suponte que he ingresado 10 clientes y por error puse que dos de ellos eran padre, al momento de guardar me tirara el mensaje de error y no me dejara editar el table, entonces tendre q salir de la aplicacion entrar y realizar todo otra vez.

:D

beltsoft 03/10/11 16:57:30

Ahhhh muy sencillo:

MESSAGE ID 'ZFC' TYPE 'S' NUMBER '014' DISPLAY LIKE 'E'.

Saludos.

J_Delcanto 03/10/11 17:05:46


mmm No me funciono, no me mostro ni mensaje y mas encima grabo igual los dos padre...

a que te refieres con S? Warning?

Mil gracias por responder =)

mysmb2 03/10/11 17:29:16

lo que indica beltsoft es que debes mostrar un mensaje de suceso o de advertencia como si fuera error por eso el DISPLAY LIKE 'E'. Ademas luego del mensaje ya que no es de error tenes que valoriza una bandera de error para luego controlar que no siga procesando y lo guarde.

Saludos

J_Delcanto 03/10/11 18:18:06


Y como hago eso? :O

Gracias por tu respuesta.

mysmb2 03/10/11 19:15:08

de la manera que indica beltsoft es la correcta. lo que te debe pasar es que se esta pisando ese mensaje con otro posterior cuando grabas y solo se muestra el ultimo.
La idea de la bandera es que si existió un error no dejes grabar ni mostrar el mensaje eso lo haces mediante variables simples. por ejemplo gv_error si es igual a X no graba y si es vacío si.


Husos Horarios son GMT. La hora en este momento es 05:52:11.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web