Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-09-2006
Avatar de Goyo
Goyo Goyo is offline
Miembro
 
Registrado: feb 2006
Posts: 89
Poder: 19
Goyo Va por buen camino
Red face filtro entre dos tablas en tiempo de ejecucion

tengo dos tablas: Vehiculos (catalogo de vehiculos) y Bitacora (control de gastos de los vehiculos)
En la tabla vehiculos tengo un campo que es la llave principal: NumeroVehiculo y este tambien lo grabo en un campo NumeroVehiculo (tipo cadenas de 3) de la tabla Bitacora (que es donde llevo todos los servicios y reparaciones que se hacen a los vehiculos), en la tabla bitacora tengo un indice con los campos: NumeroVehiculo y Fecha, esto para que me ordene todos los vehiculos de acuerdo a la fecha.

cuando trato de imprimir en Quickreport, llamo a un formulario llamado FrmImprimirVehiculos donde tengo un componente DBLookupComboBox donde enlazo la tabla vehiculos, en su propiedad ListSource=DM.DSVehiculos, ListField=NumeroVehiculo y KeyField=NumeroVehiculo, ademas tengo otro componente TEdit, con la finalidad de que tenga la opcion de seleccionar el vehiculo directamente desde DBLookupComboBox o desde el TEdit (aqui escribiria el numero del vehiculo).

Bueno mi problema es que cuando ejecuto el programa y selecciono algun vehiculo, siempre me toma el primer vehiculo, por ejemplo si quiero imprimir el vehiculo='020' me toma el '017' o si quiero imprimir el '099', me toma el '017' , tengo que seleccionar dos veces (y cargar el Quickreport) antes de que me acepte el vehiculo que quiero. En el QuickReport imprimo datos de la tabla Vehiculos en la cabecera del reporte y el cuerpo corresponde a la tabla Bitacora. de esta forma ejecuto el filtro..

Código Delphi [-]
procedure TFrmImprimirVehiculo.SpeedButton1Click(Sender: TObject);
 var Filtro:string;
begin
  dm.TbBitacora.Active:=True;
  dm.TbBitacora.Filter := '';
  dm.TbBitacora.Filtered := False;
  If (DBNumeroVehiculo.Text <> 'Todos')
  then
  Begin
    If Filtro > '' then
       Filtro := Filtro + ' And ' ;
       Filtro := Filtro + ' NumeroVehiculo = ' + dm.TbVehiculos.FieldByname('NumeroVehiculo').AsString;
  End;
   dm.TbBitacora.Filter := Filtro;
   dm.TbBitacora.Filtered := True;
   FrmReporte1.QuickRep1.Preview;
end;

si hay alguna otra forma de mejorar los filtros les agradecere...

Última edición por Goyo fecha: 26-09-2006 a las 17:32:44.
Responder Con Cita
 



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
Error en Consulta de tablas creadas en tiempo de ejecucion javicho_villa Varios 1 02-02-2006 17:14:28
Crear tablas en tiempo ejecucion noe Firebird e Interbase 1 29-09-2005 16:50:41
Asignar la ruta de tablas en tiempo de ejecucion tortelini Varios 2 19-03-2005 12:13:53
Creación de tablas temporales en ADO en tiempo de ejecución Athalon Conexión con bases de datos 1 27-04-2004 13:20:20
tablas con filtro davidgaldo Conexión con bases de datos 2 20-02-2004 19:09:09


La franja horaria es GMT +2. Ahora son las 09:52:00.


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