Ver Mensaje Individual
  #2  
Antiguo 24-03-2015
tmsanchez tmsanchez is offline
Miembro
 
Registrado: mar 2004
Ubicación: Mexico
Posts: 67
Reputación: 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