FoxPro/Visual FoxPro - Problemas con Asignacion de Folios

   
Vista:

Problemas con Asignacion de Folios

Publicado por Rafael Valdez (21 intervenciones) el 08/01/2010 22:28:34
Hola buenas tardes, este foro me ha ayudado mucho cuando tengo dudas sobre la programacion, el dia de hoy estoy tratando de hacer un form que me cambie los folios de diferentes tablas. Es decir, el cliente factura con su numero consecutivo, pero si el un dia no quiso el numero que el sistema le arrojo, entonces le hice este form donde le digo:

Que Folio quieres cambiar : X
Con que Folio lo quieres Reemplazar: Y

Por lo tanto X se debe de poner Y, el codigo que uso es el siguiente ( solo pondre el de tres tablas ).

respuesta=messagebox("Deseas continuar con la actualizacion de folios ?",4+32,"Admin System")

if respuesta=6

sele fac
scan
if fac.folio = val(thisform.combo1.value)
repl folio with thisform.text1.value
endif
ends

sele tfac
scan
if tfac.folio = val(thisform.combo1.value)
repl folio with thisform.text1.value
endif
ends

sele facts
scan
if facts.folio = val(thisform.combo1.value)
repl folio with thisform.text1.value
endif
ends

endif

Lo raro es que ya me funcionaba, nada mas que le quise meter las diseño como por ejemplo que marke errores si esta repetido uno y cosas asi pero la neta lo regrese a este codigo y me sigue dando problemas.

A por cierto, el problema es que solo me reemplaza el primer registro de cada tabla :S, Es decir, si en una tabla tengo:

Folio Desc. total
1 xxxxx 200
1 yyyyyyyy 300
2 ttttt 150
3 yyyyrrr 200

Y le dices al sistema que te cambie el folio 1 por el 200 por decirlo asi....solo te cambia el primero ( 1 xxxx 200 ) y el otro lo deja igual, pues el scan es buena herramienta para esto pero ps k estara pasando ??.

Tanto rollo no ? jajaj espero su ayuda, 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:Problemas con Asignacion de Folios

Publicado por es_binario (757 intervenciones) el 09/01/2010 07:32:30
por que no lo haces con sql

por cierto el dato que tomes del Textbox ponlo en una variable

*// asignas las variables
LOCAL fol_x, fol_y
STORE Thisform.Textbox1.value TO fol_x
STORE Thisform.Textbox2.value TO fol_y

*// verificas que no sean nulos
IF ISNULL(fol_x) OR ISNULL(fol_y)
MESSAGEBOX("Ingrese primero los folios")
RETURN && termina por ser valores nulos
ENDIF

*// aqui verificas las coincidencias
SELECT COUNT(folio) as folios_encontrados FROM fac;
WHERE fac.folio == fol_x INTO CURSOR tmp_cur_fol
IF ISNULL(folios_encontrados)
MESSAGEBOX("El folio No existe en Facturas")
RETURN && termina por que no hay folios a remplazar
ENDIF

*// finalmente si llega a este punto es por que todo esta bien
*// y listo para remplazar
*// todo con un simple update
UPDATE fac SET fac.folio = fol_y WHERE fac.folio = fol_x

MESSAGEBOX("Se ha cambiado el folio :" + ALLTRIM(STR(fol_x)) +;
" por :" + ALLTRIM(STR(fol_y)))

Saludos desde Mexico
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:Problemas con Asignacion de Folios

Publicado por rafael valdez (21 intervenciones) el 11/01/2010 14:46:23
Muchas Gracias compa tu codigo me sirvio jeje, pero tambien encontre otro modo, resulta que el campo que queria cambiar era un campo clave, a la tabla solo le agrege otro campo clave, hise la ordenacion por el nuevo campo clave y realice el scan y listo. :)

Muchas Gracias.
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