FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
|||
|
|||
DBGrid
Hola utilizao el componente DBGrid para mostrar los datos.
Tengo que mostrar una el contenido de una tabla para que el usuario seleccione una serie de registro. Había pensado en mostrar la tabla en un dbgrid y añadir un campo calculate que recoja verdadero o false si el usuario selecciona o no el registro. Esta no es una solución correcta. Sabes como puedo mostrar los datos de una tabla y además añadir un campo, que recoja verdadero o false según el usuario hace dos vecesclick sobre el registro. Saludos Daly |
#2
|
||||
|
||||
Pues es probable que no necesites ese campo, la rejilla tiene una propiedad: Multiselect que si la activas te permite seleccionar más de un registro a la vez y luego puedes recorrer la rejilla con un bucle y analizar la propiedad SelectedRows, para ver cual están seleccionadas y realizar alguna acción si procede.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
|||
|
|||
No tengo Delphi a mano para confirmarlo, pero el dbgrid tiene el evento onclick y ondoubleclick (no se si esta bien escrito), en ese evento poder modificar el valor del campo.
__________________
Suerte Alejandro |
#4
|
|||
|
|||
El problema de utilizar la opción de MultiSelect es que es muy fácil equivocarse y perder las filas seleccionadas.
Ejemplo: Tienes 10 Columnas seleccionadas de 30 se te olvida de pulsar la tecla control y otra vez a volver a seleccionar el resto. La idea de una columna adicional tiene un trato distinto. Al crear un campo calculado he intentar modificarlo al hacer dos veces click sobre una fila muestra un mensaje de errror. Update demasiado complejo tabla.edit; campo=True; tabla.Post; Esto es lo único que tengo. No puedo utilizar un campo calculado para implementarlo. Tendré que utilizar otro componente distinto al DBGrid? Saludos |
#5
|
|||
|
|||
No veo porque el error, deberia funcionar
Estas usando algún sistema de bases de datos, si es así reviza el codigo del update puede que alli este el error. Una "solución" seria hacer un query en el doble click para modificar el registro utilizando otro componente de acceso.
__________________
Suerte Alejandro |
#6
|
|||
|
|||
quizás no me he explicado bien.
La tabla tiene 4 campos, campo1,campo2..,campo4. Con el grip las muestro y realizo operaciones de update, delete, etc.. sin ningún problema. Quiero que el usuario pueda seleccionar varios registros de los listados. Para ello he creado un campo calculado. (Hago dos veces click sobre el ttable y nuevo campo). Creo uno nuevo de tipo Booleano como calculated, es aquí cuando falla. La ida es saber que registros quiere procesar el usuario. La opción del multiselect no me termina de convencer pq es fácil equivocarse y desseleccionar los registros y tener que volver a repetir el proceso. Saludos |
#7
|
|||
|
|||
Hice una prueba y confirme que los campos calculados no pueden modificarse, execto en el evento OnCalcFields de la tabla/query.
Proba, si podes, agregar un campo a la tabla. Otra solución no se me ocurre por el momento
__________________
Suerte Alejandro |
|
|
|