GARANTIR DESCONTO

Fórum Mascara campo datetime #385850

08/09/2010

0

Estou criando um programa para somar horas trabalhadas, estou usando campo DateTime do FB, mas na hora de digitar esta horrivel, pois é necessario digitar a data e a hora, tem como o usuario entrar somente com as horas ? e a data eu pegar do sistema ?   Use a mascara: Display Format = HH:MM EditMask = !90:00;1;_   Mas se eu gravar usando dessa maneira, a data é gravada 31/12/1899   Gostaria do usuario digitar somente hora e minutos.     Abs    
Felipe Ip

Felipe Ip

Responder

Posts

08/09/2010

Eriley Barbosa

No before post de sua tabela digite: SeuDataset.fieldbyname('seucampodatahora').asdatetime := FormatDateTime('dd/mm/yyyy', Now) + ' ' + Trim(SeuComponenteutilizadoparaarmazenarahora.text);
Responder

Gostei + 0

08/09/2010

Eriley Barbosa

Desculpe amigo, o correto é: No before post de sua tabela digite: SeuDataset.fieldbyname('seucampodatahora').asdatetime := StrToDateTime(FormatDateTime('dd/mm/yyyy', Now) + ' ' + Trim(SeuComponenteutilizadoparaarmazenarahora.text));   Antes tava passando uma string para uma data hora ia dar erro de conversão.
Responder

Gostei + 0

08/09/2010

Felipe Ip

Muito Obrigado, Voce saberia me dizer como faço para calcular, no caso, horas negativas, por exemplo no caso do funcionario ter feito horas a menos.   Estou usando o seguinte codigo para somar as horas e encontrar a hora extra:  
      DecodeTime(CdsHorasHORA.Value, Hora, Min, Seg, MSeg);
 
      if (Min < 60) and (Min <> 0) then
      begin
        if (xAcuMin < 60) then
          xAcuMin := (xAcuMin + Min);
        if (xAcuMin >= 60) then
        begin
          xAcuHor := (xAcuHor + 1);  // soma uma hora se minuto >= 60
          xAcuMin := (xAcuMin - 60); // diminui horas do minuto >= 60
        end;
      end;
      xAcuHor := (xAcuHor + Hora);

    Existe algo mais simples ?
Responder

Gostei + 0

08/09/2010

Eriley Barbosa

Vendo sua rotina, acho que ela ta bem simples, não me ocorre no momento uma maneira mais facil de fazer isso.
Responder

Gostei + 0

08/09/2010

Felipe Ip

Certinho, entao.   E para calcular as horas negativas, vc tem alguma sujestao ?     Mt Obrigado pela atencao
Responder

Gostei + 0

08/09/2010

Eriley Barbosa

Como assim horas a menos ou negativas, ilustre melhor a situação.
Responder

Gostei + 0

09/09/2010

Felipe Ip

Sei que nao existe horas negativas, mas nesse caso é quando o funcionando trabalha menos, por exemplo, carga horario de 8:00 por dia, ele faz 7:00, entao ficou negativo em 1:00, preciso no final somar e ter um total de horas trabalhadas no periodo.     Abs  
Responder

Gostei + 0

09/09/2010

Eriley Barbosa

Só se você calcular o valor linha, exemplo: if (Horas_Trabalhadas - 08:00) < 0 then//Fez horas a menos   Horas_negativas := Horas_negativas - (Horas_Trabalhadas - 08:00) else   if (Horas_Trabalhadas - 08:00) > 0 then //Fez horas extras     Horas_Extras := Horas_Extras + (Horas_Trabalhadas - 08:00);   Isso você coloca dentro de um Loop após fazer a consulta das horas trabalhadas no mês, onde horas trabalhadas é o que o funcionario trabalhou no dia. Ai fazendo a soma de todas as horas_trabalhadas você obterá o que o funcionario trabalhou no mês.
Responder

Gostei + 0

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

Aceitar