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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-07-2004
dsa132132 dsa132132 is offline
Miembro
 
Registrado: jul 2004
Posts: 29
Poder: 0
dsa132132 Va por buen camino
Ayuda con un grid!!!

Mi problema es el siguiente;

En un formulario de mi aplicación tengo un grid n el que visualizo la tabla de los abonados de una base de datos.

Por otra parte, en el mismo formulario, tengo un boton que efectúa la busqueda de un abonado.

Lo que quiero es que al efectuar la busqueda del abonado quede resaltado en el grid para ver toda su información.



no se si me he explicado bien, quiero que el abonado sober el que realizo la busqueda quede señalado en el BDGrid. Se puede hacer?



Os doy el código de la busqueda para ver si alguien me lo puede resolver;





DMAbonados.QBabonado.close;

DMAbonados.QBabonado.SQL.Clear;

DMAbonados.QBabonado.SQL.Add('Select * from abonado where nombre=:nombre');

DMAbonados.QBabonado.ParamByName('nombre').value:=edit5.text;

DMAbonados.QBabonado.open;



Gracias.
Responder Con Cita
  #2  
Antiguo 12-07-2004
Ruben_Cu Ruben_Cu is offline
No confirmado
 
Registrado: oct 2003
Ubicación: Mariel, Cuba
Posts: 271
Poder: 0
Ruben_Cu Va por buen camino
Hola, aqui te envio unas líneas que te pueden servir, debes poner la propiedad DefaultDrawing del dbgrid a true.
El color lo puedes cambiar a tu gusto, es pero te sirva.
Código PHP:
implementation
 type
  TCustomDBGrid1 
= class(TCustomDBGrid);
{
$R *.dfm}

procedure TForm1.DBGrid1DrawColumnCell(SenderTObject; const RectTRect;
  
DataColIntegerColumnTColumnStateTGridDrawState);
begin

  with TCustomDBGrid1
(sender) do begin
    
if DataLink.ActiveRecord Row 1 then begin
      Canvas
.Brush.Color := claqua;
      
Canvas.Pen.Color := claqua;
    
end;

    
DefaultDrawColumnCell(RectDatacolColumnState);
  
end;
end
Saludos
Responder Con Cita
  #3  
Antiguo 12-07-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
No estoy seguro de lo que queres hacer. Entiendo que el resultado del Query, luego, queres ubicarlo en otro dataset.

Es asi?

Podes valerte del método Findkey.

Supongamos que además del qbAbonado, tenes un Grid asociado al DataSet tAbonado.

Entonces quedaría algo como:

Código Delphi [-]
  with DMAbonados.QBAbonado do
  Begin
    ParamByName('nombre').Value := Edit5.Text;
    Open;
  end;
  try
    if not DMAbonados.qbAbonado.IsEmpty Then
      tAbonado.FindKey([DMAbonados.qbAbonado.FieldByName('codigo').AsInteger])
     else
       ShowMessage('No hay coincidencias!');
  finally
    DMAbonados.qbAbonado.Close;
  end;

Como ves, he tenido el cuidado de cerrar qbAbonado, que quizas no sea necesario en tu caso (depende de si lo usas para algo mas). Tampoco he modificado su propiedad SQL suponiendo que lo utilizarás solo para este tipo de consultas... pero también eso puede variar en tu caso.

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
  #4  
Antiguo 12-07-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 21
marto Va por buen camino
Wop!

Otra opción es, en lugar de ejecutar otra query hacer un locate directamente sobre el dataset del grid.
Código Delphi [-]
  Grid.DataSource.DataSet.Locate('nombre', edit5.Text, []);
__________________
E pur si muove
Responder Con Cita
  #5  
Antiguo 12-07-2004
dsa132132 dsa132132 is offline
Miembro
 
Registrado: jul 2004
Posts: 29
Poder: 0
dsa132132 Va por buen camino
GRacias!!!!!!!!

Muchas gracias a todos por vuestra ayuda!!! Este foro es realmente bueno y eficaz.

GRACIAS!!!
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 12:54:13.


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