FoxPro/Visual FoxPro - boton grabar

   
Vista:

boton grabar

Publicado por marina (38 intervenciones) el 25/02/2009 12:24:39
Hola amigos yo quisiera controlar q en este form de cliente no me deje grabar los datos a la tabla si ya existe el codigo de cliente, con la finalidad de q no me los repita

Yo tengo est sentencia en un boton aceptar:
select cliente
go top
grv=0 && creo una variable
scan
if cliente.codigo =cliente.codigo with thisform.pageframe1.page1.text1.value
grvs=messaggebox("no corresponde",16+4,"DAtos Nulos")
do case
case thisform.grvs.value=6 && si existe ese codigo q me devuelva el text
thisform.thisform.pageframe1.page1.text1.setfocus
endcase
else
grv=1 && dejo preparada la variable para luego gravar
endif
endscan
if grv=1
append blank
replace cliente.codigo with thisform.pageframe1.page1.text1.value
replace cliente.apellido with thisform.pageframe1.page1.text2.value
replace cliente.dni with thisform.pageframe1.page1.text3.value
endif
grv=0

pero no me funcioana, hace cualq cosa ¿ en q parte me puedo estar equivocando? 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

RE:boton grabar

Publicado por jose camilo (40 intervenciones) el 25/02/2009 13:56:21
te cambiare un poco la logica

Select Cliente
Grvs = 0
go top
lOCATE FOR ALLTRIM(codigo) == ALLTRIM(thisform.pageframe1.page1.text1.value)

If !Found()
grvs=messaggebox("Cliente no existe deseas grabarlo",16+4,"Datos Nulos")
Do Case
Case grvs=6
thisform.thisform.pageframe1.page1.text1.setfocus
Return .F.
Case Grvs = 1
append blank
EndCase
EndIF
replace cliente.codigo with thisform.pageframe1.page1.text1.value
replace cliente.apellido with thisform.pageframe1.page1.text2.value
replace cliente.dni with thisform.pageframe1.page1.text3.value

La logica es:No existe entonce valido y si me da permiso a grabar hago el appen blank y actualiso
si existe atualiso los datos del cliente si es k se ha modificado algo

PD ve pensando en utilizar cliente con indice
si este es tu caso utiliza el seek es mas rapido
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