Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Seleccionar fila en DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=61438)

cslbcn 07-11-2008 17:15:33

Seleccionar fila en DBGrid
 
Hola a todos, a ver si me podéis ayudar con esto:

Tengo 2 formularios: Form1 y Form2.

En Form1 tengo 1 botón y 3 DBLookUpComboBox (DBLCB)

En el 1º DBLCB se pone poblacion
En el 2º DBLCB se pone provincia
En el 3º DBLCB se pone pais

El botón sirve para abrir el Form2.
El Form2 sirve para buscar provincia o paises o poblaciones mediante un sólo campo.
Por ejemplo pongo en provincia: Barcelona.
En el DBGrid del Form 2 me aparece una lista con todos los registros que tengan en su campo provincia la palabra Barcelona.

Hasta ahí todo bien. Ahora quiero que cuando selecciono un registro del DBGrid y le doy al botón Aceptar, los DBLCB del Form1 se rellenen con la información correcta del registro.

Si he seleccionado un registro en Form2 con poblacion: reus, provincia: tarragona, pais: españa; que en Form1 los DBLCB1, 2 y 3 salgan estos 3 nombres.

Alguna sugerencia?

Gracias!

Rockin 07-11-2008 18:18:50

Vamos a ver, tiene que hacer algo parecido a esto.

Hacemos clic en la fila del DBGrid, y al darle a aceptar algo parecido a esto.

Código Delphi [-]


with DataSet do
begin
Close;
CommandText:= 'select provincia from tabla_provincia'; //Seleccionamos los registros que quieras; Por ejemplo: Provincias
Open;
Last;
end;

DBLCB.ListSource:= Tu_DataSource;
DBLCB.KeyField:= 'provinicia';
DBLCB.ListField:= 'provincia';
DBLCB.KeyValue:= DBGrid.Fields[columnadelcampo].Text

Así con los 3 DBLCB, cambiando la columna del campo que quieras mostrar.

El CommandText es porque uso ClientDataSet, s¡ tu usas otros componentes adaptalo.

Espero que te valga, saludos.

cslbcn 07-11-2008 18:29:45

Ya me salió, es así

Código Delphi [-]
procedure TFPostal.DBGrid1CellClick(Column: TColumn);
begin
with DMMestres.ADOQBuscar do
  begin
    vciu:= fieldbyname('loc').asstring;
    vpro:= fieldbyname('reg_code').asstring;
    vpos:= fieldbyname('code_post').asstring;
  end;
end;

procedure TFPostal.DBGrid1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  DBGrid1CellClick(nil);
end;

procedure TFPostal.Button3Click(Sender: TObject);
begin
  FEmpresa.DBLCBCposGenEmp.keyvalue := vpos;
  FEmpresa.EPovGenEmp.text          := vciu;
  FEmpresa.EProGenEmp.text          := vpro;

end;


La franja horaria es GMT +2. Ahora son las 23:36:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi