on 10-25-2013 10:12 PM
Hola a todos,
Tengo un reporte en Crystal que recibe varios parámetros, uno de ellos es un rango de fecha. La tabla que consulta el reporte tiene dos campos 'FECHAINICIO' y 'FECHAFIN', quiero saber como poder manipular ese parámetro dentro del query de crystal con el fin de poder filtrar los registros por el periodo o si eso se puede hacer mediante la ayuda de las fórmulas.
Se que esto se puede hacer si usara dos parámetros, pero necesito usar el rango. ¿Ideas?
Gracias.
Katherine Zubieta.
Hola Katherine
Lo que tu necesitas es por ejemplo: consultar los datos del 01-10-2013 al 15-10-2013 segun los valores de tu tabla, esto en Crystal Report??
Si es asi te podria mostrar un SP que tengo para el Corte de Caja Diario y en SBO lo corro en C.R. este te pide en mi caso el numero de Tienda, fecha de inicio y fecha final y te da como resultado el reporte que tu crees.
saludos.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Ok. Supongo que tu ya tienes tu consulta solo es de que la metas a un stored procedure. Te dejo el mio para que tomes una guia. Es algo grande pero si le dedicas un poco de tiempo seguro hay algo que te ayuda. Este es el SP
USE [Sbo_Test-23-Oct]
GO
/****** Object: StoredProcedure [dbo].[_SBO_CORTECAJA] Script Date: 10/25/2013 16:43:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_SBO_CORTECAJA]
@FECHAINICIO DATE
,@FECHAFIN DATE
,@BODEGA NVARCHAR(2)
AS
SELECT T0.[DocDate], T0.[CardCode], T0.[CardName],
T0.[DocNum], T0.[NumAtCard], T0.[DocTotal], T0.[U_MPago], T0.[U_Banco], T0.[U_NoCheque],
T0.[U_NAutoTc], T1.[ItemCode], T1.[Quantity], T1.[PriceAfVAT], T1.[GTotal], T1.[WhsCode],
t0.U_Efectivo, t0.U_Tarjeta
FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry
Where T1.[WhsCode]=@BODEGA and T0.[DocDate]>=@FECHAINICIO and T0.[DocDate]<=@FECHAFIN
AND not exists
(select distinct a.series from ORIN a inner join RIN1 b on a.docentry=b.docentry
INNER JOIN NNM1 C ON A.Series = C.Series where b.baseref=T0.docnum
AND C.SeriesName='ANULAR')
UNION
SELECT T0.[DocDate], T0.[CardCode], 'Anulada' CardName,
T0.[DocNum], T0.[NumAtCard], 0, T0.[U_MPago], T0.[U_Banco], T0.[U_NoCheque],
T0.[U_NAutoTc], T1.[ItemCode], 0, 0, 0, T1.[WhsCode],
t0.U_Efectivo, t0.U_Tarjeta
FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry
Where T1.[WhsCode]=@BODEGA and T0.[DocDate]>=@FECHAINICIO and T0.[DocDate]<=@FECHAFIN
AND exists
(select distinct a.series from ORIN a inner join RIN1 b on a.docentry=b.docentry
INNER JOIN NNM1 C ON A.Series = C.Series where b.baseref=T0.docnum
AND C.SeriesName='ANULAR')
UNION
SELECT T0.[DocDate], T0.[CardCode], T0.[CardName],
T0.[DocNum], T0.[NumAtCard], -T0.[DocTotal], T0.[U_MPago], T0.[U_Banco], T0.[U_NoCheque],
T0.[U_NAutoTc], T1.[ItemCode], -T1.[Quantity], -T1.[PriceAfVAT], -T1.[GTotal], T1.[WhsCode],
t0.U_Efectivo, t0.U_Tarjeta
FROM ORIN T0 INNER JOIN RIN1 T1 ON T0.DocEntry = T1.DocEntry
INNER JOIN NNM1 C ON T0.Series = C.Series
Where T1.[WhsCode]=@BODEGA and T0.[DocDate]>=@FECHAINICIO and T0.[DocDate]<=@FECHAFIN
AND C.SeriesName='Fiscal'
Y asi lo llamo desde Crystal:
el tipo de valor de los parametros Fecha1 y Fecha 2 es "Fecha y del primero es cadena.
Asi te pide los parametros en Crystal:
y por ultimo asi se ve en SAP:
Saludos, espero te ayude.
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.