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 09-02-2012
juliannemiro juliannemiro is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 27
Poder: 0
juliannemiro Va por buen camino
El código del query es este:
El código del query es este:

Código Delphi [-]
      with self.ADOQueryAsistenciasGrid do
       begin
         close;
         SQL.Add(' select b.id_asistencias, c.apellido as Apellido, c.nombre as Nombre, ');
         SQL.Add('  b.id_asistencias_tipo, e.x_asistencia, b.computa,  b.valor, b.obs as Observación, f.id_estado, f.id_alumno,  e.id_asistencias_tipo ');
         SQL.Add(' from  asistencias b ');
         SQL.Add('    left outer join alumnos_cursos a ');
         SQL.Add('        on a.id_alumno = b.id_alumno ');
         SQL.Add(' inner join personas c ');
         SQL.Add('         on c.id_persona = a.id_alumno ');
         SQL.Add('    left outer join cursos d ');
         SQL.Add('         on a.id_curso = d.id_curso ');
         SQL.Add('        and b.n_anioLectivo = d.n_anio ');
         SQL.Add('    left outer join asistencias_tipos e ');
         SQL.Add('         on b.id_asistencias_tipo = e.id_asistencias_tipo ');
         SQL.Add('    left outer join alumnos f ');
         SQL.Add('         on c.id_persona = f.id_alumno  ');
         SQL.Add('where a.id_curso = ''' + EditCursoId.text +''' and  b.fecha = '''+ DateToStr(DateTimePicker1.DateTime) + '''   ');
         SQL.Add(' order by b.n_anioLectivo, b.fecha, c.apellido, c.nombre ');
         Open;
         Active:= True;
       end;


Lo que vos propones es trabajar con un segundo query que haga el update, verdad? En que evento se dispararía?
Responder Con Cita
  #2  
Antiguo 10-02-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Si, lo que se me ocurre es tener un segundo query.
El evento depende de tu interes, puede ser el onchage, el ondobleclick etc.
Es algo muy particular.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 10-02-2012
juliannemiro juliannemiro is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 27
Poder: 0
juliannemiro Va por buen camino
Hola de vuelta.

La x_asistencia no debe modificarla. Solamente debe refrescar el valor cuando cambia el ID_ASISTENCIA.

He probado algo similar a lo que me describiste arriba, pero lamentablente no me funciona. Me dice 'No puede encontrar la fila para su actualizacion: algunos valores han cambiado desde la ultima vez que se leyó'.

Este es el código


Código Delphi [-]
procedure TFormAsistencia.DBGridMateriasCursoExit(Sender: TObject);
 var
dato, Id: integer;
begin
  Id:= ADOQueryAsistenciasGrid.FieldByName('id_asistencias').asinteger;  // Es el id de la asistencia
  Dato:=  ADOQueryAsistenciasGrid.FieldByName('id_asistencias_tipo').asinteger; //  Este es el id del TIPO de asistencia (1,2,3,4..)

  AdoQuery2.SQL.Text := 'Update ASISTENCIAS set id_asistencias_tipo = '+ IntToStr(Dato) +' where id_asistencias= '+IntToStr(id);
  AdoQuery2.ExecSQL;
  ADOQueryAsistenciasGrid.Close;
  ADOQueryAsistenciasGrid.open;
  end;
end.
Responder Con Cita
  #4  
Antiguo 10-02-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Estas usando el mismo query para el update, como pretendes que muestre la misma consulta ?
Logicamente te dice que los datos cambiaron.
Saludos
Perdon, me corrijo, no estas usando el mismo query.
El problema esta en que cierras el primer query despues del update, hazlo antes y coloca un mensaje para que te muestre el dato a ver si es el correcto.
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 10-02-2012
juliannemiro juliannemiro is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 27
Poder: 0
juliannemiro Va por buen camino
Bueno finalmente funciona!! Gracias!!

Pero el problema es que es "incomodo" en la forma que lo hace. Lo estoy poniendo en el afterPost del dataset y el inconveniente es que una vez que actualiza el dato, pero pierde foco de la grilla.

En esta misma grilla, en el evento keypress hago que si cambia el id_asistencia_tipo de 1 a 2 o 3 cambia de color todo el registro y lo hace fenomeno. Pero ahi no funciona mi código.
Responder Con Cita
  #6  
Antiguo 10-02-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Envia el codigo de cambio de un evento a otro.
Si lo hace bien en el AfterPost entonces en el evento OnKeypress haz que se ejecute el evento Afterpost.
O puedes crear un procedimiento para ese fin.
De todos modos, creo que lo dije en mi primera intervención (perderás el foco, el grid al actualizarse se va al inicio).
Por eso también dije, no me gusta el cambio al vuelo.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 10-02-2012
juliannemiro juliannemiro is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 27
Poder: 0
juliannemiro Va por buen camino
Entiendo. Entonces no me es práctico esto que estoy haciendo y debo buscar otra opcion.

Debe ser algo muy dinamico. De manera que el preceptor solo tenga que apretar un numero y enter y asi tomar asistencia del curso en forma rapida.
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
mostrar los datos de una tabla maestro y la detalle en un dbgrid ingabraham Varios 2 19-05-2011 01:42:34
Trigger para actualizar tabla detalle ivantech Firebird e Interbase 3 10-02-2010 10:34:43
Obtener de una tabla el valor que mas se aproxime de otra tabla en un DBgrid alquimista Conexión con bases de datos 3 22-07-2008 10:01:14
Maestro-Detalle ;Actualizar detalle a partir de un DBgrid norberto_larios Conexión con bases de datos 1 11-09-2004 18:17:34
Actualizar tabla detalle erickperez6 Conexión con bases de datos 0 04-05-2004 03:19:09


La franja horaria es GMT +2. Ahora son las 15:26:24.


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