![]() |
Validar Dato DBGRID en tiempo de ejecución!!
Hola a todos!
- Tengo una DBGrid de la tabla ASISTENCIAS en la que cargo una lista de alumnos de una fecha determinada. La grilla muertra alumno, ID de tipo de asistencia y descripción entre otras cosas. Lo que yo necesito es que cuando la persona completa en tiempo de ejecucion me valide lo que ingresa, por ejemplo: El usuario pone sobre un alumno X, id_asistencia: 'P' y la descripcion automaticamente tiene que decir PRESENTE. Si cambió la 'P', por una 'A', debe refrescar la descripción a AUSENTE. Esto para cada uno de los alumnos que aparece en la grilla. Esta modificacion de datos la hago dentro de una transacción. Trabajo con SQLserver2000, y tengo el DATASOURCE, ADOTABLE Y ADOQUERY de la tabla ASISTENCIAS Espero se entienda, agradezco su tiempo! |
Hola juliannemiro.
Si no te entendí mal, estás ingresando los datos desde el mismo DBGrid. De ser así, podés aprovechar el evento OnKeyPress del TDBGrid:
Saludos. |
Perdon en la tardanza en contestar!
Si, eso me sirve y muchisimo. Pero tengo el siguiente problema: El campo que tiene que cambiar la descripción no debe ser id_asistencias, sino x_descripcion que también lo muestra la grilla ya que esta dentro del mismo adoquery. |
Cita:
Basta con que cambies el nombre de campo 'id_asistencias' por 'x_descripción' en el código que te puse anteriormente. Un saludo. |
Hola!
Pido disculpas, porque me expresé mal En mi dbgird tengo campo id_asistencia_tipo y x_asistencia entre otros. Cuando el usuario pone en id_asistencia_tipo la letra 'P', el campo x_asistencia debe ponerse 'Presente'. Pero se mantiene en id_asistencia_tipo la letra 'P'. Digamos que es el Codigo y Descrpicion Osea el registro quedaria asi: Alumno.....id_asistencia.....tipo x_asistencia Juan...............P................Presente En sintesis lo que me falta es la sintaxis para agregar la linea que seleccione otro campo del mismo registro al cual le voy a asignar un valor. Gracias! |
Hola.
Creo que ahora te entendí :)
Saludos. |
Excelente ecfisa!!
Eso es exactamente lo que quería. Pero sigo teniendo un problema para poder realizarlo con exito. Lo que pasa es lo siguiente: Cambio un registro, actualiza perfecto el x_asistencia Cambio el segundo registro, actualiza perfecto el x_asistencia. Pero ni bien quiero pasar a un tercer registro el programa falla y me dice 'No puede encontrar la fila para su actualizacion: algunos valores han cambiado desde la ultima vez que se leyó' |
Hola Julián.
Revisá estos enlaces donde se trata ese error:
Un saludo. |
Hola.
Estuve leyendo y creo que el problema es con la consulta del adoquery. Porque si yo solo trabajo en la dbgrid con los campos de la tabla asistencias, funciona todo correctamente. Ahora si a la consulta de la dbgrid le agrego los joins con las otras tablas, me falla con el mensaje antes detallado. Voy a probar de solucionarlo, lo que se me viene a la cabeza es que trata de editar campos de las tablas que trae con el JOIN y solamente deberian usarlo para mostrarlos. Será ese el problema? No se si corresponde seguir tratandolo acá o crear un nuevo thread. |
Cita:
Si creás un nuevo hilo exponiendo caso y el error, con seguridad incrementás las posibilidades de recibir una respuesta más concreta. Un saludo. |
Hola. Estoy de nuevo!
Te cuento que he solucionado el problema creando una VISTA en el SQLServer:
Asique ese error ya no esta mas. El problema es el siguiente. Cuando cambio el valor del ID_ASISTENCIA_TIPO en la DBGRID, me cambia la X_ASISTENCIA correctamente. Pero cuando salgo del campo(me cambio de registro), el ID_ASISTENCIA_TIPO se mantiene con el cambio, pero la X_ASISTENCIA vuelve a tomar el valor que tenía antes. El código que estoy usando es el siguiente
Cual puede ser el problema? Gracias como siempre por la buena predisposición! |
La franja horaria es GMT +2. Ahora son las 04:05:18. |
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