![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Este tipo de consultas son llamadas de cross table (tabla cruzada), en fastreport existe un componente para eso, no recuerdo si hay uno asi en QReport. El camino dificil es hacerlo via SQL, creando varios SELECT por separado o en subconsultas para ser unidos en uno final.
__________________
self.free; |
|
#2
|
||||
|
||||
|
¿Con qué base de datos trabajamos?
Si es con firebird o similar... sin problemas, se hace un Store procedure y marchando a quickreport (derechito y por la sombra). Si hablamos de tablas planas, paradox y eso..... torcido y por el sol ![]() Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#3
|
|||
|
|||
|
Siiii por favor!!!
Utilizo MYSQL, pero gracias lepe me intriga eso de STORE PROCEDURE nose me vino a la cabeza, quizas un ejempplillo de arranque te lo agradeceria.
Uso SP en inserciones y actualizaciones pero en Reportes .... changos ... ni lo pense. ![]() ![]() ![]() Saluditos |
|
#4
|
||||
|
||||
|
Antes de mirar este ejemplo, busca información en mysql sobre "transform", "pivot", "decision cube", puede que ya tengas implementado lo que quieres hacer.
Aquí tienes un ejemplo year, q1, q2, q3... serían el código y los almacenes, es decir, los parámetros de salida del SP. Como en un folio solo te cabrá 10 o 12 almacenes, tendrías 12 parámetros de salida en el SP. saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#5
|
|||
|
|||
|
Un empujonsito mas ....
Gracias por el Ejm Lepe, me quedo con el Ejm del Quarter y con este ejemplito casi soy feliz ....
Pero para terminar de resolver me falta un conocimient0 para mi avanzado que resalta mi duda .... aunque sigo bregando no puedo resolver...... Haber .... Con el ejemplo anterior resuelve parte mi duda genera un reporte cartesiano NxM sin problema .... no conosco los M ni los N ya que la consulta los genera. Todo esto meto en un DataSet vacio pero nose cargar los campos dinamicamente en el dataset es decir (DataSet1CampoA.value , DataSet1CampoB ....DataSet1CampoN.value), teniendo esto asi mandarlo al reporte es lo de menos. Nose si pude explicarlo pero por le momento mi camino esta trabao. ![]() ![]() ![]() ![]() |
|
#6
|
||||
|
||||
|
Supongo que das la posibilidad al usuario de crear almacenes, pero aún así, en el ancho de un folio, ¿cuantas columnas esperas poner como máximo?
Para hacerlo vía SP, debes saber de antemano un máximo de columnas. Cuando ese código lo metes en un SP, tienes que crear parámetros de salida al propio SP, y después ya en delphi pones en el SQL de un tquery: ahora doble clic al Tquery y añades los campos persistentes..... aquí te aparecen los parámetros de salida del SP y ahora ya sí puedes hacer: DatasetCAmpo1.Value para enlazarlo al informe o a donde quieras. Aquí te pongo un ejemplo real, que saca los totales por semanas de todos los trabajadores entre dos fechas determinadas, lo que devuelve es: Código:
alias semana1 semana2 totaljornales pagasextras pagar atrasados manolo 300€ 200€ 500 € 0 € 500€ 0€ jose 300€ 200€ 500 € 150 € 650€ 0€
Como ves, lo que hago es buscar en cada tabla y asignar el valor al parámetro de salida del SP
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#7
|
|||
|
|||
|
Si pero ....
Siempre tan gentil Lepe, tu codigo genial (pienso usarlo en otras cosillas) pero para mi problema ..... aun sigo inquieto.
He realizado un SQL compuesto:
..... y funciona bien el SQL y tiene la ventaja que pueden ser N columnas (N almacenes, que es lo que necesito). Dentro del TQuery, estan los campos creados dinamicamente, ahora LO QUE NOSE es como convertir esos campos creados dinamicamente, ponerlos en modo campos persitente en tiempo de ejecucion (que obviamente en tiempo de diseño es un dblclic en el TQuery y Add Fields) para poder usar DataSet1CampoA....DataSet1CAmpoN. Porque hacerlo asi, porque el nro de columnas (almacenes) es dinamico puede ser 1, 4, 10 u otro. (son de esos casitos especiales que pa que explicar su origen, se dan porque se dan ). Sera que sigo apuntando mal el camino??. Gracias por sus respuestas!! |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Ayuda con Impreso Matricial de 132 Columnas | itsi | Impresión | 5 | 22-03-2007 09:01:01 |
| Creación de impreso | Aprendiendo | Impresión | 1 | 19-03-2007 13:44:39 |
| el preview del QReport es distinto q Impreso? | mrmanuel | Impresión | 1 | 10-06-2005 16:55:49 |
| Usen la imaginacion | Mario1980 | Conexión con bases de datos | 6 | 13-01-2005 21:57:00 |
| Qué importante es la imaginación!!! | __cadetill | Humor | 5 | 12-06-2004 00:13:36 |
|