FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
|
|
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 |
|