Muchas veces depende tambien del uso que haces de la aplicacion para poder orientarte mejor, tienes que exponer claramente lo que necesitas.
Para hacer un report de una factura, desde crystal reports tienes 2 vias:
1.- Construir una select. Vas seleccionando campos y tablas y cuando tengas todo lo necesario la pasas a un crystal reports. Siempre podrás editarla y añadir campos de tablas a posteriori. Tablas: (INV1, OINV, OCRD, OITM…)
2.- Seleccionar el report con origen en las tablas, seleccionas dichas tablas y luego ya los campos de cada tabla que te hagan falta. En este caso solo tendrás que revisar la relación entre las tablas que se hace en la pestaña vinculos.
Hola Riam
La gran mayoría de datos de una factura se obtienen de las tablas OINV(encabezado) y INV1(DETALLES)
En base a estas tablas puedes generar los informes de ventas y formatos que requieras
SELECT * FROM OINV T0
INNER JOIN INV1 T1 ON T0."DocEntry" = T1."DocEntry"
WHERE T0."DocNum" ='NUMERO DE FACTURA'
SELECT DISTINCT
T0.DocNum AS Factura, ISNULL(R1.Price, T0.GrosProfit) AS Importe_PVP, T0.DocStatus AS Estatus, T0.DocDate AS Fecha, T0.CardCode AS Cliente, T0.CardName AS Nombre,
CASE WHEN T0.DocCur = ‘COL’ THEN ‘CRC’ ELSE T0.DocCur END AS Moneda, T0.DocTotal AS [Total Factura], T0.DocTotalFC, T0.PaidToDate AS [Total Pagado], CASE WHEN LEN(dbo.CRD1.LicTradNum)
= 9 THEN ‘01’ ELSE ‘02’ END AS TIPO_CEDULA, I1.LineStatus, I1.ItemCode, I1.Dscription AS Producto, I1.Quantity AS CANTIDAD, CAST(I1.Price AS money) AS PRECIO, CAST(CASE WHEN I1.TaxStatus = ‘Y’ THEN 13 ELSE 0 END AS numeric)
AS IVI, CAST(I1.Quantity * ISNULL(I1.Price, T0.GrosProfit) AS money) AS TOTAL, OCRD.E_Mail, CASE WHEN I1.Rate = 0 THEN 1 ELSE I1.Rate END AS TipoCambio, I1.Currency,
CASE WHEN I1.Rate <> 0 THEN ‘USD’ ELSE ‘CRC’ END AS MonedaProducto, T0.DiscPrcnt AS Descuento, I1.TaxOnly AS Impuesto, CASE WHEN CAST(I1.VatSum AS numeric) <> 0 THEN 0 ELSE 1 END AS Exonerado,
I1.DocEntry AS EntryDoc, OCRD.LicTradNum AS CEDULA
FROM RDR1 AS R1 RIGHT OUTER JOIN
INV1 AS I1 ON R1.ItemCode = I1.ItemCode AND R1.TrgetEntry = I1.BaseEntry RIGHT OUTER JOIN
OCRD INNER JOIN
CRD1 INNER JOIN
OINV AS T0 ON CRD1.CardCode = T0.CardCode ON OCRD.CardCode = CRD1.CardCode ON I1.DocEntry = T0.DocEntry LEFT OUTER JOIN
ODLN AS OD ON I1.BaseEntry = OD.DocEntry LEFT OUTER JOIN
DLN1 AS D1 ON OD.DocEntry = D1.DocEntry
este es el query que tengo ahorita, pero algunas facturas se filtran y no se porque!! tengo que hacer un reporte completo, ahi pueden ver los campos que tengo!! no ven el porq algunas facturas se filtran?
el detalle de impuesto por linea de producto lo encuentras en la tabla INV4 y esta se una a la tabla INV1 con DocEntry, LineNum y creo que StaCode que viene siendo tu codigo de impuesto
este era el query que ocupaba!! te agradezco mucho mi estimado!! como referencia adicional, para sacar esa info para la factura, deberia hacer un inner join a la tabla OINV por medio del [CardCode] o me equivoco?
A ver Raiam… deberías abrir un tema para cada consulta individual que haces…
No seguir acumulando sobre el mismo.
y en cada tema que se vaya cerrando marcar su solución
Un poco de orden y organización por favor.
Y es más, que lo he revisado… No has pasado por presentaciones…
@Raiam_Quesada, qué paso con este tema?
Lee lo que te recomendaron aquí., marca por favor un mensaje como solución de este tema. Y para futuras dudas, abre temas nuevos
Si la respuesta que más ayudó fue la del compañero @Un_Tal_Erik_J, solo ideal es que marcaras su comentario como solución, no tu comentario, marcar las soluciones también es un buen gesto de reconocimiento para quienes invirtieron un poco de su tiempo en ayudarte.