Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-01-2012
juliannemiro juliannemiro is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 27
Poder: 0
juliannemiro Va por buen camino
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!
Responder Con Cita
  #2  
Antiguo 26-01-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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:
Código Delphi [-]
procedure TForm1.DBGridKeyPress(Sender: TObject; var Key: Char);
begin
  with Sender as TDBGrid do
   if SelectedField.FieldName = 'id_asistencia' then
   begin
     DataSource.DataSet.Edit;
     if Upcase(Key) = 'P' then
       SelectedField.Value:= 'PRESENTE';
     if Upcase(Key) = 'A' then
       SelectedField.Value:= 'AUSENTE';
     Key:= #0;
   end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 27-01-2012
juliannemiro juliannemiro is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 27
Poder: 0
juliannemiro Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 27-01-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por juliannemiro Ver Mensaje
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.
Hola Julián.

Basta con que cambies el nombre de campo 'id_asistencias' por 'x_descripción' en el código que te puse anteriormente.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 27-01-2012
juliannemiro juliannemiro is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 27
Poder: 0
juliannemiro Va por buen camino
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!
Responder Con Cita
  #6  
Antiguo 27-01-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Creo que ahora te entendí

Código Delphi [-]
procedure TForm1.DBGridKeyPress(Sender: TObject; var Key: Char);
begin
  with Sender as TDBGrid do
  if SelectedField.FieldName = 'id_asistencia' then
  begin
    DataSource.DataSet.Edit;
    if Upcase(Key) = 'P' then
      DataSource.DataSet.FieldByName('x_descripción').AsString:= 'PRESENTE';
    if Upcase(Key) = 'A' then
      DataSource.DataSet.FieldByName('x_descripción').AsString:= 'AUSENTE';
    Key:= #0; // (Quitá esta línea si deseas conservar los caracteres tecleados )
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tiempo de ejecución. Columnas en DBGrid. manueljgc OOP 0 07-03-2009 22:30:36
DBGrid en tiempo de ejecución iga Gráficos 6 14-12-2007 01:52:10
Columnas de DBGrid en tiempo de ejecución dape Varios 1 17-03-2005 03:57:31
Crear Columna en un DBGRid en tiempo de ejecucion muli Conexión con bases de datos 1 03-03-2005 08:30:40
Cambiar tipo de un dato en Rave 5 en tiempo de ejecución Berto2003 Impresión 2 05-03-2004 15:41:21


La franja horaria es GMT +2. Ahora son las 16:20:25.


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
Copyright 1996-2007 Club Delphi