Replace

Hola experto necesito revisar en toda mi tabla el código del cliente, cuando lo encuentre, en la condición del la primera coincidencia lo reemplazare con "N" y el resto con "C", pero no esta resultandome con esta linea de códigos que tengo... A todos le pone "C"
select tabla1
scan
set order to codigo
seek codigo
if found()
replace all condicion with "N"
else
replace all condicion with "C"
Endif
Endscan

3 Respuestas

Respuesta
1
Yo lo haría así:
select tabla1
set order to codigo
if seek("codigo")
   Replace condicion with "N" &&si lo encuentra lo reemplaza de lo contrario no
Endif
Respuesta
1
Hay dos problemas el primero estás utilizando mal la sentencia Scan y segundo ¿qué representa código?
Hola buen día disculpe código representa el código del cliente que es de tipo carácter le menciono con un ejemplo del resultado que necesito. Ingresa un cliente con el código 12345 en el año más o menos 10 veces la primera vez necesito que lo localize y en condición coloque "N" las otras 9 veces debería ser "C" pero no puedo lograrlo
La solución podría ser la siguiente:
Locate For Tabla.codigo = "12345"
If Found() Then
  Replace Tabla.condicion With "N"
  Locate Rest For Tabla.codigo = "12345"
  Do While Found()
        Replace Tabla.condicion With "C"
        Continue
  Enddo
  Else
     Wait Window "No se encontró el código especificado."
Endif
Algo como lo anterior debería solucionar el problema.
Respuesta
1
¿No estoy entendiendo hay varios reg con el mismo código en la tabla?
Si es asi filtra la tabla por el codigo q estas buscado y al primer reg ponle c
sele tabla1
set order to codigo
set filter to codigo=codigo  &&& esto esta mal no deben llevar el mismo nombre
go top
repla all condicion with 'C'
go top
repla condicion  with 'N'
Hoja asea así pero si no lo que esta fallando es el nombre código en la tabla y en el form debe ser otro
Gracias pero este procedimiento lo debo hacer mensualmente me refiero que me envían la información y yo debería hacer un procedimiento para hacer los cambios en la tabla de esa manera, por ejemplo envían un total 10,000 registros el procedimiento debería ordenar por código ejemplo la primera coincidencia tiene 10 registros con código 123 el primero le pone "N" y los otros 9 "C"
El ejemplo que te mande trabaja solo que debes crear un cursor con los códigos únicos para que vayas filtrando y haciendo el procesoanterior hasat que no existan códigos es decot while ! Eof()

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas