FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Controlar si una tabla está vacía
Buenas,
Tengo un dbgrid que apunta a una tabla y al lado los típicos botones de añadir, modificar y borrar. La pregunta es: en qué evento o donde, tengo que mirar si la tabla está vacía para activar o desactivar dichos botones, es decir, quiero poner enabled=false al botón borrar si la table está vacía, por ejemplo Pero la cosa se complica ya que esta tabla la tengo unida a otra (mastersource), también con los botones de añadir, modificar y borrar. Conforme me voy desplazando por el dbgrid principal, la tabla secundaria, lógicamente, también cambia de registros, y quiero activar o desactivar botones según el caso. Gracias. |
#2
|
||||
|
||||
Hola
Usa la propiedad isempty despues de activar el dataset. Saludos
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar. Antonio Machado |
#3
|
||||
|
||||
Hola mblascog.
El boton borrar no esta habilitado si la tabla está vacía; solo están habilitados los botones: insertar, editar y refrescar; lo que me parece un comportamiento lógico. Pero de todos modos si tu intención es deshabilitar todos los botones cuando no haya datos en la tabla, creo que un evento adecuado es OnDataChange de los TDataSources. Y para comprobar la existencia de datos, la propiedad IsEmpty como ya lo dijo Caminante
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#4
|
|||
|
|||
Creo que no me he expresado bien. Tengo un dgbrid con registros, y un segundo dbgrid que apunta a otra tabla pero unido al primero. Cada vez que selecciono un registro del primer dbgrid, el segundo puede o no contener registros, por lo que no se trata de mirar la propiedadi isEmpty del dataset al activarlo.
|
#5
|
||||
|
||||
Yo creo que si.
EL DBGrid esta conectado a un datasource y este a un dataset. Para ver si el dataset esta vacio mira el valor de la propiedad isempty.
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar. Antonio Machado |
#6
|
|||
|
|||
Caminante, yo buscaba algo parecido al evento onStateChange del datasource, que es automático. Si tengo que comprobar si el dataset isEmpty, cada vez que se cambia de registro tengo que comprobarlo
|
#7
|
|||
|
|||
Hola Caminante,
que tal con un if db1.RecordCount > 0 then... |
#8
|
||||
|
||||
Bueno no confio mucho en recordcount ya que puede variar de acuerdo al tipo de dataset y a veces puede no devolver el valor correcto.
Saludos
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar. Antonio Machado |
#9
|
|||
|
|||
En realidad mi pregunta no es cómo saber si un dataset está vacío o no, hay varias maneras de controlarlo. Lo que es estoy buscando es la manera automática de detectarlo, en qué evento
|
#10
|
||||
|
||||
En el mensaje 3 el compañero ecfisa te sugirio el evento ondatachage del datasource. Saludos
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar. Antonio Machado |
#11
|
|||
|
|||
El ondatachange salta cuando cambias algún valor, no cuando cambian los registros.
|
#12
|
||||
|
||||
Tambien puedes probar el evento afterscroll del dataset.
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar. Antonio Machado |
#13
|
||||
|
||||
Cita:
Cita:
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#14
|
|||
|
|||
Gracias ecfisa, llevas toda la razón, yo lo hacía con el onStateChange en lugar de onDataChange.
|
#15
|
||||
|
||||
Usa un taction de tipo delete(mira en los tipos de acciknes) y al relacionarse con el dataset todo se hace solo, lo asignas al botón y listo mijo lindo.
Enviado desde mi SM-G900H mediante Tapatalk
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
#16
|
|||
|
|||
Gracias rastafarey, pero no entiendo mucho a que te refieres. Lo siento
|
#17
|
||||
|
||||
Si tienes un datasource conectado a un dataset, creas un tactiondelete (mira en lista de los taction a ver si ese el nombre) y esa action le asignas el datasource, ya no tienes que controlar el botón porque el datasource se encarga de habilitar o desahabilitar él estado de dicho boton, asi también pueder usar para edit, insert o cualquier accion que se pueda aplicar a dicha nase de datos. Es lo mismo que tener un tnavigator, pero con taction y botones del tipo que yi quieras.
Enviado desde mi SM-G900H mediante Tapatalk
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
#18
|
|||
|
|||
Gracias rastafarey. Tengo que mirarlo, pues desconozco de lo que me hablas, pero me parece muy interesante
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Traer un valor de un campo de la Tabla (Access) incluso si esta vacia | nefore | Conexión con bases de datos | 4 | 16-06-2013 22:45:58 |
Añadir registro en tabla firebird si la tabla está vacia | jafera | Firebird e Interbase | 19 | 22-08-2012 11:59:35 |
SelectedRows esta vacia | Paulao | Varios | 2 | 12-03-2009 10:26:07 |
preguntar por una imagen si esta vacia | ingel | Gráficos | 2 | 10-05-2007 19:22:14 |
¿No se puede desactivar un ADOTABLE cuando la tabla está vacia? | User_Baja_2 | Conexión con bases de datos | 1 | 12-06-2004 18:35:24 |
|