Mi código no guarda lo que hay en texts, espero ayuda

A qui esta mi código, ya lo revise y no encuentro nada...
select 1 *selecciono tabla ventaclientes y la abro en shared
x=.f.
c=0
DO while((c<100).and.(x<>.t.))
x=rlock()
c=c+1
wait windows at 40,60"ALMACENANDO REGISTRO..."timeout 1
enddo
if x=.t.
replace ide with thisform.text1.value
replace nombre with thisform.text2.value
replace direccion with thisform.text3.value
replace telefono with thisform.text4.value
replace tipo_de_pago with thisform.edit1.value
replace fecha with thisform.text6.value
replace mother_board with thisform.text7.value
replace procesador with thisform.text8.value
replace disco_duro with thisform.text9.value
replace memoria with thisform.text10.value
replace unidad_lectora with thisform.text11.value
replace floppy with thisform.text12.value
replace gabinete with thisform.text13.value
replace monitor with thisform.text14.value
replace teclado with thisform.text15.value
replace raton with thisform.text16.value
replace otros with thisform.text17.value
unlock
* ide1=ide1+1
else
wait windows at 40,60 "NO SE PUEDE GUARDAR EL REGISTRO..."timeout 1
endif
manda mensaje de que esta guaradando como que se traba y al final no guarda nada, espero me puedas ayudar

1 respuesta

Respuesta
1
Espero poder ayudarte...
Creo que a tu codigo le falta el append blank..
Si es que es un alta..
y veo algun problema con el do while.
Para esto que queres hacer, te recomiendo usar set reprocess to
Este comando lo que hace es que puedas definir cuantos intentos se harán hasta que se bloquee el registro.
POr ejemplo:
Set reprocess to 10 (10 intentos)
set reprocess to 10 seconds (10 segundos)
set reprocess to -1 (hasta que se bloquee)
Bueno. modifico un poco tu codigo y quedaria algo asi..
(si no es un alta, sacale el append blank)
set reprocess to 100
select 1
wait windows at 40,60"ALMACENANDO REGISTRO..."timeout 1
append blank
if rlock()
replace ide with thisform.text1.value
replace nombre with thisform.text2.value
replace direccion with thisform.text3.value
replace telefono with thisform.text4.value
replace tipo_de_pago with thisform.edit1.value
replace fecha with thisform.text6.value
replace mother_board with thisform.text7.value
replace procesador with thisform.text8.value
replace disco_duro with thisform.text9.value
replace memoria with thisform.text10.value
replace unidad_lectora with thisform.text11.value
replace floppy with thisform.text12.value
replace gabinete with thisform.text13.value
replace monitor with thisform.text14.value
replace teclado with thisform.text15.value
replace raton with thisform.text16.value
replace otros with thisform.text17.value
unlock
else
wait windows at 40,60 "NO SE PUEDE GUARDAR EL REGISTRO..."timeout 1
endif
Como consejo, te diria que no uses "sele 1" sino que uses el nombre del alias por ejemplo:
Sele articulos
Sele clientes
Sele detalle
Porque en el caso que modifiques tus programas y una tabla se abra en 1 equivocadamente tenes que repasar todo el codigo..
Bueno, espero haberte ayudado
Si es asi, espero tu calificación y que cierres la pregunta
www.keystone.com.ar
Excelentisima respuesta amigo, de veras que ma ha ayudado mucho, funciona de maravilla... No soy muy experto en VFP, pero me esfuerzo por serlo... Estoy a tu servicio... Tu amigo Set Isaí(setin)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas