Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-01-2007
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 18
efelix Va por buen camino
No se muestran los registros en el reporte

Hola a todos. Tengo el siguiente problema. Disculpenme si me extiendo en la explicación del mismo. Tengo un procedimiento almacenado en sql server 2000 con el siguiente código:

Código SQL [-]
CREATE PROCEDURE spAntiguedad
(@Proveedor int)
AS
SELECT Proveedores.IdProveedor, Proveedores.NombreProveedor, Facturas.IdFactura, Facturas.Descripcion, Facturas.Importe, Facturas.FechaRecepcion, DATEDIFF(day, FechaRecepcion, GETDATE()) AS Saldo,
CASE
WHEN DATEDIFF(day, FechaRecepcion, GETDATE()) > 0 AND DATEDIFF(day, FechaRecepcion, GETDATE()) < 31 THEN Facturas.Importe ELSE 0 END MENOSDE30dias,
CASE
WHEN DATEDIFF(day, FechaRecepcion, GETDATE ()) > 30 AND DATEDIFF(day, FechaRecepcion, GETDATE()) < 61 THEN Facturas.Importe ELSE 0 END ENTRE3060dias,
CASE
WHEN DATEDIFF(day, FechaRecepcion, GETDATE()) > 60 AND DATEDIFF(day, FechaRecepcion, GETDATE()) < 91 THEN Facturas.Importe ELSE 0 END ENTRE6090dias,
CASE
WHEN DATEDIFF(day, FechaRecepcion, GETDATE()) > 91 THEN Facturas.Importe ELSE 0 END MASDE90dias
FROM Proveedores INNER JOIN Facturas ON Proveedores.IdProveedor=Facturas.IdProveedor
WHERE (Aplicada = 0) AND Proveedores.IdProveedor=@Proveedor
GROUP BY Proveedores.IdProveedor, Proveedores.NombreProveedor, Facturas.IdFactura, Facturas.Descripcion, Facturas.FechaRecepcion, Facturas.Importe, DATEDIFF(day, FechaRecepcion, GETDATE())
ORDER BY Proveedores.IdProveedor, DATEDIFF(day, FechaRecepcion, GETDATE()) ASC
GO




Este procedimiento lo diseñe para obtener la antigüedad de las cuentas por pagar por proveedores. Como podran apreciar el mismo me genera 4 campos los cuales son:Menos30dias,Entre3060dias,Entre6090dias y Masde90dias en los cuales pone el importe de las facturas que se encuentran pendientes de pago para cada uno de esos rangos. Por ejemplo cuando lo ejecuto en el query analyzer me da esto, voy a poner solamente los campos que me interesan para que puedan entender lo que quiero preguntarles:
IdFactura--Importe--Menos30dias--Entre3060--Entre6090--Made90dias
25-------- 6500 -----.0000-------- 6500------- .0000 ------.0000
24-------- 5000 -----.0000-------- 5000------- .0000 ------.0000
21-------- 1000 -----.0000-------- 1000------- .0000 ------.0000
22-------- 1500 -----.0000-------- 1500------- .0000 ------.0000
9--------- 1050 ------.0000--------.0000------ .0000 ------ 1050
8--------- 1000-------.0000--------.0000------.0000------- 1000
7--------- 5000------- .0000------- .0000----- .0000------- 5000
Esto está perfecto hasta aquí. Ahora este procedimiento almacenado lo utilizo en delphi 7 para un reporte sobre la antigüedad de las cuentas por pagar. Es decir creo un nuevo reporte y utilizo para conectarme a la base de datos los componentes de la paleta ADO. Agrego al reporte un ado conecction, un ado stored procedure y un datasource. Les configuro adecuamente cada una de las propiedades. Por ejemplo el adoconecction conected a true con su respectiva cadena de conexión a sql server con la base de datos que utilizo, la propiedad conecction del ado stotred procedure establecida al ado conecction y su propiedad active establecida a true, el datasource tiene como dataset el ado stored procedure. Agrego las respectivas bandas que necesito al qreport: pageheaderband, titleband, detailband y sumaryband. En la detailband pongo los campos Menos30dias, Entre3060dias, Entre6090dias y Masde90dias y en la sumaryband agrego 4 qrexpr cada uno con sus respectivas expresiones, por ejemplo: SUM(ADOSPAntiguedad.Menos30dias), SUM(ADOSPAntiguedad.Entre3060dias),SUM(ADOSPAntiguedad.Entre6090dias) y SUM(ADOSPAntiguedad.Mas90dias). Creo un formulario con tres controles un label, un edit y botón de comando. El edit es para pasarle el parámetro de entrada al ado stored procedure, en el botón comando puse el siguiente código:

Código Delphi [-]
begin
QrAntiguedad.ADOSPAntiguedad.Close;
QrAntiguedad.ADOSPAntiguedad.Parameters.ParamByName('@Proveedor').Value := Edit1.Text;
QrAntiguedad.ADOSPAntiguedad.Open;
QrAntiguedad.Preview;
end;




QrAntiguedad es el nombre del reporte, ADOSPAntiguedad es el nombre del Procedimiento almacenado. Cuando ejecuto esto no sale nada todo me sale en 0 es decir en cada una de las columnas de reporte me 0.00. He revisado por todos los lados y nada. Incluso en tiempo de diseño le doy un preview al reporte y lo mismo. No se que hacer. Ojala puedan ayudarme. Muchas Gracias.

Última edición por efelix fecha: 23-01-2007 a las 16:25:55.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Arreglo de Registros, con arreglos de Registros(Dinamico) PiornoCKA&G Varios 4 05-01-2007 08:53:30
por que duplicidad de registros con clientdataset sin ingresar registros ...mysql Arturo MySQL 3 05-09-2006 18:39:37
Mascaras de datset muestran algo diferente al valor del reg del dataset.gracias crist1an OOP 3 27-07-2006 22:32:22
reporte mamp67 Impresión 2 27-10-2005 16:11:18
Problemas conn el orden en que se muestran las pantallas melanthea C++ Builder 3 01-07-2004 17:04:19


La franja horaria es GMT +2. Ahora son las 15:51:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi