Ver la Versión Completa : Quiebre por fecha en reporte
oscarac
18-05-2011, 04:41:59
buenas noches....
estoy haciendo un reporte en cual debe quebrar por fecha, el problema que tengo es que las fechas me las captura asi
11/05/2011 14:24:00
11/05/2011 14:24:00
11/05/2011 14:24:00
11/05/2011 14:26:00
11/05/2011 14:26:00
11/05/2011 14:26:00
11/05/2011 14:28:00
Entonces en el reporte coloque una banda qrGroup en la cual puse la expresion qryConsumo.fechaDoc
el asunto es que me muestra en 3 grupos (cuando deberia ser 1), me esta considerando la hora tambien...
como puedo hacer para que en la consulta me salga solo la fecha y no la hora?
en la tabla (MS SQL SERVER 2000) tengo el campo en smalldatetime
alguna sugerencia?
gracias
Caral
18-05-2011, 04:55:04
Hola
Probaste Display format?
Saludos
oscarac
18-05-2011, 04:56:47
si, ya probe con DisplayFormat
este es el query que hago
Select C.Tdc, C.Doc, C.f_Doc, C.Hora, C.Aux, T.Descl As Trabajador, C.TOT, A.Descl As Producto
from (((tblConsumoC C
Left Join tblConsumoD D on (C.TDC = D.TDC and C.DOC = D.DOC))
Left Join tblTrabajador T on C.Aux = T.KOD)
Left Join TblArticulo A on D.KOD = A.KOD)
Where C.f_doc >= '01/05/2011' and C.f_doc <= '17/05/2011'
Order by C.AUX, C.f_DOC
quiza en el query deba truncar algo?
Caral
18-05-2011, 04:59:51
Hola
No veo nada raro en el select, me parece que el asunto esta en como se guarda la fecha y como se muestra.
Como usaste el display format?, en donde ?.
Saludos
oscarac
18-05-2011, 05:02:34
el select no tiene nada de malo, es mas me muestra la informacion pero como mencione antes, me la muestra con hora, me gustaria que solo me muestre la fecha
el displayformat lo use en el campo del query
Caral
18-05-2011, 05:04:45
Hola
Intenta algo como esto en el evento beforeopen del query:
procedure TRFactura.ADOQuery1BeforeOpen(DataSet: TDataSet);
begin
AdoQuery1Fecha.DisplayFormat := 'dd mm yyyy';
end;
A ver que pasa.
Saludos
oscarac
18-05-2011, 05:10:40
mmmm
no no funciona...
osea basicamente quiero que el "quiebre" (qrGroup -> expresion = qryConsumoTrabajador.f_Doc)
solo me coja la fecha y no la hora
Caral
18-05-2011, 05:13:45
Hola
Trataste con ShortDateFormat antes del query ?.
ShortDateFormat := 'yyyy/mm/dd';
Saludos
oscarac
18-05-2011, 05:18:53
si ya probe y nada...
que raro
Caral
18-05-2011, 05:25:31
Hola
Se menciona que la fecha en sql server se guarda en formato fecha hora.
Tambien se dice que se puede separar al ser mostrado como float.
El asunto es mostrar el dato por medio de un parametro con el uso de INT()
Segun entiendo.
Saludos
oscarac
18-05-2011, 05:30:54
buscando en el internet encontre una solucion...
la coloco aqui quiza a alguien le pueda ayudar
Select C.Tdc, C.Doc, dbo.SoloFecha(C.f_Doc) As f_DOC, C.Hora, C.Aux, T.Descl As Trabajador, C.TOT, A.Descl As Producto
from (((tblConsumoC C
Left Join tblConsumoD D on (C.TDC = D.TDC and C.DOC = D.DOC))
Left Join tblTrabajador T on C.Aux = T.KOD)
Left Join TblArticulo A on D.KOD = A.KOD)
Where C.f_doc >= '01/05/2011' and C.f_doc <= '17/05/2011'
order by C.Aux, c.f_doc
y la funcion soloFecha es como sigue
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER FUNCTION dbo.SoloFecha(@Fecha datetime)
RETURNS datetime AS
BEGIN
declare @FechaAux datetime
set @FechaAux = @Fecha
set @FechaAux = dateAdd(hh, -datePart(hh, @Fecha), @FechaAux)
set @FechaAux = dateAdd(mi, -datePart(mi, @Fecha), @FechaAux)
set @FechaAux = dateAdd(ss, -datePart(ss, @Fecha), @FechaAux)
set @FechaAux = dateAdd(ms, -datePart(ms, @Fecha), @FechaAux)
return @FechaAux
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
eso me jala solo las fechas.....:p:p:p:p
Caral
18-05-2011, 05:33:21
Hola
Me alegro que lo solucionaras.
Esta podria ser otra solucion:
var Fecha1, Fecha2: TDateTime;
begin
Fecha1:= 01/05/2011;
Fecha2:= 17/05/2011;
TuQuery.Sql.Text:='
Select C.Tdc, C.Doc, C.f_Doc, C.Hora, C.Aux, T.Descl As Trabajador, C.TOT, A.Descl As Producto
from (((tblConsumoC C
Left Join tblConsumoD D on (C.TDC = D.TDC and C.DOC = D.DOC))
Left Join tblTrabajador T on C.Aux = T.KOD)
Left Join TblArticulo A on D.KOD = A.KOD)
Where C.f_doc >= :f1 and C.f_doc <= :f2
Order by C.AUX, C.f_DOC'
TuQuery.Parameters[0].AsDateTime := INT(Fecha1.Date);
TuQuery.Parameters[1].AsDateTime := INT(Fecha2.Date);
end;
Saludos
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.