Página 1 de 1

VEJA: como limpar GET de uma só vez...

Enviado: 25 Mai 2005 11:33
por rochinha
#include "fivewin.ch"

FUNCTION Main()

local oDlg, oBtn
local oCode, oFirst, oStreet, oCity
local nCode, cFirst, cStreet, cCity

USE TEST NEW
INDEX ON TEST->CODE TO TEST

nCode := 0
cFirst := Space(20)
cStreet := Space(30)
cCity := Space(30)

DEFINE DIALOG oDlg TITLE "Ejemplo Validación" FROM 1,1 TO 20,35

@2,1.5 GET oCode VAR nCode PICTURE "999" SPINNER ;
ON UP Actualiza( @nCode, oDlg, @cFirst, @cStreet, @cCity, -1 ) ;
ON DOWN Actualiza( @nCode, oDlg, @cFirst, @cStreet, @cCity, 1 ) ;
MIN 0 MAX 999 ;
VALID Actualiza( @nCode, oDlg, @cFirst, @cStreet, @cCity, 0 ) UPDATE

@3,1.5 GET oFirst VAR cFirst WHEN (nCode <> 0) UPDATE // no te olvides
@4,1.5 GET oStreet VAR cStreet WHEN (nCode <> 0) UPDATE // de los
@5,1.5 GET oCity VAR cCity WHEN (nCode <> 0) UPDATE // UPDATE's

@7, 8 BUTTON oBtn PROMPT "&Salir" ACTION oDlg:End() CANCEL

ACTIVATE DIALOG oDlg CENTERED

RETURN NIL

/******/
STATIC FUNCTION Actualiza( nCode, oDlg, cFirst, cStreet, cCity, nMove )
local lOk := .F.

nCode += nMove // -1=Atras 1=adelante 0=valid

if dbSeek( nCode, .F. )
cFirst := TEST->FIRST
cStreet := TEST->STREET
cCity := TEST->CITY

lOK := .T.
else
MsgStop("Code Not Found")
nCode := 0
cFirst := Space(20)
cStreet := Space(30)
cCity := Space(30)
endif

oDlg:Update() // Aqui todo dialogo será revisto e atualizado
oDlg:aEvalWhen() // e reavaliado todos WHENs

RETURN lOk