Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   No mostrar fila en Grid al insertar (https://www.clubdelphi.com/foros/showthread.php?t=6942)

Muten 28-01-2004 13:41:09

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.

kinobi 28-01-2004 13:59:27

Hilo movido desde el foro "InterBase y Firebird" por estar fuera de tema.

Saludos

Muten 02-02-2004 13:38:11

¿¿Nadie me puede echar una manita?? :( :(

marcoszorrilla 02-02-2004 14:31:23

Prueba con este código y me dices si es lo que necesitas:
Código:

procedure TForm1.DataSource1StateChange(Sender: TObject);
begin
 if DataSource1.State in [dsInsert] then
 Table1.DisableControls
 else
 Table1.EnableControls;
end;

Un Saludo.

Muten 03-02-2004 09:36:08

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é...

jachguate 03-02-2004 11:06:39

Y porque no lo asocias a otro DataSet que sea refrescado en los evento AfterPost y AfterDelete del primero?

??

Muten 03-02-2004 12:28:13

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:

jachguate 03-02-2004 12:58:02

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 19:35:03.

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