Replace

Hola experto ya logre terminar y exportar los registros de un txt a un dbf y luego de un dbf a la tabla principal porque estaban los campos en desorden, pero ahora tengo un problema que no puedo resolver solo se trata de colocar "N" a los clientes Nuevos que se atienden en este año solo para el 2008 y "C" a los clientes que se atienden más de una vez osea por primera vez en el año N y por segunda vez el mismo cliente es "C" gracias por su atención.

1 Respuesta

Respuesta
1
Necesito que me expliques mejor el tema, por que no tengo la estructura de tu tabla, descríbeme por favor la estructura, nombre de tu tabla o nombre de los campos, como esta organizado para enviarte el código que debes aplicar para que te haga el replace.
Ok amigo, primero recibo los registro en la tabla borrador más o menos 250 registros esta tabla tiene campos(columnas) llamado cod_cliente, fecha_atencion, condición, luego hago un append from a la tabla principal que tiene los mismo campos(columnas) pero esta tabla ya tiene como 1500 registros almacenados, lo que necesito cuando pase los registros de la tabla borrador a la tabla principal verifique los cod_cliente si ya existen son "C" de lo contrario serian "N" estas variables deben de guardarse en el campo "condicion".
Gracias amiguito
Ok, ahora si, bueno, me supongo que el agregado del borrador a la tabla principal siempre debe ocurrir, o sea, si un registro ya existe igual se inserta, solo con la diferencia de que variara el valor del campo CONDICIÓN. Ok, esto solamente podrás hacerlo con una función previa que verifique primero antes del append from y podría ser así:
Use borrador
Replace condicion with 'N' all &&primero lo llenamos con N
replace condicion with 'C' for siExiste(cod_cliente)           &&luego con C los que corresp.
Sele principal
Append from borrador
return  &&fin
function siExiste(xCodCliente)
sele principal
locate for cod_cliente=xCodCliente
if found()
             xRet = .t.
else
              xRet = .f.
endif
return(xRet)
La funcion siExiste retorna .T. o .F. segun el caso, es una funcion simple, para el ejemplo te hice con locate for, puede usar seek() si tienes indices que sera mucho mas rapido.
Si tienes dudas o no entendí tu necesidad me avisas.
Hola ya lo intente pero todo los archivos los vuelve N y otros los deja en blanco.. te explico con un ejemplo amigo
si el cliente 50 se atiende en este año por primera vez viene hacer "N", pero si el mismo cliente 50 viene por segunda vez es "C" y si es por tercera vez sigue la "C" etc...
Entonces esto me ayuda para saber cuantos cliente fueron nuevos y cuantos fueron continuadores.
Cuando yo agrego los registros de la tabla borrador a la tabla principal estos códigos de cliente deben ser verificados en la tabla principal para saber si existen y si es así los agregados se convierten en "C" pero si no están en la tabla principal son "N" Gracias por su ayuda
Los códigos en blanco que te los devuelve probablemente son las que ya estaban en original, enla principal, así que hay que rellenarlos antes de ejecutar el ejemplo, el ejemplo que te prepare es justamente para lo que mencionas, prueba estos cambios
Use borrador
go top
do while !eof8)
  if siExiste(cod_cliente) 
     replace condicion with 'C' 
  else
   replace condicion with 'N'
Endif
  Se le borrador
   Skip
Enddo
Se le principal
Append from borrador
return &&fin
function siExiste(xCodCliente)
sele principal
locate for cod_cliente=xCodCliente
if found()
xRet = .t.
else
xRet = .f.
endif
return(xRet)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas