Sobre um registro ponto

26/09/2018

0

Tenho em meu software uma tela de login , onde ao logar lança a hora inicial , salvando no bando o Id,data e hora,
preciso que ao logar novamente o sistema compare que o campo hora inicial já foi preenchido e preencha o campo Hora final do mesmo lançamento (edit na tabela)
não estou conseguindo , pois sempre está salvando somente a hora inicial
Tiago

Tiago

Responder

Post mais votado

27/09/2018

faça a atualizacao dessa forma.
Caso horainicial seja null ele ira marcar a hora inicial, caso não seja null ira permanecer;
Caso horainicial nao seja null ele ira marcar a hora atual na hora final se não vai deixar null;

Veja se funciona;


update a set 
	horaInicial = case  when horainicial is null then suaHoraInicial else horainicial end, 
	horaFinal = case when horaInicial is not null then suaHoraInicial else null end
from suaTabela a

Fabiano Carvalho

Fabiano Carvalho
Responder

Mais Posts

28/09/2018

Tiago

var s_data : string;
begin
g_usuario:=edtUSUARIO.text;

// dtMODULE1.ADOTABLE.Refresh;
dtMODULE1.ADOTABLE.Filtered := False;
dtMODULE1.ADOTABLE.Filter := 'usuario = ' +quotedstr(edtUSUARIO.Text) +' and senha='+quotedstr(edtSENHA.Text) ;
dtMODULE1.ADOTABLE.Filtered := True;

if dtMODULE1.ADOTABLE.RecordCount=0 then
messagedlg('Usuario e Senha invalidos',mterror,[mbok],0)

else
begin
g_id:=(dtMODULE1.adoTABLE.fieldbyname('codigo').value);//.asinteger:=strtoint(g_id;

IF dtMODULE1.ADOTABLE.FieldByName('tipo').asString = 'Pedág' then
begin
frmPEDAGOGIA:= tfrmPEDAGOGIA.Create(application);
frmPEDAGOGIA.ShowModal ;
end
else
begin
dtMODULE1.ADOTABLE.Refresh;
//dtMODULE1.adoTABLE.FieldByName('codigo').AsInteger:=g_id;
dtMODULE1.ADOTABLE.Filtered := false;
dtMODULE1.ADOTABLE.Filter := '' ;
dtMODULE1.ADOTABLE.Filtered := True;

// today:=now;
s_data := datetostr(now);
s_data := 'idprof = ' + (g_id) + ' and horaini = '+quotedstr('2018-09-25 01:00');
dtMODULE1.tblHORAS.Filtered := False;
dtMODULE1.tblHORAS.Filter:= s_data;
//+quotedstr(s_data);
dtMODULE1.tblHORAS.Filtered:=true;
dtMODULE1.tblHORAS.Last();

dtMODULE1.tblHORAS.RecordCount;

showmessage(inttostr(dtMODULE1.tblHORAS.fieldByName('idlan').asinteger)) ;




// if (dtMODULE1.tblHORAS.fieldByName('horaini').asstring)= ('') then
if (dtMODULE1.tblHORAS.fieldByName('idprof').value)= null then
begin
dtMODULE1.tblHORAS.append ;
dtMODULE1.tblHORAS.fieldByName('horaini').asstring:=(edit1.text);
dtMODULE1.tblHORAS.fieldByName('idprof').value := strtoint(g_id) ;
dtmodule1.tblHORAS.post;

showmessage('hora inicial lançada') ;
end
else
begin
dtMODULE1.tblHORAS.edit ;
dtMODULE1.tblHORAS.fieldByName('horasai').asstring:=(edit1.text); //ver se é funcao date, e ccolocar invertida
// dtMODULE1.tblHORAS.fieldByName('idprof').value := strtoint(g_id) ;
dtMODULE1.tblHORAS.post;
showmessage('hora final lançada Professor') ;
end;
Responder

01/10/2018

Tiago

var s_data : string;
begin
g_usuario:=edtUSUARIO.text;

// dtMODULE1.ADOTABLE.Refresh;
dtMODULE1.ADOTABLE.Filtered := False;
dtMODULE1.ADOTABLE.Filter := 'usuario = ' +quotedstr(edtUSUARIO.Text) +' and senha='+quotedstr(edtSENHA.Text) ;
dtMODULE1.ADOTABLE.Filtered := True;

if dtMODULE1.ADOTABLE.RecordCount=0 then
messagedlg('Usuario e Senha invalidos',mterror,[mbok],0)

else
begin
g_id:=(dtMODULE1.adoTABLE.fieldbyname('codigo').value);//.asinteger:=strtoint(g_id;

IF dtMODULE1.ADOTABLE.FieldByName('tipo').asString = 'Pedág' then
begin
frmPEDAGOGIA:= tfrmPEDAGOGIA.Create(application);
frmPEDAGOGIA.ShowModal ;
end
else
begin
dtMODULE1.ADOTABLE.Refresh;
//dtMODULE1.adoTABLE.FieldByName('codigo').AsInteger:=g_id;
dtMODULE1.ADOTABLE.Filtered := false;
dtMODULE1.ADOTABLE.Filter := '' ;
dtMODULE1.ADOTABLE.Filtered := True;

// today:=now;
s_data := datetostr(now);
s_data := 'idprof = ' + (g_id) + ' and horaini = '+quotedstr('2018-09-25 01:00');
dtMODULE1.tblHORAS.Filtered := False;
dtMODULE1.tblHORAS.Filter:= s_data;
//+quotedstr(s_data);
dtMODULE1.tblHORAS.Filtered:=true;
dtMODULE1.tblHORAS.Last();

dtMODULE1.tblHORAS.RecordCount;

showmessage(inttostr(dtMODULE1.tblHORAS.fieldByName('idlan').asinteger)) ;




// if (dtMODULE1.tblHORAS.fieldByName('horaini').asstring)= ('') then
if (dtMODULE1.tblHORAS.fieldByName('idprof').value)= null then
begin
dtMODULE1.tblHORAS.append ;
dtMODULE1.tblHORAS.fieldByName('horaini').asstring:=(edit1.text);
dtMODULE1.tblHORAS.fieldByName('idprof').value := strtoint(g_id) ;
dtmodule1.tblHORAS.post;

showmessage('hora inicial lançada') ;
end
else
begin
dtMODULE1.tblHORAS.edit ;
dtMODULE1.tblHORAS.fieldByName('horasai').asstring:=(edit1.text); //ver se é funcao date, e ccolocar invertida
// dtMODULE1.tblHORAS.fieldByName('idprof').value := strtoint(g_id) ;
dtMODULE1.tblHORAS.post;
showmessage('hora final lançada Professor') ;
end;
alguém me ajuda
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar