Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-09-2006
Avatar de Goyo
Goyo Goyo is offline
Miembro
 
Registrado: feb 2006
Posts: 89
Poder: 19
Goyo Va por buen camino
Question problemas en un informe con QuickReport

quiero imprimir un informe con quickreport, tengo dos tablas: Vehiculos (NumeroVehiculo, Placas, Marca, Tipo, Modelo, Serie, Cilindros, ResguardoA) y BitacoraVehiculos (Clave, NumeroVehiculo, FechadeServicio, ConceptoReparacion, DiasComision,LitrosGasolina, Importe, ImporteTotal).

La tabla maestra (podriamos llamarla así es la de Vehiculos, que es mi catalogo de vehiculos) y la tabla de detalle es BitacoraVehiculos (donde llevo todos los gastos por gasolina o reparaciones que genera un vehiculo en un año), como pueden ver en ambas tablas tengo la clave NumeroVehiculo este es un campo Alfanumerico de 3 ('017', '020', '099', '100',... etc) que como enlazo los datos de tabla vehiculo y grabo unicamente el numero del vehiculo en la tabla de Bitacora Vehiculos.

Bueno aqui les explico en problema...

Tengo un formato de informe que en la parte superior llevará todos los datos del vehiculo: Placas _______, Numero Vehiculo _________, Marca _________, Tipo _________, Modelo ___________, Serie __________, Cilindros ___________, Resguardo a _________, posteriormente, llevará un encabezado: de la siguiente manera: | Fecha | Concepto Reparaciones | Dias Comision | Litros Gasolina | Importe | Importe Acumulado |
donde debajo de cada encabezado llevará todos los detalles de los gastos de los vehiculos, donde voy a imprimir los campos: Fecha, ConceptoReparaciones, DiasComision, LitrosGasolina, Importe, ImporteAcumulado

como hacerlo para que en la parte superior del reporte me de el titulo principal de mi compañia, posteriormente los datos del vehiculo, enseguida en encabezado los detalles y posteriormente los detalles del vehiculo. Osea que si quiero imprimir el vehiculo '050' me de el reporte del vehiculo con todos sus detalles, pero solo los de ese vehiculo.
Responder Con Cita
  #2  
Antiguo 28-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola Goyo
Que sentencia sql usas para llamar al qrepor?
Lo llamas desde un from o que?
Es dificil atender a una pregunta si no hay por lo menos un pedazo de codigo en el que digas por ejemplo:
Aqui:// llamo al reporte
Aqui:// Hago esto
Aqui:// Ect. Etc. Etc.
Podria imaginar un codigo que hicira esto de muchas formas, pero sin datos. Creo si mas no recuerdo trabajas con IB , bueno esto ya es un comienzo, como quieres que alguien mas te ayude si no te explicas lo mas completo posible. para mi es con codigo.
Saludos
Responder Con Cita
  #3  
Antiguo 29-09-2006
Avatar de Goyo
Goyo Goyo is offline
Miembro
 
Registrado: feb 2006
Posts: 89
Poder: 19
Goyo Va por buen camino
aqui esta el codigo desde donde lo llamo... (las tablas son de Paradox)
Código Delphi [-]
procedure TFrmImprimirVehiculo.SpeedButton1Click(Sender: TObject);
Var Filtro : String;
    consulta : string;
begin
  If (DBNumeroVehiculo.Text <> 'Todos')  then
    Begin
    try
     FrmReporte1:=TFrmReporte1.Create(self);
    consulta:='SELECT NumeroVehiculo FROM BitacoraVehiculos RIGHT JOIN Vehiculos ON BitacoraVehiculos.NumeroVehiculo = Vehiculos.NumeroVehiculo WHERE Vehiculos.NumeroVehiculo ='+chr(39)+DBNumeroVehiculo.Text+chr(39);
  FrmReporte1.Query1.SQL.Add(consulta);
  FrmReporte1.query1.Active:=False;
  FrmReporte1.query1.Active:=True;
  If RadioGroup1.ItemIndex = 0 then FrmReporte1.QuickRep1.Print
      else FrmReporte1.QuickRep1.Preview
           finally
           FrmReporte1.QuickRep1.Free;
        end;
   end;
end;

