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 14-07-2015
Gregorio Cíber Gregorio Cíber is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 16
Gregorio Cíber Va por buen camino
Borrar registros de un grid. Salta al siguiente

Hola amigos.
Aunque el tema de refrescar un grid después de insertar/modificar/etc. se ha tratado en muchas ocasiones aquí, no veo que este caso haya sido objeto de consulta.
Se trata de lo siguiente. Para refrescar una pantalla de datos (maestro/detalle) que haya podido ser modificada por otro puesto, antes de insertar un nuevo registro, modificar o anular uno existente, hago una llamada a esta función (la parte comentada del final es para excluir que ahí se produzca el comportamiento anómalo):

Código Delphi [-]
function SePuedePedido(t_cab, t_lin: TpFIBDataSet; s_cli_pro: string; n_ref_pedido, n_ref_cli_pro: integer; d_fecha: TDate; b_comprobar_cli_pro: Boolean): Boolean;
var
  marca: TBookmark;
begin
  // Tabla de cabeceras
  t_cab.Refresh;
  // Tabla de líneas
  with t_lin do
  begin
    try
      marca := GetBookmark;
      DisableControls;
      CloseOpen(True);
      //FullRefresh;
      //t_lin.Edit;
      //t_lin.Cancel;
    finally
      GotoBookmark(marca);
      FreeBookmark(marca);
      EnableControls;
    end;
  end;

  Result := True;
//  Result := PedidoDisponible(s_cli_pro, n_ref_pedido);
//
//  if Result and b_comprobar_cli_pro and CliProBloqueado(s_cli_pro, n_ref_cli_pro, d_fecha) then
//    Result := False;
end;

La parte en negrita la he probado con está arriba, bien así:

Código Delphi [-]
     //CloseOpen(True);
      FullRefresh;
      //t_lin.Edit;
      //t_lin.Cancel;


o bien así:

Código Delphi [-]
      //CloseOpen(True);
      //FullRefresh;
      t_lin.Edit;
      t_lin.Cancel;


y en todos los casos ocurre lo siguiente:
  1. Borro un registro del grid detalle y perfecto. El registro desaparece y se hace el scroll.
  2. Intento borrar de nuevo el registro que está ahora marcado, salta al siguiente y lo borra.
A ver. Por si no me he explicado bien. Supongamos una tabla detalle de pedidos con estas líneas:

Código:
001 Bañera

002 Grifo bañera
003 Ducha
004 Grifo ducha

005 Lavabo
006 Grifo lavabo
Señalo 003 y lo borro. Quedaría:

Código:
001 Bañera

002 Grifo bañera
004 Grifo ducha

005 Lavabo
006 Grifo lavabo

Si intento borrar de nuevo, ocurriría:

Código:
001 Bañera

002 Grifo bañera
004 Grifo ducha

005 Lavabo
006 Grifo lavabo

Obviamente si acepto borrar, borraría el registro 005 y no el 004.


Como llevo con esto horas y horas, torpe que es uno, y no doy con la solución, solicito ayuda. Utilizo Delhpi 6 y componentes FIBPlus 6.4.1

Gracias anticipadas.

Última edición por Casimiro Notevi fecha: 14-07-2015 a las 23:53:30.
Responder Con Cita
  #2  
Antiguo 14-07-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.068
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Recuerda poner los tags al código fuente, ejemplo:

Responder Con Cita
  #3  
Antiguo 14-07-2015
Gregorio Cíber Gregorio Cíber is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 16
Gregorio Cíber Va por buen camino
Sorry, No volverá a ocurrir.
Responder Con Cita
  #4  
Antiguo 14-07-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.068
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No pasa nada, recuérdalo para la siguiente vez
Ya lo cambié por ti.
Responder Con Cita
  #5  
Antiguo 15-07-2015
Gregorio Cíber Gregorio Cíber is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 16
Gregorio Cíber Va por buen camino
Gracias Casimiro. Lo iba a hacer ahora pero te has adelantado. Eres rápido y veloz.
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
Borrar fila mediante un grid Aleh OOP 3 27-05-2008 13:25:28
Saltar al siguiente registro en Grid al insertar el máximo de caracteres de un campo nemesio Varios 3 15-06-2006 10:32:04
borrar Columnas Grid Luis Castillo Varios 3 17-01-2006 20:17:43
Registros en un Grid JorgeBec Varios 1 02-04-2005 09:15:49
Borrar linea de String Grid triniti OOP 2 02-07-2004 10:38:58


La franja horaria es GMT +2. Ahora son las 19:48:46.


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