Query para layout de pagos recibidos Crystal Reports SAP Business One - SAP B1-
Aquí comparto un query que realicé para el comando de un layout de Crystal Reports de SAP Business One para los pagos recibidos (recibos de caja):
---RECIBO DE CAJA FINAL---
SELECT T1.DocNum as 'N° Recibo de Caja',
T1.DocDate as 'Fecha de Pago',
T1.CardCode as 'NIT',
T0.CardName as 'Cliente',
T0.DocNum as 'N° Documento',
T1.transid as 'Operacion',
'FACTURA' as 'Tipo Documento',
T4.SumApplied as 'Valor Documento',
T1.CashSum,
T1.CreditSum,
T1.CheckSum,
T2.CheckNum as 'Numero de cheque',
T7.Ref1 as Comentario,
T1.TrsfrAcct as CUENTA,
(SELECT acctname FROM OACT where AcctCode = T1.TrsfrAcct) as BANCO,
T1.trsfrsum as MONTO
FROM OINV T0
LEFT JOIN ORCT T1
ON T0.ReceiptNum = T1.DocEntry
LEFT JOIN RCT1 T2
ON T1.DocNum = T2.DocNum
LEFT JOIN RCT2 T4
ON T1.DocNum = T4.DocNum
AND T0.DocEntry = T4.DOCENTRY
Left Join OSLP T3
ON T3.SlpCode= T0.SlpCode
left join OJDT T7
ON T0.DocEntry = T7.BaseRef
and T7.TransType = '13'
WHERE T1.DocNum = {?DocKey@}
UNION ALL
SELECT T1.DocNum as 'N° Recibo de Caja',
T1.DocDate as 'Fecha de Pago',
T4.CardCode as 'NIT',
T0.CardName as 'Cliente',
T0.DocNum as 'N° Documento',
T1.transid as 'Operacion',
'ANTICIPO' as 'Tipo Documento',
T0.DocTotal as 'Valor Documento',
T1.CashSum,
T1.CreditSum,
T1.CheckSum,
T2.CheckNum as 'Numero de cheque',
T7.Ref1 as Comentario,
T4.TrsfrAcct as CUENTA,
(SELECT acctname FROM OACT where AcctCode = T4.TrsfrAcct) as BANCO,
T4.trsfrsum as MONTO
FROM ODPI T0
LEFT JOIN ORCT T1
ON T0.ReceiptNum = T1.DocEntry
LEFT JOIN RCT1 T2
ON T1.DocNum = T2.DocNum
Left Join OSLP T3
ON T3.SlpCode= T0.SlpCode
inner join ORCT T4
ON T1.DocNum = T4.DocNum
left join OJDT T7
ON T1.DocEntry = T7.BaseRef
and T7.TransType = '24'
WHERE T1.DocNum = {?DocKey@}
UNION ALL
SELECT T1.DocNum as 'N° Recibo de Caja',
T1.DocDate as 'Fecha de Pago',
T4.CardCode as 'NIT',
T0.CardName as 'Cliente',
T0.DocNum as 'N° Documento',
T1.transid as 'Operacion',
'NOTA CREDITO' as 'Tipo Documento',
-T0.DocTotal as 'Valor Documento',
T1.CashSum,
T1.CreditSum,
T1.CheckSum,
T2.CheckNum as 'Numero de cheque',
T7.Ref1 as Comentario,
T4.TrsfrAcct as CUENTA,
(SELECT acctname FROM OACT where AcctCode = T4.TrsfrAcct) as BANCO,
T4.trsfrsum as MONTO
FROM ORIN T0
LEFT JOIN ORCT T1
ON T0.ReceiptNum = T1.DocEntry
LEFT JOIN RCT1 T2
ON T1.DocNum = T2.DocNum
Left Join OSLP T3
ON T3.SlpCode= T0.SlpCode
inner join ORCT T4
ON T1.DocNum = T4.DocNum
left join OJDT T7
ON T1.DocEntry = T7.BaseRef
and T7.TransType = '14'
WHERE T1.DocNum = {?DocKey@}
UNION ALL
SELECT T1.DocNum as 'N° Recibo de Caja',
T0.DocDate as 'Fecha de Pago',
T0.CardCode as 'NIT',
T0.CardName as 'Cliente',
T1.DocEntry as 'N° Documento',
T0.transid as 'Operacion',
'ASIENTO' as 'Tipo Documento',
T1.SumApplied as 'Valor Documento',
T0.CashSum,
T0.CreditSum,
T0.CheckSum,
0,
T7.Ref1 as Comentario,
T0.TrsfrAcct as CUENTA,
(SELECT acctname FROM OACT where AcctCode = T0.TrsfrAcct) as BANCO,
T0.trsfrsum as MONTO
FROM ORCT T0
LEFT JOIN RCT2 T1
ON T0.DocNum = T1.DocNum
left join OJDT T7
ON T1.DocEntry = T7.BaseRef
and T7.TransType = '30'
where T1.invtype = 30 and T0.DocNum = {?DocKey@}
UNION ALL
SELECT T1.DocNum as 'N° Recibo de Caja',
T0.DocDate as 'Fecha de Pago',
T1.U_Tercero as 'NIT',
T1.AcctName as 'Cliente',
T1.AcctCode as 'N° Documento',
T0.transid as 'Operacion',
'CUENTA' as 'Tipo Documento',
T1.SumApplied as 'Valor Documento',
T0.CashSum,
T0.CreditSum,
T0.CheckSum,
0,
T1.Descrip,
T0.TrsfrAcct as CUENTA,
(SELECT acctname FROM OACT where AcctCode = T0.TrsfrAcct) as BANCO,
T0.trsfrsum as MONTO
FROM ORCT T0
inner JOIN RCT4 T1
ON T0.DocNum = T1.DocNum
where T0.DocNum = {?DocKey@}
---RECIBO DE CAJA FINAL---
SELECT T1.DocNum as 'N° Recibo de Caja',
T1.DocDate as 'Fecha de Pago',
T1.CardCode as 'NIT',
T0.CardName as 'Cliente',
T0.DocNum as 'N° Documento',
T1.transid as 'Operacion',
'FACTURA' as 'Tipo Documento',
T4.SumApplied as 'Valor Documento',
T1.CashSum,
T1.CreditSum,
T1.CheckSum,
T2.CheckNum as 'Numero de cheque',
T7.Ref1 as Comentario,
T1.TrsfrAcct as CUENTA,
(SELECT acctname FROM OACT where AcctCode = T1.TrsfrAcct) as BANCO,
T1.trsfrsum as MONTO
FROM OINV T0
LEFT JOIN ORCT T1
ON T0.ReceiptNum = T1.DocEntry
LEFT JOIN RCT1 T2
ON T1.DocNum = T2.DocNum
LEFT JOIN RCT2 T4
ON T1.DocNum = T4.DocNum
AND T0.DocEntry = T4.DOCENTRY
Left Join OSLP T3
ON T3.SlpCode= T0.SlpCode
left join OJDT T7
ON T0.DocEntry = T7.BaseRef
and T7.TransType = '13'
WHERE T1.DocNum = {?DocKey@}
UNION ALL
SELECT T1.DocNum as 'N° Recibo de Caja',
T1.DocDate as 'Fecha de Pago',
T4.CardCode as 'NIT',
T0.CardName as 'Cliente',
T0.DocNum as 'N° Documento',
T1.transid as 'Operacion',
'ANTICIPO' as 'Tipo Documento',
T0.DocTotal as 'Valor Documento',
T1.CashSum,
T1.CreditSum,
T1.CheckSum,
T2.CheckNum as 'Numero de cheque',
T7.Ref1 as Comentario,
T4.TrsfrAcct as CUENTA,
(SELECT acctname FROM OACT where AcctCode = T4.TrsfrAcct) as BANCO,
T4.trsfrsum as MONTO
FROM ODPI T0
LEFT JOIN ORCT T1
ON T0.ReceiptNum = T1.DocEntry
LEFT JOIN RCT1 T2
ON T1.DocNum = T2.DocNum
Left Join OSLP T3
ON T3.SlpCode= T0.SlpCode
inner join ORCT T4
ON T1.DocNum = T4.DocNum
left join OJDT T7
ON T1.DocEntry = T7.BaseRef
and T7.TransType = '24'
WHERE T1.DocNum = {?DocKey@}
UNION ALL
SELECT T1.DocNum as 'N° Recibo de Caja',
T1.DocDate as 'Fecha de Pago',
T4.CardCode as 'NIT',
T0.CardName as 'Cliente',
T0.DocNum as 'N° Documento',
T1.transid as 'Operacion',
'NOTA CREDITO' as 'Tipo Documento',
-T0.DocTotal as 'Valor Documento',
T1.CashSum,
T1.CreditSum,
T1.CheckSum,
T2.CheckNum as 'Numero de cheque',
T7.Ref1 as Comentario,
T4.TrsfrAcct as CUENTA,
(SELECT acctname FROM OACT where AcctCode = T4.TrsfrAcct) as BANCO,
T4.trsfrsum as MONTO
FROM ORIN T0
LEFT JOIN ORCT T1
ON T0.ReceiptNum = T1.DocEntry
LEFT JOIN RCT1 T2
ON T1.DocNum = T2.DocNum
Left Join OSLP T3
ON T3.SlpCode= T0.SlpCode
inner join ORCT T4
ON T1.DocNum = T4.DocNum
left join OJDT T7
ON T1.DocEntry = T7.BaseRef
and T7.TransType = '14'
WHERE T1.DocNum = {?DocKey@}
UNION ALL
SELECT T1.DocNum as 'N° Recibo de Caja',
T0.DocDate as 'Fecha de Pago',
T0.CardCode as 'NIT',
T0.CardName as 'Cliente',
T1.DocEntry as 'N° Documento',
T0.transid as 'Operacion',
'ASIENTO' as 'Tipo Documento',
T1.SumApplied as 'Valor Documento',
T0.CashSum,
T0.CreditSum,
T0.CheckSum,
0,
T7.Ref1 as Comentario,
T0.TrsfrAcct as CUENTA,
(SELECT acctname FROM OACT where AcctCode = T0.TrsfrAcct) as BANCO,
T0.trsfrsum as MONTO
FROM ORCT T0
LEFT JOIN RCT2 T1
ON T0.DocNum = T1.DocNum
left join OJDT T7
ON T1.DocEntry = T7.BaseRef
and T7.TransType = '30'
where T1.invtype = 30 and T0.DocNum = {?DocKey@}
UNION ALL
SELECT T1.DocNum as 'N° Recibo de Caja',
T0.DocDate as 'Fecha de Pago',
T1.U_Tercero as 'NIT',
T1.AcctName as 'Cliente',
T1.AcctCode as 'N° Documento',
T0.transid as 'Operacion',
'CUENTA' as 'Tipo Documento',
T1.SumApplied as 'Valor Documento',
T0.CashSum,
T0.CreditSum,
T0.CheckSum,
0,
T1.Descrip,
T0.TrsfrAcct as CUENTA,
(SELECT acctname FROM OACT where AcctCode = T0.TrsfrAcct) as BANCO,
T0.trsfrsum as MONTO
FROM ORCT T0
inner JOIN RCT4 T1
ON T0.DocNum = T1.DocNum
where T0.DocNum = {?DocKey@}
como haces para crear el parametro {?DocKey@}
ResponderEliminarHola, el parámetro DocKey@ lo creas en el lado derecho donde dice lista de parámetros, ese DocKey@ cuando subas el layout a SAP B1 será el mismo DocEntry del formulario.
Eliminar