Problemas con VALID EN EL GET

Post Reply
Antonio G.
Posts: 2
Joined: Thu Jun 18, 2009 2:10 pm

Problemas con VALID EN EL GET

Post by Antonio G. »

Hola a todos
A ver si me podeis ayudar a resolver una pega que me da el GET con la opcion VALID, que aunque devuelve .F. , pasa al GET siguiente.


El programa es de una captura de datos con varios GET, que utilizan la cláusula VALID con una función, a la que se las pasa varios parámetros, que comprueba si el código introducido existe en una base de datos. Este programa es llamado desde un menú.

La función esta devolviendo .F. (falso), pero pasa al siguiente GET, no ocurre como en CLIPPER, que no dejaba pasar al siguiente GET.

He probado poniendo antes del VALID

WHEN .F. // He verificado que la función a la que es llamada por el GET devuelve .F.

WHEN QEXI=1 // seria una variable que devuelve la función a la que es llamada por el GET

LA PARTE DE LA RUTINA DE LOS GET, ES LA SIGUIENTE:


func PROALBANCO()

local oBCO, WOK:= .F., QOK:= 0, oGET1, oGET2, oGET3,oGET4,oGET5,oBTO1, oBTO2, oBTO3, oBTO5

LOCAL QEMPRE,QBANCO,WNBCO15,WNBCO30

STORE 0 TO QEMPRE,QBANCO

STORE SPACE(3) TO WBANCO

STORE SPACE(4) TO WEMPRE

WNBCO15=SPACE(15); WNBCO30=SPACE(30)

KR=FABD("R","EMP","BANCOS","BANCO","S000TXX"); IF KR=0; RETURN; ENDIF // llama a función para abrir base de datos

DEFINE DIALOG oBCO FROM 1, 1 TO 41,140 TITLE "A L T A D E B A N C O S D E E M P R E S A S"
@ 01,30 SAY "ALTA-BAJA-MODIF. (A/B/M)"

@ 01,45 GET oGET1 VAR WOPCION OF oBCO UPDATE VALID WOPCION$ "ABM" PICTURE "!" SIZE 10,12

@ 02,30 SAY "CODIGO DE EMPRESA" SIZE 88,12 COLOR "W/B"

@ 02,45 GET oGET2 VAR QEMPRE OF oBCO UPDATE PICTURE "9999" SIZE 20,12 RIGHT VALID FPETENTI1("EMPRE",QEMPRE, ; 3.5,132,4,1,"EMPRE","WEMPRE",0)

@ 03,30 SAY "CODIGO DE BANCO" SIZE 88,12 COLOR "GR+/G"



@ 03,45 GET oGET3 VAR QBANCO OF oBCO UPDATE PICTURE "999" SIZE 18,12 RIGHT VALID FPETENTI1("BANCO",QBANCO, ; 5.5,132,3,1,"BANCO","WNUMAL",4)

@ 04,30 SAY "NOMBRE DE BANCO EN 15" COLOR "W/R+"



@ 04,45 GET oGET4 VAR WNBCO15 OF oBCO UPDATE VALID !Empty(WNBCO15) PICTURE "@!!!!!!!!!!!!!!!" SIZE 60,12

@ 05,30 SAY "NOMBRE DE BANCO EN 30" COLOR "R/W+"

@ 05,45 GET oGET5 VAR WNBCO30 OF oBCO UPDATE VALID !Empty(WNBCO30) PICTURE "@!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" SIZE 100,12

@ 07,30 BUTTON oBTO1 PROMPT "Correcto" OF oBCO ACTION ( oBTO1:oJump:= oGet2, oGet2:SetFocus(),;

GRAREBANCO(WOPCION,WEMPRE,WNUMAL,WNBCO15,WNBCO30), QOK=1)

@ 07,45 BUTTON oBTO2 PROMPT "Modificar la OPCION" OF oBCO ACTION (oBTO2:oJump:= oGet1, oGet1:SetFocus(),QOK=2)

@ 07,70 BUTTON oBTO3 PROMPT "Salir de Bancos" OF oBCO UPDATE ACTION ( QOk := 99, oBCO:End() ) CANCEL

ACTIVATE DIALOG oBCO CENTERED

RETURN NIL

He probado poniendo antes del VALID

WHEN .F. // He verificado que la función a la que es llamada por el GET devuelve .F.

WHEN QEXI=1 // seria una variable que devuelve la función a la que es llamada por el GET

El problema le tengo en el 2º y 3º GET, cuando lo envio con el VALID a la funcion.


Gracias por lo que podais decirme.
User avatar
Ramon Paredes
Posts: 215
Joined: Fri Feb 02, 2007 3:38 pm
Location: Managua, Nicaragua

Re: Problemas con VALID EN EL GET

Post by Ramon Paredes »

Antonio ,

Yo lo hago de la siguiente forma :

@ 01,45 GET oGET1 VAR WOPCION OF oBCO UPDATE PICTURE "!" SIZE 10,12 valid(es_mov(@wopcion))

function es_mov(fopcion)

Local oRet:= .f.

IF UPPER(WOPCION) = "A" .OR. UPPER(WOPCION) = "B" .OR. UPPER(WOPCION) = "M"
oRet := .T.
ELSE
MSGALERT("HA DIGITADO UNA OPCION ERRADA.................VERIFIQUE")
oRet:= .F.
ENDIF

RETURN oRet

y te aseguro que no pasa a otro get si no cumple el valid
... Desde la Tierra de lagos y Volcanes......
Post Reply