en mi formato reporte tengo un Query, en el quickreport tengo los siguientes componentes: Query1 en su propiedad DataBaseName tengo: Datos

QuickRep1 en su propiedad DataSet tengo el Query1

QRBand1 en su propiedad BandType = rbPageHeader "aqui tengo definidos el nombre y logotipo de la compañia donde laboro" y aqui imprimo los datos del vehiculo (de la tabla Vehiculos): Placas _______, Numero Vehiculo _________, Marca _________, Tipo _________, Modelo ___________, Serie __________, Cilindros ___________, Resguardo a _________.

QRBand2 en su propiedad BandType = rbColumnHeader "aqui tengo solo los tipos de los detalles (encabezado de los detalles)
| Fecha | Concepto Reparaciones | Dias Comision | Litros Gasolina | Importe | Importe Acumulado |

QRBand3 en su propiedad BandType = rbDetail "aqui imprimo los campos de detalles de cada vehiculo" de la tabla Bitacora:
Fecha, ConceptoReparaciones, DiasComision, LitrosGasolina, Importe, ImporteAcumulado

.... espero que ahora si me entiendas mejor...

Última edición por Goyo fecha: 29-09-2006 a las 16:16:00.
Responder Con Cita
  #4  
Antiguo 29-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola Goyo
Bueno empecemos con esto:
Aqui voy a modificar algunas cosas que me parece sobran o no se necesitan,
por ejemplo la variable Filtro no la usas en ninun momento y la variable consulta no se necesita.
Ademas de implementar el uso del nombre de la empresa y fecha en el reporte, recuerda a los 45 ya casi ni se ve tenme paciencia.
Esto va a llamar al reporte:
Código Delphi [-]
procedure TFrmImprimirVehiculo.SpeedButton1Click(Sender: TObject);
begin
  If (DBNumeroVehiculo.Text <> 'Todos')  then
    Begin
    try
     FrmReporte1:=TFrmReporte1.Create(self);
    FrmReporte1.Query1.SQL.Add('SELECT NumeroVehiculo');
    FrmReporte1.Query1.SQL.Add('FROM BitacoraVehiculos RIGHT JOIN Vehiculos ON BitacoraVehiculos.NumeroVehiculo = Vehiculos.NumeroVehiculo ');
    FrmReporte1.Query1.SQL.Add('WHERE Vehiculos.NumeroVehiculo ='+chr(39)+DBNumeroVehiculo.Text+chr(39)'');
// esto es por si en el reporte quieres ver la fecha en que se hizo
// Se hace poniendo en el from dos DateTimePiker para escoger la fecha
// en que se quiere el reporte, en este caso el componente lo llamo DPT1 y 2
// Los QRLbl Los pones en el reporte
   FrmReporte1.QRLblDesde.Caption := DateToStr(DTP1.Date);
   FrmReporte1.QRLblHasta.Caption := DateToStr(DTP2.Date); 
// Con otro QRLbl Pones el nombre de la empresa
   FrmReporte1.QRLblNombreEmpresa.Caption := 'Empresa Nombre';
// El Numero del vehiculo
   FrmReporte1.QRLblNumeroV.Caption :=''+chr(39)+DBNumeroVehiculo.Text+chr(39)'';
// Posteriormente envias a imprimir
  If RadioGroup1.ItemIndex = 0 then FrmReporte1.QuickRep1.Print
      else FrmReporte1.QuickRep1.Preview
           finally
           FrmReporte1.QuickRep1.Free;
        end;
   end;
end;
El uso para mi de tanto ADD es porque el codigo se lee mejor.
En el QReport pones un QRband al principio y en su interior pones los QRLbl que te indica el codigo anterior, con los nombres de estos.
Bueno con esto ya tienes para pensar, Creo que esto seria, si tienes otra duda dime.
Saludos
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con quickreport escullar Impresión 3 30-05-2005 11:12:37
Enviar parametros a un informe (QuickReport) Lionel Impresión 1 08-06-2004 15:25:45
Problemas con un informe Taribus Impresión 3 26-01-2004 10:12:17
Problemas con Quickreport REDCOM Impresión 2 09-07-2003 04:09:47
Problemas con QuickReport silviodp Impresión 3 20-05-2003 18:44:18


La franja horaria es GMT +2. Ahora son las 23:57:37.


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