Hola Amigos.
Aquí con una duda que no sé cómo resolver, esperando como siempre vuestra amabilidad, resulta que tengo una dbf donde un campo se llama DOCUMENTO y el otro REFERENCIA, ambos son char y tienen 6 de longitud ... en el campo Documento va un número que a veces se repite en el campo Referencia, pero no son iguales en la misma linea, el numero de Documento está en el Registro 124 y el mismo numero está en Referencia pero en el Registro 16 (ver imagen).
Que condición o sentencia debo escribir para que me muestre todos los pares que existan en la dbf ?
Documento == Referencia (no sirve)
De antemano, muchas gracias.
Louis
Ver Repeticiones
Moderator: Rathinagiri
Ver Repeticiones
- Attachments
-
- REFERENCIA.jpg (46.83 KiB) Viewed 2847 times
Last edited by LOUIS on Fri Aug 19, 2016 4:45 pm, edited 1 time in total.
Re: Ver Repeticiones
LIST FOR DOCUMENTO=X.OR.REFERENCIA=X
Re: Ver Repeticiones
Estimado:
Le agradezco por su respuesta a mi inquietud, pero la solución que Ud. me da, es cuando Yo conozco el número que busco, entonces ahí sí funciona ...
En el caso que expongo, yo no sé cuáles son los números que hay o puedan existir en la tabla dbf, con idéntico número en Documento y Referencia, pero en distintas lineas de grabación, por eso en el gráfico señalo con la flecha el número 300200, pero Yo no conozco este número, lo puse como ejemplo nada más.
Ojalá alguien tenga otra idea
... Gracias nuevamente.
Le agradezco por su respuesta a mi inquietud, pero la solución que Ud. me da, es cuando Yo conozco el número que busco, entonces ahí sí funciona ...
En el caso que expongo, yo no sé cuáles son los números que hay o puedan existir en la tabla dbf, con idéntico número en Documento y Referencia, pero en distintas lineas de grabación, por eso en el gráfico señalo con la flecha el número 300200, pero Yo no conozco este número, lo puse como ejemplo nada más.
Ojalá alguien tenga otra idea

Re: Ver Repeticiones
Hola Louis
Para eso, (así de primera intención) tendrías que leer varias veces la DB.
1.- Leer el primer registro y tomar el valor del campo DOCUMENTO
2.- recorrer toda la DB comparando el valor que guardaste contra el campo REFERENCIA
3.- guardar el (los) registros que cumplan la condicion.
1.- Leer el segundo registro y tomar el valor del campo DOCUMENTO
2.- ......
3.- ......
Para eso, (así de primera intención) tendrías que leer varias veces la DB.
1.- Leer el primer registro y tomar el valor del campo DOCUMENTO
2.- recorrer toda la DB comparando el valor que guardaste contra el campo REFERENCIA
3.- guardar el (los) registros que cumplan la condicion.
1.- Leer el segundo registro y tomar el valor del campo DOCUMENTO
2.- ......
3.- ......
Andrés González López
Desde Guadalajara, Jalisco. México.
Desde Guadalajara, Jalisco. México.
Re: Ver Repeticiones
Creo que la solucion es mas o menos asi:
Espero te ayude...
Code: Select all
IDOC:="IDOC.NTX"
IREF:="IREF.NTX"
USE TABLA.DBF ALIAS T1
INDEX ON DOCUMENTO TO (IDOC)
INDEX ON REFERENCIA TO (IREF)
SET INDEX TO (IDOC),(IREF)
T1->(DBGOTOP())
DO WHILE !T1->(EOF())
XDOC:=T1->DOCUMENTO
DO WHILE T1->DOCUMENTO=XDOC.AND.!T1->(EOF())
T1->(DBSKIP())
ENDDO
POSREG:=T1->(RECNO())
SET ORDER TO 2 //t1->(indexord(2))
IF T1->(DBSEEK( XDOC ))
MSGINFO("El Documento "+xdoc+"está en Referencia")
ENDIF
SET ORDER TO 1 //t1->(indexord(1))
T1->(DBGOTO( POSREG ))
ENDDO
USE
***
Re: Ver Repeticiones
Excelente solución ASESORMIX
Muchas Gracias
Muchas Gracias
