Ir para conteúdo
Fórum Script Brasil
  • 0

Probleminha Com Paradox?


Eder

Pergunta

Olá..Pessoal.

Estou com um probleminha....um tempo atraz fiz um pequeno banco paradox e num campo da tabela chamado QTDHE que seria lançado as horas extras dos funcionarios...eu acabei colocando o campo do tipo (N)

e ai criei um relatorio no quickreport onde mandei somar estas horas....num QrExp=expression=sum(qtdhe)

O problema é que agora as horas somas estão dando diferença em relação ao total fornecido pela nossa contabilidade.......

acredito que é por causa da soma esta sendo feito de maneira comum pelo meu programa.....e deveria ser analisando a hora como é feita por nossa contabilidade.

Tentei converter o campo da tabela de (N) para (T) mas não esta dando certo esta aparecendo esta mensagem:

FIELD QTDHE: EXISTING FIELD TYPE CANOOT BE CONVERTED TO REQUESTED TYPE.

o banco tem uns 4.000 registros

alguém poderia me ajudar a corrigir este problema????

muito Grato

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Mesmo sem converter para T o resultado teria que ser o mesmo SE corretamente

lançados.

Por exemplo.Final de expediente 17:18.

Horário extra das 17:18 às 19:18

Total = 2:0 h ou 2,00 horas tipo real ou float.

O problema pode ocorrer no lançamento

2h e 17m por exemplo não são 2,17 horas mas 2,28333 horas (17/60=2,28333)

Assim a diferença entre duas horas deve se corretamente calculada para lançar as horas extras.Com isto não há necessidade de se alterar o tipo do campo.

Peguei uma dica das "850 dicas delphi" LLoydSoft que espero seja de algum auxilio.

Saudações/Zordrac

Segue dica

529 - Diferença entre duas horas

function DifHora(Inicio,Fim : String):String;

{Retorna a diferença entre duas horas}

var

FIni,FFim : TDateTime;

begin

Fini := StrTotime(Inicio);

FFim := StrToTime(Fim);

If (Inicio > Fim) then

begin

Result := TimeToStr((StrTotime('23:59:59')-Fini)+FFim)

end

else

begin

Result := TimeToStr(FFim-Fini);

end;

end;

Observação incluída por um dos usuários da DTDelphi sobre a dica Acima:

Olá, meu nome é Paulo e já parabenizo pelas dicas disponíveis em Delphi, que ajudam todos os programadores desta linguagem.

Eu sempre recorro as dicas e idéias, quando deparamos com algumas dúvidas e dificuldades.

Eu estava consultando as dicas sobre horas, depois de ter feito rotinas de cálculos de horas, é ví que a dica 529 diminuiria um tempo se eu tivesse visto antes.

Se você achar importante, tenho uma observação sobre esta dica. É que quando é calculado com a diferença de 24 horas o resultado é sempre xx:59:59, portanto para que o resultado seja arredondado, é só acrescentar + StrToTime('00:00:01) conforme abaixo.

Result := TimeToStr((StrTotime('23:59:59') + StrToTime('00:00:01') -Fini)+FFim

Espero estar ajudado em algo, um abraço

Paulo Cesar Cortez

fim dica LLoydSoft

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo...bom dia....primeiramente obrigado pelo esclarecimento...foi muito util..

no meu caso eu resolvi desta maneira:

substitui a expressão do relatorio quick...ou seja no qrexp ao invés de colocar:

QrExp=expression=sum(qtdhe)

eu substitui por:

sum(int(qtdhe)) + div(sum(frac(qtdhe) * 100), 60) + (sum(frac(qtdhe) * 100) - (div(sum(frac(qtdhe) * 100), 60) * 60)) / 100

assim sendo resolver o problema.......

muito Grato....amigo.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...