Newsgrupos.com  

Retroceder   Newsgrupos.com > Forum > Newsgroup es.comp.lenguajes.* Foro > Newsgroup es.comp.lenguajes.delphi
Registrarse Preguntas Frecuentes Lista de Foreros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




Respuesta
 
LinkBack Herramientas Desplegado
  #1 (permalink)  
Antiguo 09-12-2004, 12:19:58
armadillo
 
Mensajes: n/a
Predeterminado Tablas Paradox y Quick Report

Estimado grupo,
Hace una semana que estoy liado con un problema el cual no encuentro
solucion, seguramente es que me he quedado con una idea fija en la cabeza, y
no puedo salir de ahi jejejeje.
El tema es el siguiente, necesito hacer un informe con el Quick Report de
Delphi 6 Enterprise, usando tablas Paradox.
Las tablas contienen aproximadamente estos datos

---------------------
| TABLA-A |
---------------------
|Campo1 | Campo2|
---------------------
| a1 | a1 |
---------------------

--------------------
| TABLA-B |
--------------------
|Campo1 | Campo2|
--------------------
| b1 | b1 |
--------------------
| b2 | b2 |
--------------------
| b3 | b3 |
---------------------

---------------------
| TABLA-C |
---------------------
|Campo1 | Campo2|
---------------------
| c1 | c1 |
----------------------

----------------------
| TABLA-D |
----------------------
|Campo1 | Campo2|
---------------------
| d1 | d1 |
--------------------
| d2 | d2 |
--------------------

Bueno, estas son de alguna manera las tablas y sus datos, en un principio el
informe se hacia imprimiendo los datos de cada tabla uno debajo del otro, o
sea cada tabla en una banda diferente del Quick Report, resulta que ahora ya
que este es un informe oficial los datos deben de salir todos en una misma
fila, o sea, poner las 4 tablas en una misma banda del Quick Report, una
solución que "encontre" fue agregar un componente TQuery con la siguiente
instruccion SQL:

SELECT Tabla-A.Campo1, Tabla-A.Campo2, Tabla-B.Campo1, Tabla-B.Campo2,
Tabla-C.Campo1, Tabla-C.Campo2, Tabla-D.Campo1, Tabla-D.Campo2
FROM "Tabla-A.db" Tabla-A
INNER JOIN "Tabla-B.DB" Tabla-B
ON (Tabla-A.Clave1 = Tabla-B.Clave1)
AND (Tabla-A.Clave2 = Tabla-B.Clave2)
INNER JOIN "Tabla-C.DB" Tabla-C
ON (Tabla-B.Clave1 = Tabla-C.Clave1)
AND (Tabla-B.Clave2 = Tabla-C.Clave2)
INNER JOIN "Tabla-D.DB" Tabla-D
ON (Tabla-C.Clave1 = Tabla-D.Clave1)
AND (Tabla-C.Clave2 = Tabla-D.Clave2)

El tema es que el resultado que me da es el siguiente:


Tabla-A Tabla-B Tabla-C Tabla-D
------------------------------------------
| a1 a1 | b1 b1 | c1 c1 | d1 d1 |
| a1 a1 | b1 b1 | c1 c1 | d2 d2 |
| a1 a1 | b2 b2 | c1 c1 | d1 d1 |
| a1 a1 | b2 b2 | c1 c1 | d2 d2 |
| a1 a1 | b3 b3 | c1 c1 | d1 d1 |
| a1 a1 | b3 b3 | c1 c1 | d2 d2 |
------------------------------------------

Y Yo lo que necesito es un resultado como el siguiente:


Tabla-A Tabla-B Tabla-C Tabla-D
------------------------------------------
|a1 a1 | b1 b1 | c1 c1 | d1 d1 |
| | b2 b2 | | d2 d2 |
| | b3 b3 | | |
------------------------------------------


Como hago para llegar a este resultado con los datos anteriormente
explicados?

Espero haber sido claro, y entiendan cual es el problema.
Alguien es tan amable de darme una solucion, sea cual fuera y si necesitan
algun otro dato, por favor preguntarme.

Desde ya Muchas gracias a Todos


Responder Con Cita
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Newsgrupos.com
Standard Sponsored Links

  #2 (permalink)  
Antiguo 09-12-2004, 12:59:00
RangerWalker
 
Mensajes: n/a
Predeterminado Re: Tablas Paradox y Quick Report

no entiendo totalmente tu problema, pero vamos, yo no lo haria de la forma
en que lo estas haciendo , ya que como parece ser, el nº de registros de
estas tablas seran mas o menos siempre los mismos, prepararia el report en
tiempo dinámico para imprimir un nº de registros dentro de la banda
incluso si te es mas facil, crearia las etiquetas en tiempo de diseño , y
luego me recorreria las tablas en tiempo de ejecucion rellenando las
etiquetas que se vallan a imprimir y 'limpiando' las que no.
como al qreport debes de darle un dataset maestro, pues le asignaria la
tabla a, que parece ser la principal
y luego, dentro de la banda que quieras imprimir las demas tablas, abriria
las demas tablas usando querys, e imprimiendolos a mi gusto en etiquetas ya
creadas , (incluso podrias crearlas en tiempo de ejecucion), tambien puedes
hacer crecer o disminuir el tamaño de la banda en funcion del nº de
registros

