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-03-2015
jose.ignacio.ve jose.ignacio.ve is offline
Miembro
 
Registrado: sep 2012
Posts: 79
Poder: 12
jose.ignacio.ve Va por buen camino
registrar asistencias si repetirse

hola alguien me puede ayudar a registrar asistencias de alumnos si repetirse? o sea que si ya se registro la asistencia de un alumno hoy no se vuelva a registrar hasta mañana.. yo tengo un codigo que solo funciona para un dia!
Código Delphi [-]
procedure Tflistado_alumnos.basistenciasClick(Sender: TObject);
var
fecha: string;
Ca,Tt:integer;
begin

    fmodulo.tasistencias.Active:=true;
    fmodulo.tasistencias.Refresh;
    fecha:= datetostr(now);


    if (fmodulo.tasistencias.Locate('id_alumnos',fmodulo.zqlistado_alumnos.FieldByName('id_alumnos').asinte  ger,[]))
     and (fmodulo.tasistencias['fecha']= fecha )then
        begin

                  Application.MessageBox('YA SE REGISTRO PREVIAMENTE ','GIMNASIO RUJA',MB_OK+MB_ICONINFORMATION)
        end
     else
         begin
               fmodulo.ZQcantasistencia.Active:=true;
               fmodulo.ZQcantasistencia.ParamByName('id_alumnos').AsInteger:= fmodulo.zqlistado_alumnos['id_alumnos'];
               fmodulo.ZQcantasistencia.Refresh;
               ca:=fmodulo.ZQcantasistencia['tasistencias'];
               fmodulo.tasistencias.Insert;
               fmodulo.tasistencias['fecha']:= now;
               fmodulo.tasistencias['hora']:= now;
               fmodulo.tasistencias['estado']:= 'PRESENTE';
               fmodulo.tasistencias['id_alumnos']:= fmodulo.zqlistado_alumnos['id_alumnos'];
               fmodulo.tasistencias.Post;
               Application.MessageBox('REGISTRADO','GIMNASIO RUJA',MB_OK+MB_ICONINFORMATION);
               fmodulo.tasistencias.Refresh;

         end;

        fmodulo.tasistencias.Close;
end;
lo que quiero hacer es que me localice el id_alumnos que me trae el listado de alumnos que lo tomo de un dbgrid. y que verifique si el dia de hoy ya se registro asistencia.. si hoy se registro que muestre el cartel si no se registro que lo guarde en la tabla asistencia
Responder Con Cita
  #2  
Antiguo 24-03-2015
tmsanchez tmsanchez is offline
Miembro
 
Registrado: mar 2004
Ubicación: Mexico
Posts: 67
Poder: 21
tmsanchez Va por buen camino
Hola. No conozo la estructura de tu base de datos pero, va una idea:

Una opción es que agreges una función en tu DataModule que te regrese un valor booleano para saber si ya esta registrada la asistencia:

Código Delphi [-]
unit fmodulo;

...
...
..

type

  TFmodulo = class(TDataModule)
  public 
     function asistenciaRegistrada(idAlumno: Integer; fecha: TDateTime): boolean;
     
   end;
   
 ...
 procedure TFModulo.asistenciaRegistrada(idAlumno: Integer; fecha: TDateTime): boolean;
 var
    registrada: boolean;
 begin
    registrada := False;
    // (suponiendo que ya tienes un TQuery o similar conectado a la base de datos)
    with queryAuxiliar do
    begin
        Close;
        SQL.Text := 'SELECT FECHA,ID_ALUMNO FROM TASISTENCIA WHERE FECHA = :FECHA AND ID_ALUMNO = :IDALUMNO';
        ParamByName('FECHA').AsDate := fecha;
        ParamByName('IDALUMNO').AsDate := idAlumno;
        Open;
        registrada := recordCount > 0;
        Close;
    end;
    result := registrada;
end;

y desde tu botón en la forma lo evalues mas o menos así:
Código Delphi [-]

procedure Tflistado_alumnos.basistenciasClick(Sender: TObject);
var
fecha: string;
Ca,Tt:integer;
begin

    fmodulo.tasistencias.Active:=true;
    fmodulo.tasistencias.Refresh;
    fecha:= datetostr(now);


    if (fmodulo.asistenciaRegistrada(now,fmodulo.zqlistado_alumnos.FieldByName('id_alumnos').asinteger) then
        begin
            Application.MessageBox('YA SE REGISTRO PREVIAMENTE ','GIMNASIO RUJA',MB_OK+MB_ICONINFORMATION)
        end
     else
         begin
               fmodulo.ZQcantasistencia.Active:=true;
               fmodulo.ZQcantasistencia.ParamByName('id_alumnos').AsInteger:= fmodulo.zqlistado_alumnos['id_alumnos'];
               fmodulo.ZQcantasistencia.Refresh;
               ca:=fmodulo.ZQcantasistencia['tasistencias'];
               fmodulo.tasistencias.Insert;
               fmodulo.tasistencias['fecha']:= now;
               fmodulo.tasistencias['hora']:= now;
               fmodulo.tasistencias['estado']:= 'PRESENTE';
               fmodulo.tasistencias['id_alumnos']:= fmodulo.zqlistado_alumnos['id_alumnos'];
               fmodulo.tasistencias.Post;
               Application.MessageBox('REGISTRADO','GIMNASIO RUJA',MB_OK+MB_ICONINFORMATION);
               fmodulo.tasistencias.Refresh;

         end;

        fmodulo.tasistencias.Close;
end;

Saludos.
Responder Con Cita
  #3  
Antiguo 25-03-2015
jose.ignacio.ve jose.ignacio.ve is offline
Miembro
 
Registrado: sep 2012
Posts: 79
Poder: 12
jose.ignacio.ve Va por buen camino
Si ya lo solucione muchas gracias,, me sirvio mucho.. pero solo hice una consulta con esas condiciones.. y si me trae mas de un registro es porq ya se registro en el dia.!!
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
Registro de asistencias jose.ignacio.ve SQL 1 08-10-2014 05:37:28
Copiar registro de una Tabla a otra Tabla, sin repetirse MaMu Conexión con bases de datos 22 11-04-2013 15:29:11
Ayuda para control de asistencias en programa de preceptoria juliannemiro Varios 15 09-12-2011 00:28:34
Programa de Asistencias de Empleados (1) Caral Varios 20 23-03-2008 21:09:04
Registrar Dll comba OOP 4 17-04-2007 18:53:51


La franja horaria es GMT +2. Ahora son las 04:26:37.


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