Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-04-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
cómo hacer un listado de 2 tablas diferentes

Hola, me gustaria saber como puedo hacer un listado de 2 tablas diferentes y que me aparezca en el mismo report.
La cosa es que tengo una tabla de titular con el campo apellidos y otra de beneficiarios en la que tambien tengo el campo apellidos. Lo que me interesa es hacer un listado donde aparezcan todos los registros de las 2 tablas ordenados por apellidos. Uso FastReport.
Alguna idea???

Un saludo.
Responder Con Cita
  #2  
Antiguo 21-04-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Si tienen el campo apellido las dos tablas, puedes hacer un join de las dos y pasarle al listado esa join. El cómo, ya no lo se, no uso FastReport
Responder Con Cita
  #3  
Antiguo 21-04-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
Alguien que controle de FastReport que me pueda echar un cable???
La verdad es que no se muy bien por donde meterle mano al problema...Urggg
Responder Con Cita
  #4  
Antiguo 21-04-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Pero, a ver, se supone que no es el primer listado en Fast que haces, no? Si es así, cómo haces para, por ejemplo imprimir el contenido de una tabla (un TTable o componente similar)?

Yo, a lo que me refería, es que puedes poner en un TQuery la sentencia SQL y listar ese TQuery. Lo que no se es cómo enganchar el TQuery al FastReport (eso se supone ya lo has de saber tu) ya que es de suponer que se hace igual que un TTable o cualquer descendiente de TDataset
Responder Con Cita
  #5  
Antiguo 21-04-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
Amos a ver, para imprimir el contenido lo que se hace es en la plantilla, se introduce una banda y dentro de esta banda una casilla, que va conectada con la tabla y campo en cuestion. Pero claro, eso ya me esta limintado a una tabla y campo, cuando lo que yo quiero es poder meter ahi 2 tablas...
Responder Con Cita
  #6  
Antiguo 21-04-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Por eso te decía que hicieras una query y juntaras las das tablas en una sola

Bueno, no insistiré más sobre el tema, que a lo mejor me estoy metiendo donde no me llaman
Responder Con Cita
  #7  
Antiguo 21-04-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
Osea, crear una 3a tabla?? temporal??
Uff que lio...
Responder Con Cita
  #8  
Antiguo 21-04-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
Empezado por acrophet
Osea, crear una 3a tabla?? temporal??
Uff que lio...
no no no, buuuaaaa, hoy nadie me entiende!!!! buuuuaaaa

jejeje, a ver, tu tienes una base de datos con dos tablas A y B en las que en las 2 tienes un campo apellido, correcto? Bien, pues a lo que yo me refiero es que hagas algo así:

Código:
Query.SQL.Clear;
Query.SQL.Add('select * from tablaA a inner join tablaB b on b.apellido = a.apellido);
Query.Open;
Con esto tienes una Query con el resultado que quieres, un sólo dataset para tu listado con todos los datos

Espero haberme explicado bien ahora
Responder Con Cita
  #9  
Antiguo 21-04-2004
Avatar de Nuria
Nuria Nuria is offline
Miembro
 
Registrado: may 2003
Posts: 531
Poder: 22
Nuria Va por buen camino
Hola!

No dices que base de datos estás utilizando. Depende de la B.D. que utilices puedes usar unos componentes o otros. Igual con un TQuery te apañas. Como te decía el buen amigo Cadetill haz un query con los campos que quieres que aparezcan en el listado. Por ejemplo mediante un TQuery, supongo que lo podrás enlazar con el Fast Report (desconozco esté programa por lo que en eso no te puedo ayudar).

Espero que te sirva.

Saludos!
Responder Con Cita
  #10  
Antiguo 21-04-2004
Avatar de Nuria
Nuria Nuria is offline
Miembro
 
Registrado: may 2003
Posts: 531
Poder: 22
Nuria Va por buen camino
Ya te me has adelantado cadetill, como siempre.... . Jo! tengo que ponerme las pilas....
Responder Con Cita
  #11  
Antiguo 21-04-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
ahhhhhhh, vale, ahora me entero de por donde van los tiros...
Lo voy a probar y luego os comento.
Mil gracias.
Responder Con Cita
  #12  
Antiguo 21-04-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
La verdad es que he estado intentando hacer lo que me comentabais, pero no consigo hacerlo bien.
A ver, la bd que utilizo es Interbase(que me lo preguntaron por ahi). Cojo un IBQuery y un datasource. ahora bien, como los conecto entre si para que funcione la historieta esta? Porque de las maneras que he probado yo, no funciona.
En el ibquery he creado los campos (son unos 5) que quiero que me salgan luego para seleccionar en la plantilla del FastReport y los he añadido a la plantilla.
Tambien he añadido el código que me comentaste y me da un error "IBQuery1 : field 'numero' not found". Donde numero es el ulitmo campo de la lista que añadi al ibquery.
Me da en la nariz que no he conectado bien las cosas...
Responder Con Cita
  #13  
Antiguo 21-04-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
La conexión es la siguiente

TIBDatabase+TIBTransaction --> TIBQuery(database + transaction sino recuerdo mal) --> TDataSource (dataset)

El error del SQL, podrías mirar de poner la consulta que realizas a ver si vemos por donde falla
Responder Con Cita
  #14  
Antiguo 21-04-2004
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
No hace falta el uso de query ni na, uso el Freereport y lo q tienes q hacer es poner una banda Master Data y enlazarlo con la tabla master y despues poner los edits para enlazarlos con los fields, y en otra banda Detail Data enlazarlo con la tabla detail y lo mismo, mas facil imposible..
Responder Con Cita
  #15  
Antiguo 21-04-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
Si pero...yo quiero que me salgan todos juntos ordenados por el apellido, no primero unos y luego otros...
Responder Con Cita
  #16  
Antiguo 21-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Código:
Select apellidos, nombres 
  from tabla1
Union 
Select apellidos, nombres
  from tabla2
order by 1
Te recomiendo la lectura de un buen libro/manual/tutorial/instructivo de SQL.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 20:49:43.


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