para q te hagas una idea, algo asi , pero usando todas las tablas

Procedure qrdetailtbandafterprint()
var Label:Tqrlabel;
q:tibquery;
x:integer;
begin
q:=tibquery.create(self);
q.sql.add('select * from tableb where clave1='+tableaclave1.asstring');
q.open;
x:=0;
while (not q.eof) do begin
label:=tqrlabel.create(self);
label.parent:=qrdetailband1;
label.left:=100;
label.top:=20+(x*20)
label.caption:=q.fieldbyname('campo1').asstring;

label:=tqrlabel.create(self);
label.parent:=qrdetailband1;
label.left:=150;
label.top:=20+(x*20)
label.caption:=q.fieldbyname('campo2').asstring;

q.next;
inc(x);
end;





"armadillo" <armadillo***ono.com> escribió en el mensaje
news:VpXtd.3369$US.2588***news.ono.com...
> Estimado grupo,
> Hace una semana que estoy liado con un problema el cual no encuentro
> solucion, seguramente es que me he quedado con una idea fija en la cabeza,

y
> no puedo salir de ahi jejejeje.
> El tema es el siguiente, necesito hacer un informe con el Quick Report de
> Delphi 6 Enterprise, usando tablas Paradox.
> Las tablas contienen aproximadamente estos datos
>
> ---------------------
> | TABLA-A |
> ---------------------
> |Campo1 | Campo2|
> ---------------------
> | a1 | a1 |
> ---------------------
>
> --------------------
> | TABLA-B |
> --------------------
> |Campo1 | Campo2|
> --------------------
> | b1 | b1 |
> --------------------
> | b2 | b2 |
> --------------------
> | b3 | b3 |
> ---------------------
>
> ---------------------
> | TABLA-C |
> ---------------------
> |Campo1 | Campo2|
> ---------------------
> | c1 | c1 |
> ----------------------
>
> ----------------------
> | TABLA-D |
> ----------------------
> |Campo1 | Campo2|
> ---------------------
> | d1 | d1 |
> --------------------
> | d2 | d2 |
> --------------------
>
> Bueno, estas son de alguna manera las tablas y sus datos, en un principio

el
> informe se hacia imprimiendo los datos de cada tabla uno debajo del otro,

o
> sea cada tabla en una banda diferente del Quick Report, resulta que ahora

ya
> que este es un informe oficial los datos deben de salir todos en una misma
> fila, o sea, poner las 4 tablas en una misma banda del Quick Report, una
> solución que "encontre" fue agregar un componente TQuery con la siguiente
> instruccion SQL:
>
> SELECT Tabla-A.Campo1, Tabla-A.Campo2, Tabla-B.Campo1, Tabla-B.Campo2,
> Tabla-C.Campo1, Tabla-C.Campo2, Tabla-D.Campo1, Tabla-D.Campo2
> FROM "Tabla-A.db" Tabla-A
> INNER JOIN "Tabla-B.DB" Tabla-B
> ON (Tabla-A.Clave1 = Tabla-B.Clave1)
> AND (Tabla-A.Clave2 = Tabla-B.Clave2)
> INNER JOIN "Tabla-C.DB" Tabla-C
> ON (Tabla-B.Clave1 = Tabla-C.Clave1)
> AND (Tabla-B.Clave2 = Tabla-C.Clave2)
> INNER JOIN "Tabla-D.DB" Tabla-D
> ON (Tabla-C.Clave1 = Tabla-D.Clave1)
> AND (Tabla-C.Clave2 = Tabla-D.Clave2)
>
> El tema es que el resultado que me da es el siguiente:
>
>
> Tabla-A Tabla-B Tabla-C Tabla-D
> ------------------------------------------
> | a1 a1 | b1 b1 | c1 c1 | d1 d1 |
> | a1 a1 | b1 b1 | c1 c1 | d2 d2 |
> | a1 a1 | b2 b2 | c1 c1 | d1 d1 |
> | a1 a1 | b2 b2 | c1 c1 | d2 d2 |
> | a1 a1 | b3 b3 | c1 c1 | d1 d1 |
> | a1 a1 | b3 b3 | c1 c1 | d2 d2 |
> ------------------------------------------
>
> Y Yo lo que necesito es un resultado como el siguiente:
>
>
> Tabla-A Tabla-B Tabla-C Tabla-D
> ------------------------------------------
> |a1 a1 | b1 b1 | c1 c1 | d1 d1 |
> | | b2 b2 | | d2 d2 |
> | | b3 b3 | | |
> ------------------------------------------
>
>
> Como hago para llegar a este resultado con los datos anteriormente
> explicados?
>
> Espero haber sido claro, y entiendan cual es el problema.
> Alguien es tan amable de darme una solucion, sea cual fuera y si necesitan
> algun otro dato, por favor preguntarme.
>
> Desde ya Muchas gracias a Todos
>
>



Responder Con Cita
  #3 (permalink)  
Antiguo 09-12-2004, 12:59:00
RangerWalker
 
Mensajes: n/a
Predeterminado Re: Tablas Paradox y Quick Report

no entiendo totalmente tu problema, pero vamos, yo no lo haria de la forma
en que lo estas haciendo , ya que como parece ser, el nº de registros de
estas tablas seran mas o menos siempre los mismos, prepararia el report en
tiempo dinámico para imprimir un nº de registros dentro de la banda
incluso si te es mas facil, crearia las etiquetas en tiempo de diseño , y
luego me recorreria las tablas en tiempo de ejecucion rellenando las
etiquetas que se vallan a imprimir y 'limpiando' las que no.
como al qreport debes de darle un dataset maestro, pues le asignaria la
tabla a, que parece ser la principal
y luego, dentro de la banda que quieras imprimir las demas tablas, abriria
las demas tablas usando querys, e imprimiendolos a mi gusto en etiquetas ya
creadas , (incluso podrias crearlas en tiempo de ejecucion), tambien puedes
hacer crecer o disminuir el tamaño de la banda en funcion del nº de
registros

para q te hagas una idea, algo asi , pero usando todas las tablas

Procedure qrdetailtbandafterprint()
var Label:Tqrlabel;
q:tibquery;
x:integer;
begin
q:=tibquery.create(self);
q.sql.add('select * from tableb where clave1='+tableaclave1.asstring');
q.open;
x:=0;
while (not q.eof) do begin
label:=tqrlabel.create(self);
label.parent:=qrdetailband1;
label.left:=100;
label.top:=20+(x*20)
label.caption:=q.fieldbyname('campo1').asstring;

label:=tqrlabel.create(self);
label.parent:=qrdetailband1;
label.left:=150;
label.top:=20+(x*20)
label.caption:=q.fieldbyname('campo2').asstring;

q.next;
inc(x);
end;





"armadillo" <armadillo***ono.com> escribió en el mensaje
news:VpXtd.3369$US.2588***news.ono.com...
> Estimado grupo,
> Hace una semana que estoy liado con un problema el cual no encuentro
> solucion, seguramente es que me he quedado con una idea fija en la cabeza,

y
> no puedo salir de ahi jejejeje.
> El tema es el siguiente, necesito hacer un informe con el Quick Report de
> Delphi 6 Enterprise, usando tablas Paradox.
> Las tablas contienen aproximadamente estos datos
>
> ---------------------
> | TABLA-A |
> ---------------------
> |Campo1 | Campo2|
> ---------------------
> | a1 | a1 |
> ---------------------
>
> --------------------
> | TABLA-B |
> --------------------
> |Campo1 | Campo2|
> --------------------
> | b1 | b1 |
> --------------------
> | b2 | b2 |
> --------------------
> | b3 | b3 |
> ---------------------
>
> ---------------------
> | TABLA-C |
> ---------------------
> |Campo1 | Campo2|
> ---------------------
> | c1 | c1 |
> ----------------------
>
> ----------------------
> | TABLA-D |
> ----------------------
> |Campo1 | Campo2|
> ---------------------
> | d1 | d1 |
> --------------------
> | d2 | d2 |
> --------------------
>
> Bueno, estas son de alguna manera las tablas y sus datos, en un principio

el
> informe se hacia imprimiendo los datos de cada tabla uno debajo del otro,

o
> sea cada tabla en una banda diferente del Quick Report, resulta que ahora

ya
> que este es un informe oficial los datos deben de salir todos en una misma
> fila, o sea, poner las 4 tablas en una misma banda del Quick Report, una
> solución que "encontre" fue agregar un componente TQuery con la siguiente
> instruccion SQL:
>
> SELECT Tabla-A.Campo1, Tabla-A.Campo2, Tabla-B.Campo1, Tabla-B.Campo2,
> Tabla-C.Campo1, Tabla-C.Campo2, Tabla-D.Campo1, Tabla-D.Campo2
> FROM "Tabla-A.db" Tabla-A
> INNER JOIN "Tabla-B.DB" Tabla-B
> ON (Tabla-A.Clave1 = Tabla-B.Clave1)
> AND (Tabla-A.Clave2 = Tabla-B.Clave2)
> INNER JOIN "Tabla-C.DB" Tabla-C
> ON (Tabla-B.Clave1 = Tabla-C.Clave1)
> AND (Tabla-B.Clave2 = Tabla-C.Clave2)
> INNER JOIN "Tabla-D.DB" Tabla-D
> ON (Tabla-C.Clave1 = Tabla-D.Clave1)
> AND (Tabla-C.Clave2 = Tabla-D.Clave2)
>
> El tema es que el resultado que me da es el siguiente:
>
>
> Tabla-A Tabla-B Tabla-C Tabla-D
> ------------------------------------------
> | a1 a1 | b1 b1 | c1 c1 | d1 d1 |
> | a1 a1 | b1 b1 | c1 c1 | d2 d2 |
> | a1 a1 | b2 b2 | c1 c1 | d1 d1 |
> | a1 a1 | b2 b2 | c1 c1 | d2 d2 |
> | a1 a1 | b3 b3 | c1 c1 | d1 d1 |
> | a1 a1 | b3 b3 | c1 c1 | d2 d2 |
> ------------------------------------------
>
> Y Yo lo que necesito es un resultado como el siguiente:
>
>
> Tabla-A Tabla-B Tabla-C Tabla-D
> ------------------------------------------
> |a1 a1 | b1 b1 | c1 c1 | d1 d1 |
> | | b2 b2 | | d2 d2 |
> | | b3 b3 | | |
> ------------------------------------------
>
>
> Como hago para llegar a este resultado con los datos anteriormente
> explicados?
>
> Espero haber sido claro, y entiendan cual es el problema.
> Alguien es tan amable de darme una solucion, sea cual fuera y si necesitan
> algun otro dato, por favor preguntarme.
>
> Desde ya Muchas gracias a Todos
>
>



Responder Con Cita
  #4 (permalink)  
Antiguo 09-12-2004, 12:59:00
RangerWalker
 
Mensajes: n/a
Predeterminado Re: Tablas Paradox y Quick Report

no entiendo totalmente tu problema, pero vamos, yo no lo haria de la forma
en que lo estas haciendo , ya que como parece ser, el nº de registros de
estas tablas seran mas o menos siempre los mismos, prepararia el report en
tiempo dinámico para imprimir un nº de registros dentro de la banda
incluso si te es mas facil, crearia las etiquetas en tiempo de diseño , y
luego me recorreria las tablas en tiempo de ejecucion rellenando las
etiquetas que se vallan a imprimir y 'limpiando' las que no.
como al qreport debes de darle un dataset maestro, pues le asignaria la
tabla a, que parece ser la principal
y luego, dentro de la banda que quieras imprimir las demas tablas, abriria
las demas tablas usando querys, e imprimiendolos a mi gusto en etiquetas ya
creadas , (incluso podrias crearlas en tiempo de ejecucion), tambien puedes
hacer crecer o disminuir el tamaño de la banda en funcion del nº de
registros

para q te hagas una idea, algo asi , pero usando todas las tablas

Procedure qrdetailtbandafterprint()
var Label:Tqrlabel;
q:tibquery;
x:integer;
begin
q:=tibquery.create(self);
q.sql.add('select * from tableb where clave1='+tableaclave1.asstring');
q.open;
x:=0;
while (not q.eof) do begin
label:=tqrlabel.create(self);
label.parent:=qrdetailband1;
label.left:=100;
label.top:=20+(x*20)
label.caption:=q.fieldbyname('campo1').asstring;

label:=tqrlabel.create(self);
label.parent:=qrdetailband1;
label.left:=150;
label.top:=20+(x*20)
label.caption:=q.fieldbyname('campo2').asstring;

q.next;
inc(x);
end;





"armadillo" <armadillo***ono.com> escribió en el mensaje
news:VpXtd.3369$US.2588***news.ono.com...
> Estimado grupo,
> Hace una semana que estoy liado con un problema el cual no encuentro
> solucion, seguramente es que me he quedado con una idea fija en la cabeza,

y
> no puedo salir de ahi jejejeje.
> El tema es el siguiente, necesito hacer un informe con el Quick Report de
> Delphi 6 Enterprise, usando tablas Paradox.
> Las tablas contienen aproximadamente estos datos
>
> ---------------------
> | TABLA-A |
> ---------------------
> |Campo1 | Campo2|
> ---------------------
> | a1 | a1 |
> ---------------------
>
> --------------------
> | TABLA-B |
> --------------------
> |Campo1 | Campo2|
> --------------------
> | b1 | b1 |
> --------------------
> | b2 | b2 |
> --------------------
> | b3 | b3 |
> ---------------------
>
> ---------------------
> | TABLA-C |
> ---------------------
> |Campo1 | Campo2|
> ---------------------
> | c1 | c1 |
> ----------------------
>
> ----------------------
> | TABLA-D |
> ----------------------
> |Campo1 | Campo2|
> ---------------------
> | d1 | d1 |
> --------------------
> | d2 | d2 |
> --------------------
>
> Bueno, estas son de alguna manera las tablas y sus datos, en un principio

el
> informe se hacia imprimiendo los datos de cada tabla uno debajo del otro,

o
> sea cada tabla en una banda diferente del Quick Report, resulta que ahora

ya
> que este es un informe oficial los datos deben de salir todos en una misma
> fila, o sea, poner las 4 tablas en una misma banda del Quick Report, una
> solución que "encontre" fue agregar un componente TQuery con la siguiente
> instruccion SQL:
>
> SELECT Tabla-A.Campo1, Tabla-A.Campo2, Tabla-B.Campo1, Tabla-B.Campo2,
> Tabla-C.Campo1, Tabla-C.Campo2, Tabla-D.Campo1, Tabla-D.Campo2
> FROM "Tabla-A.db" Tabla-A
> INNER JOIN "Tabla-B.DB" Tabla-B
> ON (Tabla-A.Clave1 = Tabla-B.Clave1)
> AND (Tabla-A.Clave2 = Tabla-B.Clave2)
> INNER JOIN "Tabla-C.DB" Tabla-C
> ON (Tabla-B.Clave1 = Tabla-C.Clave1)
> AND (Tabla-B.Clave2 = Tabla-C.Clave2)
> INNER JOIN "Tabla-D.DB" Tabla-D
> ON (Tabla-C.Clave1 = Tabla-D.Clave1)
> AND (Tabla-C.Clave2 = Tabla-D.Clave2)
>
> El tema es que el resultado que me da es el siguiente:
>
>
> Tabla-A Tabla-B Tabla-C Tabla-D
> ------------------------------------------
> | a1 a1 | b1 b1 | c1 c1 | d1 d1 |
> | a1 a1 | b1 b1 | c1 c1 | d2 d2 |
> | a1 a1 | b2 b2 | c1 c1 | d1 d1 |
> | a1 a1 | b2 b2 | c1 c1 | d2 d2 |
> | a1 a1 | b3 b3 | c1 c1 | d1 d1 |
> | a1 a1 | b3 b3 | c1 c1 | d2 d2 |
> ------------------------------------------
>
> Y Yo lo que necesito es un resultado como el siguiente:
>
>
> Tabla-A Tabla-B Tabla-C Tabla-D
> ------------------------------------------
> |a1 a1 | b1 b1 | c1 c1 | d1 d1 |
> | | b2 b2 | | d2 d2 |
> | | b3 b3 | | |
> ------------------------------------------
>
>
> Como hago para llegar a este resultado con los datos anteriormente
> explicados?
>
> Espero haber sido claro, y entiendan cual es el problema.
> Alguien es tan amable de darme una solucion, sea cual fuera y si necesitan
> algun otro dato, por favor preguntarme.
>
> Desde ya Muchas gracias a Todos
>
>



Responder Con Cita
  #5 (permalink)  
Antiguo 09-12-2004, 12:59:00
RangerWalker
 
Mensajes: n/a
Predeterminado Re: Tablas Paradox y Quick Report

no entiendo totalmente tu problema, pero vamos, yo no lo haria de la forma
en que lo estas haciendo , ya que como parece ser, el nº de registros de
estas tablas seran mas o menos siempre los mismos, prepararia el report en
tiempo dinámico para imprimir un nº de registros dentro de la banda
incluso si te es mas facil, crearia las etiquetas en tiempo de diseño , y
luego me recorreria las tablas en tiempo de ejecucion rellenando las
etiquetas que se vallan a imprimir y 'limpiando' las que no.
como al qreport debes de darle un dataset maestro, pues le asignaria la
tabla a, que parece ser la principal
y luego, dentro de la banda que quieras imprimir las demas tablas, abriria
las demas tablas usando querys, e imprimiendolos a mi gusto en etiquetas ya
creadas , (incluso podrias crearlas en tiempo de ejecucion), tambien puedes
hacer crecer o disminuir el tamaño de la banda en funcion del nº de
registros

para q te hagas una idea, algo asi , pero usando todas las tablas

Procedure qrdetailtbandafterprint()
var Label:Tqrlabel;
q:tibquery;
x:integer;
begin
q:=tibquery.create(self);
q.sql.add('select * from tableb where clave1='+tableaclave1.asstring');
q.open;
x:=0;
while (not q.eof) do begin
label:=tqrlabel.create(self);
label.parent:=qrdetailband1;
label.left:=100;
label.top:=20+(x*20)
label.caption:=q.fieldbyname('campo1').asstring;

label:=tqrlabel.create(self);
label.parent:=qrdetailband1;
label.left:=150;
label.top:=20+(x*20)
label.caption:=q.fieldbyname('campo2').asstring;

q.next;
inc(x);
end;





"armadillo" <armadillo***ono.com> escribió en el mensaje
news:VpXtd.3369$US.2588***news.ono.com...
> Estimado grupo,
> Hace una semana que estoy liado con un problema el cual no encuentro
> solucion, seguramente es que me he quedado con una idea fija en la cabeza,

y
> no puedo salir de ahi jejejeje.
> El tema es el siguiente, necesito hacer un informe con el Quick Report de
> Delphi 6 Enterprise, usando tablas Paradox.
> Las tablas contienen aproximadamente estos datos
>
> ---------------------
> | TABLA-A |
> ---------------------
> |Campo1 | Campo2|
> ---------------------
> | a1 | a1 |
> ---------------------
>
> --------------------
> | TABLA-B |
> --------------------
> |Campo1 | Campo2|
> --------------------
> | b1 | b1 |
> --------------------
> | b2 | b2 |
> --------------------
> | b3 | b3 |
> ---------------------
>
> ---------------------
> | TABLA-C |
> ---------------------
> |Campo1 | Campo2|
> ---------------------
> | c1 | c1 |
> ----------------------
>
> ----------------------
> | TABLA-D |
> ----------------------
> |Campo1 | Campo2|
> ---------------------
> | d1 | d1 |
> --------------------
> | d2 | d2 |
> --------------------
>
> Bueno, estas son de alguna manera las tablas y sus datos, en un principio

el
> informe se hacia imprimiendo los datos de cada tabla uno debajo del otro,

o
> sea cada tabla en una banda diferente del Quick Report, resulta que ahora

ya
> que este es un informe oficial los datos deben de salir todos en una misma
> fila, o sea, poner las 4 tablas en una misma banda del Quick Report, una
> solución que "encontre" fue agregar un componente TQuery con la siguiente
> instruccion SQL:
>
> SELECT Tabla-A.Campo1, Tabla-A.Campo2, Tabla-B.Campo1, Tabla-B.Campo2,
> Tabla-C.Campo1, Tabla-C.Campo2, Tabla-D.Campo1, Tabla-D.Campo2
> FROM "Tabla-A.db" Tabla-A
> INNER JOIN "Tabla-B.DB" Tabla-B
> ON (Tabla-A.Clave1 = Tabla-B.Clave1)
> AND (Tabla-A.Clave2 = Tabla-B.Clave2)
> INNER JOIN "Tabla-C.DB" Tabla-C
> ON (Tabla-B.Clave1 = Tabla-C.Clave1)
> AND (Tabla-B.Clave2 = Tabla-C.Clave2)
> INNER JOIN "Tabla-D.DB" Tabla-D
> ON (Tabla-C.Clave1 = Tabla-D.Clave1)
> AND (Tabla-C.Clave2 = Tabla-D.Clave2)
>
> El tema es que el resultado que me da es el siguiente:
>
>
> Tabla-A Tabla-B Tabla-C Tabla-D
> ------------------------------------------
> | a1 a1 | b1 b1 | c1 c1 | d1 d1 |
> | a1 a1 | b1 b1 | c1 c1 | d2 d2 |
> | a1 a1 | b2 b2 | c1 c1 | d1 d1 |
> | a1 a1 | b2 b2 | c1 c1 | d2 d2 |
> | a1 a1 | b3 b3 | c1 c1 | d1 d1 |
> | a1 a1 | b3 b3 | c1 c1 | d2 d2 |
> ------------------------------------------
>
> Y Yo lo que necesito es un resultado como el siguiente:
>
>
> Tabla-A Tabla-B Tabla-C Tabla-D
> ------------------------------------------
> |a1 a1 | b1 b1 | c1 c1 | d1 d1 |
> | | b2 b2 | | d2 d2 |
> | | b3 b3 | | |
> ------------------------------------------
>
>
> Como hago para llegar a este resultado con los datos anteriormente
> explicados?
>
> Espero haber sido claro, y entiendan cual es el problema.
> Alguien es tan amable de darme una solucion, sea cual fuera y si necesitan
> algun otro dato, por favor preguntarme.
>
> Desde ya Muchas gracias a Todos
>
>



Responder Con Cita
  #6 (permalink)  
Antiguo 09-12-2004, 12:59:00
RangerWalker
 
Mensajes: n/a
Predeterminado Re: Tablas Paradox y Quick Report

no entiendo totalmente tu problema, pero vamos, yo no lo haria de la forma
en que lo estas haciendo , ya que como parece ser, el nº de registros de
estas tablas seran mas o menos siempre los mismos, prepararia el report en
tiempo dinámico para imprimir un nº de registros dentro de la banda
incluso si te es mas facil, crearia las etiquetas en tiempo de diseño , y
luego me recorreria las tablas en tiempo de ejecucion rellenando las
etiquetas que se vallan a imprimir y 'limpiando' las que no.
como al qreport debes de darle un dataset maestro, pues le asignaria la
tabla a, que parece ser la principal
y luego, dentro de la banda que quieras imprimir las demas tablas, abriria
las demas tablas usando querys, e imprimiendolos a mi gusto en etiquetas ya
creadas , (incluso podrias crearlas en tiempo de ejecucion), tambien puedes
hacer crecer o disminuir el tamaño de la banda en funcion del nº de
registros

para q te hagas una idea, algo asi , pero usando todas las tablas

Procedure qrdetailtbandafterprint()
var Label:Tqrlabel;
q:tibquery;
x:integer;
begin
q:=tibquery.create(self);
q.sql.add('select * from tableb where clave1='+tableaclave1.asstring');
q.open;
x:=0;
while (not q.eof) do begin
label:=tqrlabel.create(self);
label.parent:=qrdetailband1;
label.left:=100;
label.top:=20+(x*20)
label.caption:=q.fieldbyname('campo1').asstring;

label:=tqrlabel.create(self);
label.parent:=qrdetailband1;
label.left:=150;
label.top:=20+(x*20)
label.caption:=q.fieldbyname('campo2').asstring;

q.next;
inc(x);
end;





"armadillo" <armadillo***ono.com> escribió en el mensaje
news:VpXtd.3369$US.2588***news.ono.com...
> Estimado grupo,
> Hace una semana que estoy liado con un problema el cual no encuentro
> solucion, seguramente es que me he quedado con una idea fija en la cabeza,

y
> no puedo salir de ahi jejejeje.
> El tema es el siguiente, necesito hacer un informe con el Quick Report de
> Delphi 6 Enterprise, usando tablas Paradox.
> Las tablas contienen aproximadamente estos datos
>
> ---------------------
> | TABLA-A |
> ---------------------
> |Campo1 | Campo2|
> ---------------------
> | a1 | a1 |
> ---------------------
>
> --------------------
> | TABLA-B |
> --------------------
> |Campo1 | Campo2|
> --------------------
> | b1 | b1 |
> --------------------
> | b2 | b2 |
> --------------------
> | b3 | b3 |
> ---------------------
>
> ---------------------
> | TABLA-C |
> ---------------------
> |Campo1 | Campo2|
> ---------------------
> | c1 | c1 |
> ----------------------
>
> ----------------------
> | TABLA-D |
> ----------------------
> |Campo1 | Campo2|
> ---------------------
> | d1 | d1 |
> --------------------
> | d2 | d2 |
> --------------------
>
> Bueno, estas son de alguna manera las tablas y sus datos, en un principio

el
> informe se hacia imprimiendo los datos de cada tabla uno debajo del otro,

o
> sea cada tabla en una banda diferente del Quick Report, resulta que ahora

ya
> que este es un informe oficial los datos deben de salir todos en una misma
> fila, o sea, poner las 4 tablas en una misma banda del Quick Report, una
> solución que "encontre" fue agregar un componente TQuery con la siguiente
> instruccion SQL:
>
> SELECT Tabla-A.Campo1, Tabla-A.Campo2, Tabla-B.Campo1, Tabla-B.Campo2,
> Tabla-C.Campo1, Tabla-C.Campo2, Tabla-D.Campo1, Tabla-D.Campo2
> FROM "Tabla-A.db" Tabla-A
> INNER JOIN "Tabla-B.DB" Tabla-B
> ON (Tabla-A.Clave1 = Tabla-B.Clave1)
> AND (Tabla-A.Clave2 = Tabla-B.Clave2)
> INNER JOIN "Tabla-C.DB" Tabla-C
> ON (Tabla-B.Clave1 = Tabla-C.Clave1)
> AND (Tabla-B.Clave2 = Tabla-C.Clave2)
> INNER JOIN "Tabla-D.DB" Tabla-D
> ON (Tabla-C.Clave1 = Tabla-D.Clave1)
> AND (Tabla-C.Clave2 = Tabla-D.Clave2)
>
> El tema es que el resultado que me da es el siguiente:
>
>
> Tabla-A Tabla-B Tabla-C Tabla-D
> ------------------------------------------
> | a1 a1 | b1 b1 | c1 c1 | d1 d1 |
> | a1 a1 | b1 b1 | c1 c1 | d2 d2 |
> | a1 a1 | b2 b2 | c1 c1 | d1 d1 |
> | a1 a1 | b2 b2 | c1 c1 | d2 d2 |
> | a1 a1 | b3 b3 | c1 c1 | d1 d1 |
> | a1 a1 | b3 b3 | c1 c1 | d2 d2 |
> ------------------------------------------
>
> Y Yo lo que necesito es un resultado como el siguiente:
>
>
> Tabla-A Tabla-B Tabla-C Tabla-D
> ------------------------------------------
> |a1 a1 | b1 b1 | c1 c1 | d1 d1 |
> | | b2 b2 | | d2 d2 |
> | | b3 b3 | | |
> ------------------------------------------
>
>
> Como hago para llegar a este resultado con los datos anteriormente
> explicados?
>
> Espero haber sido claro, y entiendan cual es el problema.
> Alguien es tan amable de darme una solucion, sea cual fuera y si necesitan
> algun otro dato, por favor preguntarme.
>
> Desde ya Muchas gracias a Todos
>
>



Responder Con Cita
  #7 (permalink)  
Antiguo 10-12-2004, 15:10:49
Rebollón
 
Mensajes: n/a
Predeterminado Re: Tablas Paradox y Quick Report

Si no entiendo mal quieres que no se vuelvan a imprimir los datos
repetidos, si es esto, se me ocurren dos posibles soluciones:

1.- Creas un group band y pones como expression los campos que se pueden
repetir, una group band por cada campo. La pega es que te quedarán los
datos en distintas líneas, pero tiene solución.

2.- En el evento AfterPrint de la banda guardas los valores que has
impreso y después en el evento OnPrint comparas los valores anteriores
con los que vas a imprimir, si son iguales le pasas al parámetro Text un
texto vacío.

No me he extendido mucho porque no sé si es ese el problema que quieres
resolver, pero si no me entiendes dímelo y me estiro un poco más en
explicarlo.

Un saludo.

Responder Con Cita
 
  #8 (permalink)  
Antiguo 10-12-2004, 15:10:49
Rebollón
 
Mensajes: n/a
Predeterminado Re: Tablas Paradox y Quick Report

Si no entiendo mal quieres que no se vuelvan a imprimir los datos
repetidos, si es esto, se me ocurren dos posibles soluciones:

1.- Creas un group band y pones como expression los campos que se pueden
repetir, una group band por cada campo. La pega es que te quedarán los
datos en distintas líneas, pero tiene solución.

2.- En el evento AfterPrint de la banda guardas los valores que has
impreso y después en el evento OnPrint comparas los valores anteriores
con los que vas a imprimir, si son iguales le pasas al parámetro Text un
texto vacío.

No me he extendido mucho porque no sé si es ese el problema que quieres
resolver, pero si no me entiendes dímelo y me estiro un poco más en
explicarlo.

Un saludo.

Responder Con Cita
  #9 (permalink)  
Antiguo 10-12-2004, 15:10:49
Rebollón
 
Mensajes: n/a
Predeterminado Re: Tablas Paradox y Quick Report

Si no entiendo mal quieres que no se vuelvan a imprimir los datos
repetidos, si es esto, se me ocurren dos posibles soluciones:

1.- Creas un group band y pones como expression los campos que se pueden
repetir, una group band por cada campo. La pega es que te quedarán los
datos en distintas líneas, pero tiene solución.

2.- En el evento AfterPrint de la banda guardas los valores que has
impreso y después en el evento OnPrint comparas los valores anteriores
con los que vas a imprimir, si son iguales le pasas al parámetro Text un
texto vacío.

No me he extendido mucho porque no sé si es ese el problema que quieres
resolver, pero si no me entiendes dímelo y me estiro un poco más en
explicarlo.

Un saludo.

Responder Con Cita
  #10 (permalink)  
Antiguo 10-12-2004, 15:10:49
Rebollón
 
Mensajes: n/a
Predeterminado Re: Tablas Paradox y Quick Report

Si no entiendo mal quieres que no se vuelvan a imprimir los datos
repetidos, si es esto, se me ocurren dos posibles soluciones:

1.- Creas un group band y pones como expression los campos que se pueden
repetir, una group band por cada campo. La pega es que te quedarán los
datos en distintas líneas, pero tiene solución.

2.- En el evento AfterPrint de la banda guardas los valores que has
impreso y después en el evento OnPrint comparas los valores anteriores
con los que vas a imprimir, si son iguales le pasas al parámetro Text un
texto vacío.

No me he extendido mucho porque no sé si es ese el problema que quieres
resolver, pero si no me entiendes dímelo y me estiro un poco más en
explicarlo.

Un saludo.

Responder Con Cita
Respuesta


Herramientas
Desplegado

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
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último mensaje
No puedo importar a access tablas de paradox, antes si Hirotaro Newsgroup microsoft.public.es.access 1 11-06-2008 22:45:16
Cambiar idioma tablas paradox desde delphi2 tecno Newsgroup es.comp.lenguajes.delphi 21 05-10-2004 20:28:20
ganar velocidad con tablas paradox Santy Concepción Newsgroup es.comp.lenguajes.delphi 7 16-09-2004 20:30:02
Tablas paradox, Cambiar estructura. armadillo Newsgroup es.comp.lenguajes.delphi 6 10-06-2004 08:55:15
problemas con acceso a tablas paradox Carlos García Newsgroup microsoft.public.es.vs 0 29-08-2003 13:50:03





Powered by: vBulletin, Versión 3.6.8
Derechos de Autor ©2000 - 2008, Jelsoft Enterprises Ltd.

LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc.