Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-08-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
dblookcombobox maestro detalle

hola q tal, miren tengo un maestrdetalle e un form entonces utilizo un dblookupcombobox para filtrar los datos , osea al seleccionar un registro del maestro me muestra el detalle relacionado en un dbgrid. el dbgrid esta relacionado a tabla detalle.
bien lo que queiro es que al principio de la ejecucion en el grid me muestre toda la tabla detalle sin estar filtrada por la tabla maestro. pero cuando quiero buscar registros relacionados con la tabla mestro ejecuto el dblookupcombobox, bien ahora cuando hago click otra vez sobre el lookupcombobox para q se cierre (on close up) vuelva a mostrar la tabla detalle completa en el dbgrid sin estar filtrada.
el problema es que no se sobre q eventos del lookcombobox activar y desactivar la talba maestro . o como sugieren q se podria hacer ?
gracias a todos
Responder Con Cita
  #2  
Antiguo 19-08-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Código Delphi [-]
{ Form.OnCreate }
procedure TForm.FormCreate(Sender: TObject);
begin
  tbDetalle.MasterSource:= nil;
end;

{ DBLookupComboBox.OnCloseUP }
procedure TForm.DBLookupComboBoxCloseUp(Sender: TObject);
begin
  tbDetalle.MasterSource:= nil;
end;

{ DBLookupComboBox.OnDropDown }
procedure TForm.DBLookupComboBoxDropDown(Sender: TObject);
begin
  tbDetalle.MasterSource:= dsMaestro;
end;

Saludos.
Responder Con Cita
  #3  
Antiguo 19-08-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

Se me pasó por alto que quizá estés trabajando con TQuery.

En ese caso sería:
Código Delphi [-]
const
   MASTDET_OFF =  'SELECT * FROM DETALLE';
   MASTDET_ON =   'SELECT * FROM DETALLE WHERE "DETALLE"."MASTER_FIELD" = :"MASTER_FIELD"';

{ Form.OnCreate }
procedure TForm.FormCreate(Sender: TObject);
begin
  with QryMaestro do
  begin
    SQL.Text:= 'SELECT * FROM MAESTRO';
    Open;
    SQL.Text:= MASTDET_OFF;
    Open;
  end;
end;

{ DBLookupComboBox.OnCloseUP }
procedure TForm.DBLookupComboBoxCloseUp(Sender: TObject);
begin
  with QryDetalle do
  begin
    SQL.Text:= MASTDET_OFF;
    Open;
  end;
end;

{ DBLookupComboBox.OnDropDown }
procedure TForm.DBLookupComboBoxDropDown(Sender: TObject);
begin
  with QryDetalle do
  begin
    SQL.Text:= MASTDET_ON;
    Open;
  end;
end;

Nota:
.- Relacioná la propiedad: QryDetalle.DataSource con el TDataSource asociado al QryMaestro. (QryDetalle.DataSource -> dsMaestro)
.- MASTER_FIELD sería el nombre del campo por el que estableces la relación.

Saludos.

Última edición por ecfisa fecha: 19-08-2010 a las 07:15:43.
Responder Con Cita
  #4  
Antiguo 21-08-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
dblookupcombobox mastersetail

ok, muchas gracias nuevamente probare la qer opcion ya que no estoy trabajando tquery, no entiendo porque oncreate, para que utilizaria ese procedimiento?. gracias
Responder Con Cita
  #5  
Antiguo 21-08-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por gonza_619 Ver Mensaje
ok, muchas gracias nuevamente probare la qer opcion ya que no estoy trabajando tquery, no entiendo porque oncreate, para que utilizaria ese procedimiento?. gracias
En el caso del TTable, lo puse por que vos querés que el DBGrid aparezca sin "filtrar".
Por lo tanto en la creación del from asigno bDetalle.MasterSource:= nil, de ese modo se quita la relación de dependencia
con la Tabla Maestro y ves todo los registros de tbDetalle. (por si lo hubieses asignado en tiempo de diseño)

En el caso del TQuery... es igual sólo que difiere la sintáxis, pero no te compliques si todavia no trabajas con Querys.

Nota: Usé la palabra "filtrar" como convención, pero que no se confunda con la propiedad Filter de TTable, no tiene
nada que ver en este caso.


Saludos.

Última edición por ecfisa fecha: 21-08-2010 a las 06:59:25.
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
Saber si el DBGrid (Detalle) esta Vacio en Relacion Maestro/Detalle Adrian Murua Conexión con bases de datos 2 03-01-2009 13:48:46
Maestro/Detalle (No graba en tabla Maestro) teclilla Tablas planas 12 21-04-2008 20:59:54
Problema tabla Maestro-detalle en la q la pk de t.detalle formad por 2cods de la maes akinom38 Varios 1 09-11-2007 19:27:44
Respecto a la relacion maestro detalle detalle ilichhernandez Conexión con bases de datos 0 15-05-2007 18:13:54
Maestro-Detalle ;Actualizar detalle a partir de un DBgrid norberto_larios Conexión con bases de datos 1 11-09-2004 18:17:34


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


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