![]() |
No mostrar fila en Grid al insertar
Hola!
Alguien sabe cómo evitar que se muestre una fila vacía en un DbGrid, q apunta a la misma BD q un conjunto de DbEdits, tras insertar un nuevo registro?? He estado usando la función 'DisableControls' y 'EnableControls' del DataSet y he conseguido en parte lo q buscaba (ya que se deshabilita el Grid y no muestra la columna introducida), pero tras minimizar u ocultar la pantalla, aparece la dichosa fila. De todas formas no estoy muy convencido de usar dichas funciones pq su objetivo no es ese y me deshabilita muchos eventos (los del datasource, p.ej). Estoy usando los componentes de JFActiveSoft y Fibplus, aunq creo q para este caso no influyen en el problema. Saludos. |
Hilo movido desde el foro "InterBase y Firebird" por estar fuera de tema.
Saludos |
¿¿Nadie me puede echar una manita?? :( :(
|
Prueba con este código y me dices si es lo que necesitas:
Código:
procedure TForm1.DataSource1StateChange(Sender: TObject); |
Gracias por contestar marcos, pero esa solución ya me la había planteado (no basta con poner esas líneas en el evento 'datachange' pq hay q controlar otras cosas) de todas formas, usando Enable/disable-controls, al minimizar p.ejem. el formulario, al restaurar el grid nos muestra la fila q se está insertando, lo mismo o peores cosas pasan si ponemos una pantalla de cualquier programa tapando(total o parcialmente) nuestro form, ya q se refresca la parte del grid q ha sido tapada por el otro programa, dejando la vista del grid con datos incoherentes.
Un saludo, y gracias una vez más por molestarte. :) PD. Tal vez el problema resida en el uso del JfDBGrid de los componentes de JfActiveSoft. No lo sé... |
Y porque no lo asocias a otro DataSet que sea refrescado en los evento AfterPost y AfterDelete del primero?
?? |
Hola jachguate, gracias antes q nada por contestar.
Tb me he planteado esa posibilidad (que es la q guardo como último recurso), pero considero que sería como matar mosquitos a cañonazos, ya que para mejorar un efecto visual, estoy cargando al programa con un exceso de datasets (dos por dbgrid en cada formulario) con el consiguiente trafico de datos por la red,etc.. Además la función que cumple el Grid es la de mostrar los datos para q con un click en cualquier fila haga aparecer todos los datos en los dbEdits asociados al mismo dataset, esto es un problema al implementarlo con 2 dataset, ya q ademas de controlar los dos eventos q me comentas, tb tengo q controlar eventos como 'AfterScroll', para cuando se cambie el registro activo de un dataset, el otro apunte al mismo... Y muchas cosas más con las q me tuve pelear en su día con una pequeña aplicación q usaba un DbGrid apuntando a un TQuery (del antiguo BDE) y unos edits apuntando a un TTable.. Saludos a todos!! PD Otra posibilidad q estoy planteando es la de tener un TGrid normal oculto y mostralo con las filas q habia visibles en el TDBGrid justo al insertar... aunq no se muy bien aún como hacerlo, parece una solución un poco más 'light'. :confused: :confused: |
Y porque no intentas con dos DataSources, y simplemente inactivas el que apunta al grid cuando entras a editar un registro. Cuando la edición se termina o se cancela, activas de nuevo el otro DataSource.
Quizas sea mejor que nada.. no? |
La franja horaria es GMT +2. Ahora son las 12:45:24. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi