Inicio > Visual Fox Pro > davsoft > Sigo con el replace

Sigo con el replace

Experto:
Usuario: Anónimo Fecha: 10/09/2008
Valoración: Categoría: Visual Fox Pro
08/09/2008
Usuario
Hola amigo buenos dias no quise molestarte pero no logro terminar este programita, necesito que ponga nuevos y consultantes ya hize todo lo que me dijistes pero no se donde esta mi error, solo necesito colocar en la condicion "N" o "C" si el codigo_cliente no existe en la tabla quiere decir que es la primera vez que se atiende cuando vuelva por segunda vez el mismo cliente pondre "C", todo el codigo lo coloque en un prg porque en un boton de comando me sale un error que dice "que no pueden contener procedimientos o definiciones de clases anidadas", luego tuve que quita los selec porque no los reconce. amigo es mucho pedir si te envio mi archivo solo es dos tablas y dos formularios gracias
use "C:\Informes\borrador.dbf" 
go top 
do while !eof()
 if siExiste(codigo_cliente) 
replace condicion with 'C' 
else 
replace condicion with 'N' 
endif 
use "C:\Informes\borrador.dbf" 
skip 
enddo 
use "C:\Informes\principal.dbf"
append from "C:\Informes\borrador.dbf"
 return &&fin 

 function siExiste(xcodigo_cliente) 
use "C:\Informes\principal.dbf" 
locate for codigo_cliente=xcodigo_cliente 
if found() 
xRet = .t. 
else 
xRet = .f. 
endif 
return(xRet)
09/09/2008
mitchelljuar, experto respondiendo en Visual Fox Pro
Experto
Hola amigo, disculpa que te di esta solucion que solo es valida en un archivo PRG, no sabia que estabas trabajando en un form, para solucionar esto debes quitar la funcion siExiste y ponerlo como un metodo de la siguiente manera.
Te vas en formulario - nuevo metodo,  te pedira el nombre y le pones siExiste el resto lo dejas todo igual, luego si vas a propiedades del form en otros encontraras el metodo que definiste, es como el metodo click tb aparecera en el listado de eventos, bueno abres y pegas el codigo de la funcion siExiste() pero solo a partir de la segunda linea, en la primera linea le pones
lparameter xcodigo_cliente            
en vez de function siExiste(xcodigo_cliente)
luego el resto igual, ahora la diferencia que tendras tambien es cuando le llames, en vez de
if siExiste(codigo)
pondras asi
if thisform.siExiste(codigo)
 
y listo, con esto sin errores, otro camino que puedes tomar es crear un prg totalmente aparte  que se llame siExiste.prg   y pegas ahi todo el codigo, pero mejor pruebas la primera opcion ya que trabajas con form y no estaras llenando de archivos tu aplicacion.
Un saludo
 
09/09/2008
Usuario
ok amigo gracias ya lo intente pero nada te muestro un ejemplo de como deberia quedar
primero en la tabla borrador el campo condicion esta vacio.
borrador                                             principal
codigo_cliente    condicion                  codigo_cliente           condicion
01                                                              01                           N
01                                                              02                           N
02                                                              03                           N
03                                                              03                           C
04                                                              04                           N
04                                                              05                           N
al final la tabla principal deberia quedar asi:
codigo_cliente      condicion
01                             N
01                             C
01                             C
02                             N
02                             C
03                             N
03                             C
03                             C
04                             N
04                             C
04                             C
05                             N
10/09/2008
mitchelljuar, experto respondiendo en Visual Fox Pro
Experto
Entiendo, enviame tu codigo y tus tablas a davsoft10@hotmail.com  y asi vere elproblema en donde radica, tal vez te ayudare mejor, Espero tu archivo
un saludo
10/09/2008
Usuario
Mi buen amigo muchas gracias por preocuparte, encontre el problema y te agradezco mucho.
 Saludos cordiales.
Enlaces patrocinados