Clipper/FiveWin - VALIDAR UN GET

 
Vista:

VALIDAR UN GET

Publicado por age (4 intervenciones) el 22/06/2005 05:44:01
HOLA : tengo que validar un GET es de 30 caracteres o sea solo letras, pero lo mas importante es que me deje ingresar solo dos letras iguales juntas,se entiende?
es para un campo de nombre y apellido
muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 25
Ha mantenido su posición en Clipper/FiveWin (en relación al último mes)
Gráfica de Clipper/FiveWin

RE:VALIDAR UN GET

Publicado por Antoni Masana (45 intervenciones) el 22/06/2005 07:48:23
Hola age.
Para validar un GET prueba a utilizar la clase GET. Te permite poner un bloque de codigo antes de editar y otro despues de editar.
Si el problema es controlar mientras edita puedes probar a modificar la propia rutina GET, el fuente viene con el compiador en los ejemplos.
Que yo sepa no hay otra forma de controlar mientras se edita el campo y no me he encontrado en la situación, todas las validaciones las he realizado antes o despues, pero nop todos los casos son iguales.

Antoni Masana.
Barcelona
España
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VALIDAR UN GET

Publicado por Cesar (153 intervenciones) el 22/06/2005 14:36:08
Hola,
El get es un objeto, y si trabajas con el objeto directamente vas a poder controlar el get mientras se tipea los datos y muchas otras cosas mas, como por ejemplo, llamar a una calculador si el el get numerico, a un almanaque si es de fecha, etc.

Fijate que hay ejemplos de como utilizar el objeto get. en clipper

Saludos
Cesar
Argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VALIDAR UN GET

Publicado por age (4 intervenciones) el 23/06/2005 21:47:54
che gracias pero no encontre nada en el ng de clipper 5.3
si tenes algun prg te agradesco mucho
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VALIDAR UN GET

Publicado por age (4 intervenciones) el 23/06/2005 21:46:33
che gracias por el interes de solucionarme el problema
el tema es que no encuentro nada que me sirva ,cuento como es bien,
Las validaciones las hago despues del READ con una FUNCTION
el tema es validar el campo de apellido ,que no se repitan las letras o que deje repetir solo dos letras iguales consecutivas , se entinede , si alguien tiene un prg que me pueda ayudar
probe con un for next y no lo puedo sacar

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VALIDAR UN GET

Publicado por Miguel Salas (53 intervenciones) el 24/06/2005 00:22:00
(Como ignoro tu nombre te dire age.)

Que tal Age

Aqui te mando tu solucion, solo tienes que meterla en una funcion le mandas el texto y que te devuelva .t. o .f. para valirdarla, me gustaria saber si tienes tiempo con fivewin para cominicarnos mas seguido.

espero me contestes.

saludos desde México

Atte Miguel

PD. esta prueba la hice de manera rapida para enviartela oviamente la puedes depurar en algunas cosas.


clear

cNombre := "JOSEFINA MARTINEZ MUUUCA 12345"
// ....5...10...15...20...25...30
? LEN(cNombre)
aLetras := {}

aX := {1,4,7,10,13,16,19,21,24,26}
?len(aX)
inkey(0)
FOR nI := 1 TO len(aX)

cLetrero1 := substr(cNombre,aX[nI],3)
cLetrero2 := substr(cNombre,aX[nI]+1,3)
cLetrero3 := substr(cNombre,aX[nI]+2,3)

? cLetrero1, cLetrero2,cLetrero3

cLetra1a := substr(cLetrero1,1,1)
cLetra2a := substr(cLetrero1,2,1)
cLetra3a := substr(cLetrero1,3,1)

cLetra1b := substr(cLetrero2,1,1)
cLetra2b := substr(cLetrero2,2,1)
cLetra3b := substr(cLetrero2,3,1)

cLetra1c := substr(cLetrero3,1,1)
cLetra2c := substr(cLetrero3,2,1)
cLetra3c := substr(cLetrero3,3,1)
/*
IF (cLetra1a = cLetra2a .AND. cLetra1a = cLetra3a) .OR. ;
(cLetra1b = cLetra2b .AND. cLetra1b = cLetra3b) .OR. ;
(cLetra1c = cLetra2c .AND. cLetra1c = cLetra3c)
alert("triptongo")
ENDIF */

IF (cLetra1a = cLetra2a .AND. cLetra1a = cLetra3a)
alert("triptongo"+cLetra1a+cLetra2a+cLetra3a)
ENDIF
IF (cLetra1b = cLetra2b .AND. cLetra1b = cLetra3b)
alert("triptongo"+cLetra1b+cLetra2b+cLetra3b)
ENDIF
IF (cLetra1c = cLetra2c .AND. cLetra1c = cLetra3c)
alert("triptongo"+cLetra1c+cLetra2c+cLetra3c)
ENDIF
NEXT

return nil
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VALIDAR UN GET

Publicado por age (4 intervenciones) el 24/06/2005 21:03:48
che mil gracias por preocuparte bueno te cuento que puse lo que me diste y no me funca bien lo probe medio apurado tendria que verlo mas detenidamente
pero no quize esperar mucho para contestarte voy a seguir intentando
te cuento que uso el clipper 5.3 no hace mucho
bueno te mando el prg mio asi como esta lo complilas a ver si vos podes hacer algo te agradesco por tu tiempo y si queres seguimos conectados por mail [email protected]
*---------------------------------------------------------------------------------------------------------
// validar el get que se puedan cargar letras y
// solo 2 letras iguales concecutivas en culaquier posicion
// si encuentra tres letras =es poner mensaje de error
// y volver al get para ingresar hasta que este correcto
CLEAR SCREEN
SET INTENSITY ON
DO WHILE .T.
IF LASTKEY()=27
RETURN
ENDIF
vlet=SPACE(30)
@08,01 SAY "LETRAS: " color "g+"
@07,01 SAY "Ingrese los datos y presione -ENTER- O Presione -ESC-para salir " color"b+"
@08,15 GET vlet PICT "@!" VALID letras(vlet)
READ
@14,01 CLEAR TO 18,50
@16,01 SAY "ingresaste esto: " color"rg+"
@16,22 SAY vlet color"g+"
IF LASTKEY()=27
RETURN
ENDIF
ENDDO
clear
quit
*------------------------------------------------
FUNCTION letras(vlet)
local local1, local2,error,vque
error:=.T.
local1=SUBSTR(vlet,1,30)
N:=0
FOR a=2 TO LEN(vlet)
local2=SUBSTR(vlet,a,1)
IF local1=local2
n++
IF n=2
SET CURSOR OFF
ALERT("ESTA MAL")
SET CURSOR ON
error=.F.
ENDIF
ELSE
vlet=local2
N=0

ENDIF
NEXT a
return error
*---------------------------------------------------
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar