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 25-11-2005
Avatar de User_baja1
User_baja1 User_baja1 is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
User_baja1 Va por buen camino
Question DBGrid no grabaaaa!!!

Hola a todos,
Estoy usando un DBGrid para editar datos y ocurre lo siguiente:

Cuando un usuario modifica un registro y pulsa intro o hace clic en la siguiente columna o registro, entonces el registro se modifica bien.

El problema es cuando nada mas modificar el registro el usuario hace clic en la zona inferior del dbgrid (donde no hay registros), entonces automaticamente se cancela la edicion del registro y no guarda nada.

¿Sabes como solucionarlo??
He probado capturar eventos onexit onenter oncellclic para poner a mano un post y no puedo ya que estos eventos no se disparan.....

Nota:
he probado los componentes:
DBGrid, JvDbGrid y JvUltimateDBGrid y a todos les pasa lo mismo. Tambien he probado por la propiedad CancelOnExit=False y no funciona en este caso.

¿Podeis ayudarme?

Gracias a todos,
david.
Responder Con Cita
  #2  
Antiguo 25-11-2005
clanmilano clanmilano is offline
Miembro
 
Registrado: ene 2005
Ubicación: Parana - Entre Rios - Argentina
Posts: 58
Poder: 20
clanmilano Va por buen camino
Lightbulb

De mi propia experiencia te podria decir que jamas dejo que un usuario modifique o inserte un registro directamente en una grilla. Yo coloco las grillas de forma no editable, es decir que si el usuario desea insertar o editar o borrar un registro realiza doble click o pulsa un boton para dar el alta o baja y abro un nuevo form que contiene los "edits" en el estado correcto (edit o insert) y alli coloca la info. Espero esto te sirva, la grilla puede ser muy practica pero causa esos problemas...suerteee
Responder Con Cita
  #3  
Antiguo 25-11-2005
Avatar de User_baja1
User_baja1 User_baja1 is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
User_baja1 Va por buen camino
Cita:
Empezado por clanmilano
De mi propia experiencia te podria decir que jamas dejo que un usuario modifique o inserte un registro directamente en una grilla. Yo coloco las grillas de forma no editable, es decir que si el usuario desea insertar o editar o borrar un registro realiza doble click o pulsa un boton para dar el alta o baja y abro un nuevo form que contiene los "edits" en el estado correcto (edit o insert) y alli coloca la info. Espero esto te sirva, la grilla puede ser muy practica pero causa esos problemas...suerteee
Yo tambien lo hago asi pero la experiencia de los usuarios es que quieren modificar datos de forma rapida, por eso hay situaciones que requieren un grid modificable, por ejemplo para lineas de pedidos, albaranes ...etc. De esta forma no se bloquea toda la aplicacion al hacer showmodal, porque puede ser que al ir a insertar o modificar un valor el usuario necesite acceder a otra parte de la aplicacion.
Responder Con Cita
  #4  
Antiguo 25-11-2005
Migpal Migpal is offline
Miembro
 
Registrado: jul 2005
Ubicación: Colombia
Posts: 91
Poder: 19
Migpal Va por buen camino
Dbgrid

Bueno, comparto tambien la idea de no usar las grillas para editar o agregar registros. La verdad el DBgrid es terriblemente engorroso de controlar, yo prefiero usar frames detras de la grilla y mostrarla en cualquier intento de editar o agregar, de esta manera si existe un buscar se conserva en la pantalla, claro siempre y cuando sea MDI.
Responder Con Cita
  #5  
Antiguo 25-11-2005
rocio84 rocio84 is offline
Miembro
 
Registrado: oct 2005
Posts: 19
Poder: 0
rocio84 Va por buen camino
A mi se me ocurre que podrias declarar una variable booleana Editando que la pongas a cierto con la accion OnBeforeEdit de la tabla que quieres modificar, y la vuelves a poner a falso en OnAfterEdit.
A continuacion, con la accione del raton OnMouseUp, comprobar si Editando esta a cierto, en cuyo caso podrias hacer un Post o volver a poner el cursor en la fila que se estaba editando.
No se si me he explicado, no se si es una buena soluccion, pero no se me ocurre otra cosa, espero que se sirva.
Responder Con Cita
  #6  
Antiguo 28-11-2005
Avatar de User_baja1
User_baja1 User_baja1 is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
User_baja1 Va por buen camino
Cita:
Empezado por rocio84
A mi se me ocurre que podrias declarar una variable booleana Editando que la pongas a cierto con la accion OnBeforeEdit de la tabla que quieres modificar, y la vuelves a poner a falso en OnAfterEdit.
A continuacion, con la accione del raton OnMouseUp, comprobar si Editando esta a cierto, en cuyo caso podrias hacer un Post o volver a poner el cursor en la fila que se estaba editando.
No se si me he explicado, no se si es una buena soluccion, pero no se me ocurre otra cosa, espero que se sirva.
A mi no me funciona y es que en el evento OnMouseUp ya no hay nada que hacer, porque el DbGrid ha cancelado la edicion.

Ya se que es un caso atipico pero es que te encuentras a todo tipo de usuarios. Yo por mi parte prefiero aceptar los cambios con [intro] o con [tab] pero los hay que quieren que se grabe con solo hacer clic en otro control o zona.
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 07:12:34.


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