Ir al contenido


Foto

mandar reporte en tquickrep de 2 tablas diferentes


  • Por favor identifícate para responder
10 respuestas en este tema

#1 edgar_prospero

edgar_prospero

    Advanced Member

  • Miembros
  • PipPipPip
  • 136 mensajes

Escrito 30 julio 2013 - 10:38

buen dia, aqui estoy con un problema y quisiera ver si me pueden ayudar para saber si se puede lo que intento,  para los reportes uso tquickrep y cuando es informacion de una tabla pues no tengo problema, el asunto es que necesito mostrar informacion de 2 tablas diferentes quisiera saber si es posible hacerlo ya que solo me deja escojer una tabla en el dataset del tquickrep
  • 0

#2 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 30 julio 2013 - 10:56

buen dia, aqui estoy con un problema y quisiera ver si me pueden ayudar para saber si se puede lo que intento,  para los reportes uso tquickrep y cuando es informacion de una tabla pues no tengo problema, el asunto es que necesito mostrar informacion de 2 tablas diferentes quisiera saber si es posible hacerlo ya que solo me deja escojer una tabla en el dataset del tquickrep



Es posible pero para poder ayudarte mejor, podrías darnos más información sobre tu problema=?
  • 0

#3 edgar_prospero

edgar_prospero

    Advanced Member

  • Miembros
  • PipPipPip
  • 136 mensajes

Escrito 30 julio 2013 - 11:00

si claro que si normalmente para hacer el reporte utilizo el siguiente codigo




delphi
  1. datos.tablalta.close ;
  2. datos.tablalta.SQL.Clear;
  3. //datos.tablalta.SQL.Add('SELECT * FROM alta WHERE folio>=:folini and folio<=:folfin and fecha_ins>=:fechaini and fecha_ins<=:fechafin and nombre=:nomini and nombre=:nomfin order by  folio asc ');
  4. datos.tablalta.SQL.Add('SELECT * FROM alta WHERE estado=:estado and nombre>=:nomini and nombre<=:nomfin and fecha_alta>=:fechaini and fecha_alta<=:fechafin  order by  nombre asc ');
  5.  
  6. datos.tablalta.ParamByName('estado').Asstring:=estado.Text;
  7. datos.tablalta.ParamByName('nomini').Asstring:=nomini.Text;
  8. datos.tablalta.ParamByName('nomfin').Asstring:=nomfin.Text;
  9. datos.tablalta.ParamByName('fechaini').Asdate:=fechaini.date;
  10. datos.tablalta.ParamByName('fechafin').Asdate:=fechafin.date;
  11. //datos.tablalta.ParamByName('folini').Asstring:=folini.Text;
  12. //datos.tablalta.ParamByName('folfin').Asstring:=folfin.Text;
  13.  
  14. datos.tablalta.Open;
  15. datos.tablalta.PREPARE;
  16. datos.tablalta.Active:=TRUE;
  17. form12.report.Preview ;
  18.  
  19.         end;



tengo una tabla alta y una mensualidad, lo que quiero lograr es en el reporte mostrar fecha que se dio de alta , el pago de la inscripcion que ahi mismo esta en esa tabla, y la fecha que pago la mensualidad asi como la cantidad no se si me explicaria un poco
  • 0

#4 edgar_prospero

edgar_prospero

    Advanced Member

  • Miembros
  • PipPipPip
  • 136 mensajes

Escrito 30 julio 2013 - 11:09

el mayor problema que tengo es que en el dataset del quickreport nomas puedo escoger una tabla
  • 0

#5 Fenareth

Fenareth

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.486 mensajes
  • LocationMexico City

Escrito 30 julio 2013 - 11:38

Hola amigo,

Y porqué no usar un TQuery, donde mediante la consulta que le agregas puedes unir tantos campos y tablas como sea necesario...

Saludox ! :)

  • 0

#6 edgar_prospero

edgar_prospero

    Advanced Member

  • Miembros
  • PipPipPip
  • 136 mensajes

Escrito 30 julio 2013 - 11:48

no se si me podrias ayudar un poco mas con lo que me comentas, de como hacerlo, te lo agradeceria
  • 0

#7 Fenareth

Fenareth

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.486 mensajes
  • LocationMexico City

Escrito 30 julio 2013 - 03:50

Claro !

En vez de usar tablas en tu QuickReport utiliza un componente TQuery. En su propieda SQL coloca la sentencia necesaria para traerte los campos que buscas, algo  como:


select unatabla.campo1, unatabla.campo2,
          otratabla.campo3, otratabla.campo4
  from unatabla
  join otratabla on unatabla.camporelacion = otratabla.camporelacion


Mediante el join "unes" campos de tablas relacionadas para mostrarlos en un solo grupo de registros (DataSet), el secreto es en generar la consulta adecuadamente para que puedas ver los campos y los registros correctos.

Entonces ya con la consulta creada, enlazas el TQuery en la propiedad DataSet de tu reporte y tendrás la información de todas las tablas que hayas unido en tu consulta.

Espero haberme explicado un poco mejor, si no, aquí andamos (y)

Saludox ! :)


  • 0

#8 cadetill

cadetill

    Advanced Member

  • Moderadores
  • PipPipPip
  • 994 mensajes
  • LocationEspaña

Escrito 31 julio 2013 - 01:14

Buenas,

Hace mucho que no uso QR, pero si lo que quieres imprimir es un maestro/detalle, éste te lo permite hacer mediante las bandas SubDetail. Investiga por ese lado.

Otra solución, si son master/detail, es la que propone Fenareth, sacar toda la información en una Query e imprimir ese resultado.

Por otro lado, si las tablas no tuvieran nada que ver una con la otra, existe un truco para hacerlo (yo lo usaba). Si fuera éste el caso, me lo dices y lo explico con detalle.

Nos leemos

  • 0

#9 edgar_prospero

edgar_prospero

    Advanced Member

  • Miembros
  • PipPipPip
  • 136 mensajes

Escrito 31 julio 2013 - 11:19

pues su pudieras explicarme de la manera que dices me seria de mucha ayuda porque no logro solucionar lo que quiero
  • 0

#10 Fenareth

Fenareth

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.486 mensajes
  • LocationMexico City

Escrito 31 julio 2013 - 11:42

Amigo edgar_prospero, porqué no colocas aquí la estructura de tus tablas para que podamos orientarnos mejor ?

Saludox ! :)
  • 0

#11 edgar_prospero

edgar_prospero

    Advanced Member

  • Miembros
  • PipPipPip
  • 136 mensajes

Escrito 31 julio 2013 - 12:03

lo estoy intentando de esta manera :




delphi
  1. datos.prueba.close ;
  2. datos.prueba.SQL.Clear;
  3.  
  4. datos.prueba.sql.add('SELECT alta.folio, alta.fecha_alta,  alta. nombre , alta.recibo, alta.fecha_ins, alta.restante, mensualidad.fecha_men, mensualidad.mes, mensualidad.recibo_men, mensualidad.saldo  FROM alta    '+
  5.  
  6. '  JOIN mensualidad ON alta.folio = mensualidad.codigo  ');
  7.  
  8. datos.prueba.ParamByName('nomini').Asstring:=nomini.Text;
  9. datos.prueba.ParamByName('nomfin').Asstring:=nomfin.Text;
  10.  
  11. datos.prueba.PREPARE;
  12. datos.prueba.Active:=TRUE;
  13. form18.report.Preview;



pero no se en que parte agregar este parametro



delphi
  1. WHERE  nombre>=:nomini and nombre<=:nomfin



  • 0