Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Levantar Datos de Columna en Grid (https://www.clubdelphi.com/foros/showthread.php?t=16493)

lionsoft 30-11-2004 13:23:01

Levantar Datos de Columna en Grid
 
Hola!

Tengo un grid, el cual muestra los datos de una consulta SQL (de 3 tablas, donde dos solo muestran nombres linkeados por un codigo en la tabla principal).
Necesito dar la posibilidad que el usuario eliga una de las filas de ese grid, y luego pueda clickear un boton para borrarla de la tabla.
Lo que no se, es como obtener que fila eligio, o como levantar cierto campo de esa fila, para poder luego eliminar.
Es decir, clickeando la fila X, deberia levantar el codigo de empleado de esa fila X, para luego borrar. Como detecto esto?
Saludos!
Lion

marcoszorrilla 30-11-2004 15:04:23

Supongamos que en la primera columna está el código que necesitamos, aquí tienes un ejemplo de como capturar dicho valor:
Código Delphi [-]
 procedure TForm1.DBGrid1CellClick(Column: TColumn);
 begin
  ShowMessage(Query1.fields[0].asString);
 end;

Luego quedaría, con un componente tipo UpdateSql, ejecutar la orden correspondiente contra este código capturado y tabla correspondiente.

Un Saludo.

cahp 30-11-2004 15:33:00

Hola:

el dataset que este asociado al dbgrid, esta posicionado en el registro que se posiciona el grid.

Si necesitas mas informacion, te lo amplio.

Saludos.

lionsoft 02-12-2004 00:22:36

Si podes ampliar el tema del dataset, seria interesante.

Gracias por las respuestas

Lion

Lepe 02-12-2004 08:50:03

lo que ha dicho cahp es básicamente lo propuesto por Marcos Zorrilla.

Puedes tener 80 campos en la consulta SQL, pero solo mostrar 10 en el grid, (si es una consulta persistente es muy facil quitar los campos que no quieres que visualice el usuario), por tanto, puedes usar:

Código Delphi [-]
    procedure TForm1.DBGrid1CellClick(Column: TColumn);
 begin
  ShowMessage(Query1.fields[0].asString);
// o si te parece más comodo
  ShowMessage(Query1.fieldByName('campoClave').asString);
 end;

Lo de campos persistentes, es simplemente que en diseño tienes puesta la cláusula SQL y al conectar el grid, en tiempo de diseño, das un doble clic al grid para añadir los campos que quieres ver.

De esta forma ya puedes acceder a los campos claves que necesites en algun momento, aunque el usuario no lo vea en pantalla.

Saludos

cahp 02-12-2004 13:49:31

No puede estar mejor explicado!!

Saludos.

lionsoft 28-03-2005 19:50:06

La solucion me sirvió si clickeaba una de las celdas de la fila.. ahi si levantaba correctamente el dato.
Pero la idea es clickear la fila.. porque el usuario al ver el cursor en forma de triangulo en el grid, supone que debe moverse y elegir con eso.
Como hago para distinguir esto?


La franja horaria es GMT +2. Ahora son las 15:15:01.

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