RF wrote:Ya estamos matando pulgas a cañonazos otra vez !!!!!
Es mucho mas rapido utilizar una relacion que crear un archivo temporal.
1) Se abren primero las bases de datos hijas, la condicion es que esten indexadas sobre el campo sobre el cual se establece la relacion:
USE hija1
SET INDEX TO....
USE hija2
SET INDEX TO
USE hija3
SET INDEX TO...
2) Se abre la base de datos padre y se relaciona sobre las hijas indicando claramente el "alias" dela hija y el campo comun en la padre, en forma de bloque de codigo y como cadena de caracteres, la base de datos padre puede estar indexada sobre cualquier criterio, no necesariamente el campo que establece la relacin:
USE padre
SET INDEX TO
padre->(DBSETRELATION(hija1,{|| campo_comun},"campo_comun"))
padre->(DBSETRELATION(hija2,{|| campo_comun},"campo_comun"))
padre->(DBSETRELATION(hija3,{|| campo_comun},"campo_comun"))
DBSETRELATION (<alias de la hija>,;
<code block con el nombre campo comun PADRE>,;
<string con el campo comun en el PADRE).
3) Para usarla en un reporte, se hace referencia al ALIAS de la hija, indicando el campo de la hija que se quiere imprimir
REPORT oReport......
COLUMN DATA padre->campo....
COLUMN DATA hija1->campo
COLUMN DATA hija2->campo
COLUMN DATA hija3->campo
.......
Y listo, no es necesario crear ninguna base de datos temporal ni crear funciones yq evayan y busquen los datos.
Hola Rene buenos dias como esta maestro, en el caso mio, creo que esta más o menos complicado, pero me gustaria alguna sugerencia tuya o mas fácil o metodo que se pueda decir, te explico yo tengo un programa de contabilidad hecho a la medida de la empresa con su captura de cuenta y referencia de facturas, bueno mes a mes se hace cierre del ejercicio ejemplo enero 2007 con la base de datos creada desde inicio MOVT0107.DBF y al mismo momento se va creando nueva base de datos siguiente MOVT0207.DBF y asi sucesivamente como podras imaginar, tengo desde el año 2002 bases de datos diferentes creados por el cierre del mes contable desde MOVT0902.DBF hasta la MOVT0207.DBF del año en curso, bueno yo tengo que crear archivo temporal al pedir reportes de cuentas auxiliar inicial por ejemplo desde la cuenta: 2106-0002-1601 hasta la cuenta 2106-0002-9999 y con mes y año inicial que es 0902 hasta 0207, he ahi ese detalle que yo creo un archivo temporal para el barrido de todas las cuentas y bases de datos a imprimir o consultar , ahora usted con su experiencia hay otro metodo o forma de hacer esa busqueda mas rapida ? nunca he intentado hacer con set relacion, porque son mas de 54 bases de datos diferentes, espero sugerencias y conocimientos a todos los amigos del foro
Saludos
Adriano C. C.
acc69@hotmail.com