PDA

Ver la Versión Completa : Ayuda con X Report


waly2k1
19-07-2007, 05:33:07
Buenas!, gurúes nuevamente acudo a la ayuda de ustedes,
tengo un problemita con un informe, lo probé con QuickReport y FastReport y no se dejó. El tema es que tengo varias tablas asociadas y quisiera hacer un informe tipo group pero la tabla principal es una sola, no maestro/detalle.
tengo la sigtes tablas:

CREATE TABLE GASTOS
(
Id_Gasto int,
Fecha datetime NOT NULL,
Id_Empleado smallint NOT NULL,
Id_Cuenta int NULL,
Valor numeric(18, 2) NULL
)

CREATE TABLE EMPLEADOS
(
ID_EMPLEADO smallint NOT NULL primary key,
NOMBRE varchar(50)
)

CREATE TABLE CUENTAS_IMPUTACION
(
Id_Cuenta int NOT NULL primary key,
Concepto varchar(50)
)

Les paso además el Stored Procedure:

CREATE PROCEDURE dbo.SP_Gastos_SELECT
(
@P_FechaD Datetime,
@P_FechaH Datetime
)
AS
SELECT G.Id_Gasto ,
G.Id_Empleado ,
G.Fecha ,
G.Id_Cuenta ,
G.Valor ,
G.Fecha_Ing ,
G.Fecha_Ult ,
G.Id_Usuario ,
C.Concepto AS Cuenta_Nombre ,
E.Nombre AS Empleado_Nombre
FROM dbo.Gastos G
INNER JOIN dbo.Cuentas_Imputacion C ON C.Id_Cuenta = G.Id_Cuenta
INNER JOIN dbo.Empleados E ON E.Id_Empleado = G.Id_Empleado
WHERE G.Fecha BETWEEN @P_FechaD AND @P_FechaH
ORDER BY G.Id_Cuenta
GO


Donde registro los gastos asignados a una cuenta, quisiera arrojar un informe de los gastos por cuenta en un determinado periodo, agrupados por cuenta. El tema es que con querys via Stored Procedures no tengo forma de enlazar una tabla con otra para hacer un informe maestro/detalle o agrupar ya que para ello necesito 2 tablas no querys. Con 2 tablas via mastersource obtengo los registros automaticamente, pero con querys no es posible.

Y debe ser si o si por querys, sino no puedo pasar parametros. O si existe otra forma, toda sugerencia será bienvenida. Además debo mostrar nombre de empleado, cuenta y demás datos de las tablas auxiliares (en realidad son mas campos, pero los que necesito están ahí)

Quizás abuso un poco, pero me cansé de probar de miles de formas y no obtuve resultados, a ver alguien que la tenga clara y me pueda echar una mano será muy agradecida de mi parte.

Bueno es todo, si no se entiende bien o no fui claro, me preguntan.
Saludos y muchas gracias de antemano.

Walter

afxe
19-07-2007, 10:01:02
Si te he entendido bien, para hacer un informe con agrupación de datos, no se necesitan dos tablas (maestro-detalle).

En quickreport, por ejemplo, sacas el listado normal, ordenado por cuenta. Metes una banda QRGroup, poniendo en la propiedad Expression de dicha banda el campo por el cual quieres que se agrupe el listado, por ejemplo QrySP_Gastos.ID_CUENTA Cada vez que el campo ID_Cuenta cambie de valor se imprimirá la banda QRGroup.

Saludos.

waly2k1
19-07-2007, 18:17:48
Muchas gracias afxe, logré hacerlo. El tema era la expresión.
No te da el error q está mal, simplemente no anda.

Ahora otra pregunta, es suficiente QuickReport para todo tipo de informes o sería conveniente utilizar otro reporteador ?. En Delphi no poseo mucha experiencia, pero me las voy ingeniando de a poco.


Saludos y muchas gracias
Walter

afxe
20-07-2007, 12:09:57
Hay mucha gente en contra de este generador de informes. Yo no he encontrado nada que no pudiera hacer con quickreport: Etiquetas, informes en columnas, escandallos con multi-formatos (compositereports), listados de arrays, de listas... incluso un informe que imprimía una línea cuando ocurría un evento o se lanzaban ciertos mensajes en la aplicación, (usando el evento OnNeedData). Poco a poco han ido apareciendo pluggins para mejorar la exportación a otros formatos y componentes para impresión de cód. de barras, gráficos estadísticos,(pdf, exel, word, html), etc...

El único problema es que es muy pesado (aumenta mucho el tamaño de los ejecutables) y que va embebido en el EXE, Aunque con el QREditor puedes trabajarte el tener el diseño fuera del EXE, cuando metes nuevos campos o cambias radicalmente un informe necesitas reenviar el EXE a tu cliente, cosa que con otros reporteadores no es necesario.

Pero no te quiero convencer de nada, la mejor herramienta es la que te hace sentir cómodo y te da confianza. Sigue con el Quickreport, su tratamiento y manejo ira creciendo a medida que la complejidad de tus programas lo requieran, y si se te empieza a quedar corto (cosa que dudo si aprendes a manejarlo bien) pues puedes pensarte en irte a herramientas más profesionales: Cristal Report o Report builder, por ejemplo.

waly2k1
21-07-2007, 04:11:28
Muy buena respuesta!!!

A decir verdad mucho no me preocupa el tamaño de los ejecutables, sí el tema de la cantidad de archivos sueltos que se distribuyen y la dependencia que esto provoca. Hay gente obsesiva en el tamaño de los ejecutables y mandan hasta las imagenes 'fuera', pero si no existe una imagen no se preocupan en validar antes de cargar y la aplicación aborta. ¿Te imaginás que no funcione un sistema de producción toda una mañana porque el programador se olvidó de distribuir un ícono ?. Juás lamentable!.
Trabajé mucho con Crystal Reports en VB, y era un parto instalar la aplicación con todos los ActiveX y DLLs de Crystal, tenía que instalar Crystal Reports en el cliente para que me registrara todos su componentes y dependencias, pero esto era lo último recomendable, mas allá de que en distintas versiones de Crystal cambiaban las propiedades... Y eso que el generador de instaladores de VB 'levanta' todo lo que el sistema requiera. Cosa que los demás generadores de instaladores no lo hacen.

Desde Delphi probé con la VCL de Crystal 9, funcionaba a la perfección en casa, pero cuando hago un demo me decía que faltaba una librería. Al menos decime Quéeee librería, veo en la web las dependencias y era una lista mas larga que un padrón electoral. En fin fuera Crystal y seguí con QuickReports
FastReports me pareció bastante amigable desde Delphi, pero no consigo aún manejarlo a la perfección.

Bueno viejo, muchas gracias por todo.
Te saluda Walter desde la Argentina