Conrol de boton OK

Consultas, trucos, consejos. Todo sobre Clarion en todas sus versiones
Responder
Pedro
Mensajes: 7
Registrado: Lun Feb 07, 2011 8:32 pm
Contactar:

Conrol de boton OK

Mensaje por Pedro » Lun Feb 07, 2011 10:48 pm

Hola,, vamos a empezar con una pregunta, (no soy experto en Clarion ni nada parecido, asi que sepan disculpar el tipo de preguntas)

Tengo un Form hecho con un Wizard, y necesito hacer validaciones en el boton Ok, y si esta todo bien, seguir, pero sino debo volver el contrl a algun campo del Form

Alguien sabe si esto se puede hacer, y de ser asi, donde coloco el codigo y como hago para volver el control al Form.

Muchas gracias


luizmarin
Al nivel de RZ
Mensajes: 161
Registrado: Dom Feb 06, 2011 2:36 am
Contactar:

Re: Conrol de boton OK

Mensaje por luizmarin » Lun Feb 07, 2011 11:42 pm

hola pedro,

si se puede hacer lo que intentas.

pero los embeds del botton "OK" no es lo mejor lugar para eso.

1. Fijate en [embeds] [local objects] [window manager] [ TAKE COMPLETED ], antes del parent call.

alli puede poner tu codigo de validacion. Lo motivo de eso es que si yo cierro lo form mediante lo "X" de la ventana lo contenido del botton "ok" no se va realizar. Pero todo pasa por ese otro lugar.

Como hacer :

muy bien, imaginese que tengo un form con 5 campos. [cliente:nombre] y [cliente:telefono] no puede estar vacio. Que hacer?

2. en ese embed pone asi:

if clip(cliente:nombre) = '' ! esta vacio
message('Debe informar el nombre')
select(?cliente:nombre)
cycle
end

if clip(cliente:telefono) = '' ! esta vacio
message('Debe informar el telefono')
select(?cliente:telefono)
cycle
end


esta ai todo tu codigo. Escribe si tiene mas dudas...

espero si comprenda mi raro español...
Luiz Marin

Saludos desde Brazil...

www.olabombinhas.com.br

Avatar de Usuario
DanielRuzo
Al nivel de RZ
Mensajes: 124
Registrado: Dom Feb 06, 2011 7:45 pm
Ubicación: Uruguay
Contactar:

Re: Conrol de boton OK

Mensaje por DanielRuzo » Lun Feb 07, 2011 11:52 pm

Hola, Pedro.

Qué bueno que planteaste acá la pregunta. Conociendo su contenido estoy más de acuerdo todavía en que era mejor plantearla acá que en el chat de Skype.

Lo que te respondió Luiz está bien. Pero lo mejor sería, tanto para Clarion como para cualquier aplicación Windows, que la validación de los campos la hagas una vez completado el campo. En el caso de Clarion, sería en el evento TakeAccepted del control correspondiente. Ese evento se dispara cada vez que el usuario abandona el campo.

Para la eventualidad de que el campo no sea accedido por el usuario (por ejemplo, el usuario ingresa información en el primer campo del formulario y directamente presiona "Ok" sin pasar por los otros campos) existe lo que se llama "AcceptAll", que es un evento especial en el cual se recorren todos los campos del formulario. Como en tu caso el formulario lo hiciste con los templates entonces no tenés que preocuparte por esto, porque directamente se va a disparar ese evento cuando presiones "Ok" y todos tus controles van a ser validados. Pero si hacés una ventana "a mano" entonces tendrías que establecer cuál es el botón que dispararía ese evento. Pero eso ya sería para otro tema.

Cualquier duda que tengas sobre el contenido de esta respuesta no dudes en preguntar. Sucede que uno no quiere entrar mucho en profundidad para no explicar lo que el otro ya sabe.
¡Saludos!

Daniel Ruzo
www.amazingGUI.com

Yo creo en la reencarnación:
antes tenía una vida y ahora soy programador

jones
Novato
Mensajes: 27
Registrado: Lun Feb 07, 2011 8:27 pm
Ubicación: Maracaibo-Venezuela
Contactar:

Re: Conrol de boton OK

Mensaje por jones » Mar Feb 08, 2011 12:37 pm

Hola buenos dias, yo quero hacer lo contrario, como puedo desabilitar el AceptAll que estan mencionando, ya que cuando le dan al boton Ok todo nuevamente.

Avatar de Usuario
Mauricio
Desarrollador de Clarion
Mensajes: 1125
Registrado: Dom Feb 06, 2011 9:34 am
Ubicación: España
Contactar:

Re: Conrol de boton OK

Mensaje por Mauricio » Mar Feb 08, 2011 12:40 pm

En la validación de tu campo tenés que preguntar así:
IF 0{Prop:AcceptAll} = FALSE
! Acá validás
END !IF

0 es el ID de la ventana, por defecto la ventana es siempre el primer control, por eso el 0.
De esta forma solo vas a validar cuando pasás por el campo y no al darle al botón de Ok.
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog

Avatar de Usuario
DanielRuzo
Al nivel de RZ
Mensajes: 124
Registrado: Dom Feb 06, 2011 7:45 pm
Ubicación: Uruguay
Contactar:

Re: Conrol de boton OK

Mensaje por DanielRuzo » Mar Feb 08, 2011 6:01 pm

Pero cuidado, que la verificación desde el AcceptAll hay que omitirla sólo en ciertos casos. Si se omite siempre pueden quedar controles sin verificar cuando el usuario no pase por ellos.
¡Saludos!

Daniel Ruzo
www.amazingGUI.com

Yo creo en la reencarnación:
antes tenía una vida y ahora soy programador

Pedro
Mensajes: 7
Registrado: Lun Feb 07, 2011 8:32 pm
Contactar:

Re: Conrol de boton OK

Mensaje por Pedro » Mar Feb 08, 2011 6:19 pm

Gracias a todos, clarisimas las explicaciones, anda joya

Lo del AcceptAll lo voy a dejar para mas adelante, por ahora he avanzado mucho

luizmarin
Al nivel de RZ
Mensajes: 161
Registrado: Dom Feb 06, 2011 2:36 am
Contactar:

Re: Conrol de boton OK

Mensaje por luizmarin » Mar Feb 08, 2011 6:27 pm

siempre por ahy si necesitas.


habla del clarioneros.com a tus amigos...

saludos desde brazil
Luiz Marin

Saludos desde Brazil...

www.olabombinhas.com.br


Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 15 invitados