Página 1 de 1

llamada a procedimiento desde un form

Publicado: Mar Jun 12, 2012 1:29 pm
por euro500g
Hola amigos, soy novato en clarion y quiero que me ayuden a llamar un procedimiento o funcion para validar un campo desde un form.
por ejemplo validar el cuit de un cliente. Como llamo por ejemplo a la funcion validarcuit, como paso el parametro etc.
Gracias.
Ramón Rodríguez

Re: llamada a procedimiento desde un form

Publicado: Mié Jun 13, 2012 6:39 am
por Mauricio
Hola,
en el embebido Accepted de tu campo tendrías que poner algo como lo siguiente (suponiendo que tu campo se llama CLI:CUIT)

Código: Seleccionar todo

IF ValidarCuit(CLI:CUIT)
    ! El cuit es válido, no hacemos nada
ELSE
    Message('Debe ingresar un cuit válido','Atención',ICON:EXCLAMATION)
    SELECT(?)
    CYCLE
END !IF
La función ValidarCuit recibe como parámetro el cuit del cliente y devuelve TRUE o FALSE dependiendo de si el cuit es válido o no.
Espero que te sirva, si no, seguí preguntando.

Re: llamada a procedimiento desde un form

Publicado: Mié Jun 13, 2012 11:09 am
por euro500g
Hola Mauricio, gracias por el ayudin, eso entiendo, lo que no se es donde defino la funcion, es decir donde escribo el código de la funcion
y como defino los parametros de entrada y salida. Gracias.
PD::Trabajo en clarion 6.3

Re: llamada a procedimiento desde un form

Publicado: Mié Jun 13, 2012 5:31 pm
por Mauricio
Para la función creás un prodecimiento Source. En el prototipo de la función ponés lo siguiente:
(STRING pCuit),BYTE. Esto significa que recibirás un STRING como cuit y devolverás un BYTE.
En los parámetros del procedimiento, solo ponés (STRING pCuit).
En el código de tu función hacés la evaluación, podés definir una variable local, Loc:Retorno, de tipo BYTE.
Luego de la evaluación setearás esa variable a TRUE o FALSE, dependiendo de si el cuit es válido o no.
Y tenés que terminar tu función con un RETURN (Loc:Retorno).
Básicamente, es eso.

Re: llamada a procedimiento desde un form

Publicado: Jue Jun 14, 2012 10:37 am
por euro500g
Ok, muchisimas gracia, ya lo pruebo.Saudos.

Re: llamada a procedimiento desde un form

Publicado: Jue Jun 14, 2012 11:04 am
por Mauricio
Ok, avisá si te trabaste con algo.

Re: llamada a procedimiento desde un form

Publicado: Jue Jun 14, 2012 11:35 am
por euro500g
Mauricio me tranque de vuelta, Te muestro un Ejemplo Sencillo

If longitud=ValidarCuit(Clie:Cuit) = 0
Message('Debe Ingresar un cuit')
Select(?Clie:Cuit)
End

Procedure ValidarCuit(cCuit1)
Largo Byte
CODE
largo=Len(cCuit1)
Return(Largo)

Donde defino cCuit1, porque me dijiste que en prototipo defino el tipo de variable y que retorna (String),Byte
en Parametro (String) y cCuit1, espero que me entiendas
Muchisimas gracias y disculpa las molestias.

Re: llamada a procedimiento desde un form

Publicado: Jue Jun 14, 2012 12:12 pm
por Mauricio
Fijate el ejemplo que te adjunto. No le prestes atención a la función, solo valida que los 2 primeros números del CUIT sean 20.

Re: llamada a procedimiento desde un form

Publicado: Jue Jun 14, 2012 12:32 pm
por euro500g
Mauricio, gracias por la onda che, ahi me di cuenta yo pense que cuando pusiste pcuit hacias referencia a que el string era para el cuit
y en definitiva es la variable por la que yo te preguntaba. Esta ahora entiendo perfecto.
Muchas gracias viejo.

Re: llamada a procedimiento desde un form

Publicado: Jue Jun 14, 2012 12:59 pm
por Mauricio
De nada :)