FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Deshabilitar ciertas filas TDBGrid
Hola a todos,
He buscado pero no he encontrado hasta el momento algo que soluciones mi problema. El asunto es que tengo un DBGrid el cual lleno con un query (obvio) en el cual solo ciertas filas deben tener la opcion de editar, o mejor dicho quiero poner ciertas filas en ReadOnly para que no modifiquen los datos de las mismas. Esto lo hago en base a ciertas validaciones del mismo query. Hasta el momento solo he encontrado como deshabilitar columnas y el grid completo, pero pues eso no es lo que necesito. Espero que me haya dado a entender y que me puedan ayudar en este pequeño dilema. Saludos a Todos y gracias. |
#2
|
||||
|
||||
No lo he probado, pero supongo que si en los eventos de OnDrawCell (o similares) puedes consultar los valores (del Grid) para pintar de un color u otro, también se deberían poder hacer otro tipo de operaciones como deshabilitar la edición.
Es este caso además de los valores deberás tener en cuenta que sea la línea que estés editando (revisa el estado -selected, focused,...-)
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Gracias Neftali por la respuesta.
Cita:
Saludos |
#4
|
||||
|
||||
Estoy de acuerdo con Neftali si añades un campo al grid para saber si el registro debe editase o no, o según la condición/valor de un determinado campo de tu querry/tabla en el OnDrawCell y Datacell (no me acuerdo exactamente del nombre del evento) solo tendrías que hacer un if then, o con un else, si la condición/campo no se cumple haz lo que tengas que hacer, podrías dejarlo así, o poner lo contrario, también puedes optar, por al posicionarte sobre un registro, al darle enter o Click cambiar la propiedad readonly, según la Condición/campo.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#5
|
|||
|
|||
Cita:
He usado ReadOnly al campo, pero aplica la condicion a todo el grid, no solo a la fila. Saludos |
#6
|
||||
|
||||
No hay propiedad del Grid que evite la edición; No la busques porque no la vas a encontar. Lo que intentaba decirte yo, es que si consigues llegar a detectar, tendrás que aplicar alguna lógica sobre el Dataset.
Normalmente cuando alguien intenta editar una fila, saltan eventos en el DataSet asociado al Grid. En esos eventos debes "cancelar" la edición en los casos en los que te interese. No se si me explico. El Grid te puede servir para pintar las filas diferente o para hacerles alguna marca y "avisar" de que son de sólo lectura. Pero el bloqueo real debes hacerlo desde el Dataset cuando el usuario intenta editar una fila en concreto.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#7
|
||||
|
||||
Creo que el objeto TDBColumnGrid tiene las propiedad de ReadOnly. Para acceder a este objeto necesitaras especificar las columas que tendra tu Grid y a que campo del Query pertenece cada una respectivamente. Lo anterior lo puedes hacer en tiempo de diseño o bien lo puedes hacer mediante código.
Si no es así, puedes probar con TDBGrids más avanzados, como por ejemplo el que trae los JEDI components que son gratuitos. Saludos |
#8
|
||||
|
||||
El problemas es que desea poner filas, y no columnas.
Ahora, otra opción sería actvar y desactivar la columna entera (por código) dependiendo de la fila donde te encuentres, pero no me parece un sistema muy ortodoxo.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#9
|
|||
|
|||
Cita:
En cuanto al uso de otro componente (recientemente lo he instalado, pero no lo he utilizado) seria factible si fuera un proyecto nuevo, jeje, pero este ya tiene demasiado Gracias a todos por las ideas, veremos como resuelvo este asunto. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cargar ciertas paginas en quickreport | rufo | Impresión | 6 | 17-02-2010 22:54:32 |
Color filas en TDbGrid | ManelC | Conexión con bases de datos | 0 | 22-09-2008 15:57:04 |
Pintar filas TDBGrid | ManuelPerez | Varios | 11 | 12-08-2008 11:09:47 |
Vaciado de ciertas tablas en Interbase 6 | gorsan | Conexión con bases de datos | 12 | 31-10-2007 20:41:08 |
No depurar ciertas units | marto | Varios | 3 | 22-06-2004 18:09:38 |
|