Reporte de Visual fox generado de 3 tablas

Hola experto, espero me puedas ayudar en esta consulta, tengo un reporte que genero desde 3 tablas factura, derechos y gastos, en la tabla factura guardo todo lo que va en la cabecera de reporte y en la tabla derechos todo lo referente a derechos que se pagan, y gastos los gastos ocasionados; las tres tablas están con relacionadas por el numfact; de ahí he creado en el formulario del reporte 3 consultas sql para cada una de las tablas que me generan las vista1, vista2, vista3. Y al hacer el reporte toda la cabecera me sale muy bien y en el centro donde vas los detalles debe ir los derechos y los gastos. Pero uno de ellos sale bien detallado y el otro repite los datos según la cantidad de veces que aparece el otro.
Ejemplo:
Derechos gastos
*******************************************************
IPM 500 gastos operativos 200
IGV 200 gastos operativos 200
SERV. 150 gastos operativos 200
Ese es mi problema dado que los gastos pueden ser 1, 2,.. Pero se repiten la cantidad de veces que aparecen los derechos.
Muchas gracias por la atención prestada, y porque siempre nos ayudas con las dudas que tenemos muchos usuarios, un abrazo buen día y te dejo también mi correo [email protected].

1 Respuesta

Respuesta
1
MMM buen día, tienes un problema
Y el problema es que no sabes combinar comandos sql pero no te preocupes aquí te explicare
Si tienes 3 tablas lo aconsejable es :
Tener un campo llave para las 3
si quieres que el reporte se genere por las tres pero por ejemplo el dato de una tabla que salga primero despues la descripcion que son 2 tablas lo que haces es unir las tablas
select a.campo1 , a.campo2 , b.campo1 , b.campo from tabla1 a inner join tabla2 b on a.campollave = b.campollave into cursor temporal
brow
asi es como unes las tablas donde lo que dice esa sentencia es
tome campo1 y campo2 de la tabla 1 y campo1 y campo2 de la tabla 2 entonces fox te pregunta pero como los voi a tomar sino se sin iguales entences tu le dice on es decir que se cumpla la condicion que la tabla1 en su llave primaria sea igual a la de la tabla 2
y eso es todo, espero que te sirva de lo contrario comenta nuevamente y te ayudo talves con tu proyecto
Hola experto eso de combinar en sql si lo se, lo hice de esa forma que te comente al no obtener resultados con el sql combinado.
Mira mi sql es este:
X=alltrim(thisform.text1.value)
Select factura.nrofactura,factura.nrofactura,factura.fecha,factura.codcli,;
fact_derechosadu.nrofactura,fact_derechosadu.derecho,fact_derechosadu.montod,;
fact_gastos.nrofactura,clientes.*;
From Factura,fact_derechosadu,fact_gastos,clientes into cursor Vista;
Where Factura.nrofactura==Fact_derechosadu.nrofactura and;
Factura.nrofactura==Fact_gastos.nrofactura and;
Factura.codcli==Clientes.codcli and;
Factura.nrofactura==X;
Order By Fact_derechosadu.items,Fact_gastos.items
Report Form reporte noco preview
donde POR es el numero de la factura
mi problema es que en el reporte
yo pongo en el detalle del reporte lo siguiente
*************************************************************
  vista.derecho      vista.montod            vista.gasto    vista.montog
***********************************************************
Y obtengo en el reporte lo siguiente de detalles:
IPM 200.50 GASTOS OPERATIVOS 400.00
IGV 152.30 GASTOS OPERATIVOS 400.00
SERV. 7850.00 GASTOS OPERATIVOS 400.00
Por ejemplo se repite gastos operativos varias veces cuando solo debe ser 1 en este caso.
Por más que en el reporte he encontrado una opción que dice print repeat valores le he puesto que no se repitan.
Pero igual salen, esa es mi duda ojala me puedas ayudar, gracias
Primero te recomiendo que mires si tu cursor esta correcto, de lo contrario es por que tu comando sql esta malo para ver si tu cursor esta correcto para eso solo mete tu consulta o tu sql en un cursor, creo que eso lo podrás hacer por comandos into cursor cursor_temp
después pones brows
y listo miras si los items o los registros vienen como tu lo quieres, de lo contrario tu consulta esta mala, yo más creo que tu consulta esta mala
Pero bueno saludos sino entiendes o quieres que te ayude con tu consulta me indicas
Hola experto bueno aun no he solucionado el problema pero creo que más o menos ya me doy cuenta de lo que pueda estar pasando, como te dije tengo 3 tablas factura, derechos y gastos y las tres se unían por la clave nrofactura; pero creo que eso es lo que esta mal, dado que se esta relacionando derechos con gastos cuando ellas no tienen nada en común pero por usar la misma clave lo están haciendo.
Saludos y muchas gracias por la atención prestada, creo que cuando cambie eso se arreglara mi problema. Saludos y gracias por tu ayuda.
Ok espero que lo soluciones, y que todo te salga bien .

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas