Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   seleccionar fila de dbgrid luego de guardar registro (https://www.clubdelphi.com/foros/showthread.php?t=95927)

LACV 26-10-2022 14:11:53

seleccionar fila de dbgrid luego de guardar registro
 
Buen dia

necesito que al guardar o modificar un dato al cargar los datos en un dbgrid seleccione ese dato que tenga foco en esa fila, ya que en este momento al guardar acatualizo la consulta pero me ubica en el primer registro.

agradesco de antemano su colaboracion

kuan-yiu 26-10-2022 14:20:56

Debes posicionarte en el registro que desees tras actualizar, y como siempre hay varios modos.
Puedes guardar los campos necesarios para encontrarlo y hacer un locate, que supongo que será lo más adecuado por lo que dices.

LACV 26-10-2022 15:08:00

Cita:

Empezado por kuan-yiu (Mensaje 548824)
Debes posicionarte en el registro que desees tras actualizar, y como siempre hay varios modos.
Puedes guardar los campos necesarios para encontrarlo y hacer un locate, que supongo que será lo más adecuado por lo que dices.

gracias por el dato pero no encuentro documentacion de locate para dbgrid

kuan-yiu 26-10-2022 15:19:30

Se ejecuta sobre la consulta, ese DBGrid tiene que alimentarse con algo, ahí es donde debes buscar:
function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean;

Neftali [Germán.Estévez] 26-10-2022 16:51:19

Cita:

Empezado por LACV (Mensaje 548823)
necesito que al guardar o modificar un dato al cargar los datos en un dbgrid seleccione ese dato que tenga foco en esa fila, ya que en este momento al guardar acatualizo la consulta pero me ubica en el primer registro.

En estos casos también puedes usar BookMarks.
Antes de la actualización marcas el registro actual con un Bookmark utilizando GetBookmark (1), actualizas el Dataset y luego vuelves al registro marcado en (1) con GotoBookmark.

Aquí tienes un ejemplo en Delphi:
https://docwiki.embarcadero.com/Code...okmark_(Delphi)

LACV 26-10-2022 16:57:28

Cita:

Empezado por kuan-yiu (Mensaje 548826)
Se ejecuta sobre la consulta, ese DBGrid tiene que alimentarse con algo, ahí es donde debes buscar:
function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean;

Código Delphi [-]
DModulo.UQuery_Producto.Locate('Id', cod, []);
with FrmProducto.DBGVista do
begin
    SetFocus;
end;

muchas gracias; este fue el codigo que use para ubicar el dato.

Casimiro Notevi 26-10-2022 19:49:20

Cita:

Empezado por LACV (Mensaje 548828)
DModulo.UQuery_Producto.Locate('Id', cod, []);
with FrmProducto.DBGVista do
begin
SetFocus;
end;

muchas gracias; este fue el codigo que use para ubicar el dato.

Que es lo mismo que esto:
Código Delphi [-]
DModulo.UQuery_Producto.Locate('Id', cod, []);
FrmProducto.DBGVista.SetFocus;

LACV 26-10-2022 21:02:51

Cita:

Empezado por Casimiro Notevi (Mensaje 548829)
Que es lo mismo que esto:
Código Delphi [-]
DModulo.UQuery_Producto.Locate('Id', cod, []);
FrmProducto.DBGVista.SetFocus;

que pena es que se me paso ponerlo y cuando cai en cuenta ya no podia editar el comentario

Casimiro Notevi 26-10-2022 21:13:23

Siempre puedes escribir otro mensaje, como este :)


La franja horaria es GMT +2. Ahora son las 18:25:54.

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