Ir ao conteúdo
  • Cadastre-se

brunozanicheli

Membro Júnior
  • Posts

    14
  • Cadastrado em

  • Última visita

Tópicos solucionados

  1. O post de brunozanicheli em Função SUM() - Somatória no campo HORA (time) foi marcado como solução   
    beleza, entendi o que quis dizer... Mas onde ficaria a parte final da função SUM ?
     
    SUM() AS ''
     
    Para eu poder informar o nome do campo em que será guardado.. Já tentei:
    CONVERT(VARCHAR, DATEADD(s, SUM(contagem) AS 'CONT_TOTAL', 0), 108); //Não deu certo SUM(TIME_TO_SEC(contagem)) AS 'CONT_TOTAL', CONVERT(VARCHAR, DATEADD(s, CONT_TOTAL, 0), 108); //também não deu certo. Aí eu fiz da seguinte forma: No SQL eu deixei simplesmente assim:
    SUM(TIME_TO_SEC(contagem)) AS 'CONT_TOTAL'; //Ele pega os valores e transforma em um número inteiro (Segundos) Aí na Query, eu criei um campo calculado chamado "calculated" do tipo String, e no evento OnCalcFields coloquei o seguinte código:
    var seconds: integer;beginseconds:= STRTOINT(dm.q_prodOperCONT_TOTAL.AsString);dm.q_prodOpercalculated.AsString := FormatDateTime('hh:nn:ss', Seconds / SecsPerDay);end; Com isso, o campo "calculated" recebe os valores que eu preciso, mas o problema agora é que, se um Operador produziu (por exemplo) 25 horas e 10 minutos,
    No registro ao invés de ficar 25:10:00, está retornando: 01:10:00.
     
    Tem alguma solução pra isso ?

    Já consegui cara !!! A solução foi a seguinte:
     
    No meu DataModule, criei uma função seg_hora:
    function Seg_Hora( Seg:LongInt ):string;Var Hora,Min:LongInt; Tmp : Double;begin Tmp := Seg / 3600; Hora := Round(Int(Tmp)); Seg := Round(Seg - (Hora*3600)); Tmp := Seg / 60; Min := Round(Int(Tmp)); Seg := Round(Seg - (Min*60)); Result := FormatFloat( '00', Hora )+ ':' + FormatFloat( '00', Min ) + ':' + FormatFloat( '00', Seg );end; E dentro do evento OnCalcFields da Query, fiz assim:
    var seconds: integer;beginseconds:= STRTOINT(dm.q_prodOperCONT_TOTAL.AsString);dm.q_prodOpercalculated.AsString := seg_hora(seconds);end; Obrigado pela ajuda !!! RESOLVIDO

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!