MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Arredondamento de Horas no relatório

    avatar
    arnaldojt
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 13/12/2012

    [Resolvido]Arredondamento de Horas no relatório Empty [Resolvido]Arredondamento de Horas no relatório

    Mensagem  arnaldojt 19/11/2013, 18:18

    Boa tarde a todos!

    Fiz (com a ajuda dos vossos exemplos)  um controle de horas extras e tenho agora que "arredondar a soma das horas extras", porém não estou conseguindo.
    Tenho uma tabela "tblHorasExtras", entre outros campos, os de [He_HoraInício] e [He_HoraFinal], no formato hora abreviada.
    No formulário (no modo visualizar impressão), já consegui fazer com que me mostre a quantidade de horas trabalhadas, subTotal por funcionário e total geral do relatório.
    Estou agora tentando fazer com que as horas sejam "arredondadas", dessa forma:
    [He_HoraInício]: se os minutos desse horário for de "00 até 21", os minutos devem ser considerados como "00";
    [He_HoraInício]: se os minutos desse horário for de "22 até 45", os minutos devem ser considerados como "30";
    [He_HoraInício]: se os minutos desse horário for de "46 até 59", os minutos devem ser considerados como "00" e somar uma hora. Ex: Registro da Hora: 05:46 deve ser igual a 06:00.
    O motivo dessa necessidade é que os funcionários só podem fazer uma quantidade específica de H.E. Caso eu faça a "soma normal da H.E.", em alguns a soma não vai mostrar os resultados desejados. Ex: Entrou às 05:46 e saiu às 18:16 '' Total de horas pelo programa = 12:30h, no entanto, só será computado 12 horas, pois esses minutos a mais é considerado como "tolerância".
    Se alguém puder me ajudar a resolver este problema, fico muito agradecido.
    Muito obrigado a todos!!!
    Anexos
    [Resolvido]Arredondamento de Horas no relatório AttachmentTESTE KATIA - Alterado.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (472 Kb) Baixado 14 vez(es)
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]Arredondamento de Horas no relatório Empty Re: [Resolvido]Arredondamento de Horas no relatório

    Mensagem  Leandro 21/11/2013, 15:15

    Boa tarde,

    Não pude ver seu exemplo postado porque eu não tenho access 2007 ou superior, mas fiz uma simulação aqui e funcionou como você quer.

    Porém, eu indico contruir um campo virtual na consulta do relatório e associa=lo ao campo do mesmo.

    Crie o campo virtual e insira essa SeImed:

    =SeImed(Minuto([texto3])<=21;SomData("n";-Minuto([texto3]);[texto3]);SeImed(Minuto([texto3])<=45;Hora([texto3]) & ":30";SeImed(Minuto([texto3])<=59;SomData("n";60-Minuto([texto3]);[texto3]))))

    Na expressão eu usei o "Campo3" altere para o nome correto.

    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]Arredondamento de Horas no relatório Empty Re: [Resolvido]Arredondamento de Horas no relatório

    Mensagem  Leandro 21/11/2013, 15:48

    Ops!!! Uma pequena mudança na expressão:

    =SeImed(Minuto([texto3])<=21;SomData("n";-Minuto([texto3]);[texto3]);SeImed(Minuto([texto3])<=45;SomData("n";30-Minuto([texto3]);[texto3]);SeImed(Minuto([texto3])<=59;SomData("n";60-Minuto([texto3]);[texto3]))))

    avatar
    arnaldojt
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 13/12/2012

    [Resolvido]Arredondamento de Horas no relatório Empty Arredondamento de Horas no relatório

    Mensagem  arnaldojt 22/11/2013, 14:18

    Boa Tarde, Leandro.
    Quero agradecer IMENSAMENTE sua ajuda, pois resolveu perfeitamente o meu problema. Agora vou estudar a expressão para conseguir entende-la e aprender como funciona. Peço desculpa pelas perguntas bobas que faço neste conceituado Fórum. Estou começando um curso de Programação (do Plínio Mabesi), que foi indicado aqui, para ver se consigo "perturbar" menos.
    Mais Uma vez, meu muito Obrigado.
    Um forte Abraço!!!
    avatar
    arnaldojt
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 13/12/2012

    [Resolvido]Arredondamento de Horas no relatório Empty Re: [Resolvido]Arredondamento de Horas no relatório

    Mensagem  arnaldojt 22/11/2013, 14:20

    Ops, esqueci de dizer que o Tópico está resolvido (e muito bem resolvido).
    Um forte Abraço a todos.
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1601
    Registrado : 12/11/2009

    [Resolvido]Arredondamento de Horas no relatório Empty Re: [Resolvido]Arredondamento de Horas no relatório

    Mensagem  Leandro 22/11/2013, 15:34

    Opa!
    Obrigado pelo retorno, saiba de uma coisa, não há aqui nenhum forumeiro que nunca perguntou ou que nasceu sabendo, perguntas fazem parte do conhecimento sem elas ele não seria completo.
    Na expressão que te passei a parte mais "difícil" é: SeImed(Minuto([texto3])<=45;SomData("n";30-Minuto([texto3]);[texto3]), e te explico a lógica.

    Se os minutos estiverem entre 22 e 45, a expressão fará uma subtração, veja na lista abaixo, é o número 30 menos os minutos do range. Veja que há números positivos e negativos, se o minuto for menor que 30 o número será positivo, caso contrário negativo, mas de todos as formas a função está somando, e se você somar dois números positivos, os dois serão somados, se somar um positivo e um negativo, o negativo será subtraído do positivo.

    22 - 8
    23 - 7
    24 - 6
    25 - 5
    26 - 4
    27 - 3
    28 - 2
    29 - 1
    30 - 0
    31 - 1
    32 - 2
    33 - 3
    34 - 4
    35 - 5
    36 - 6
    37 - 7
    38 - 8
    39 - 9
    40 - 10
    41 - 11
    42 - 12
    43 - 13
    44 - 14
    45 - 15


    Conteúdo patrocinado


    [Resolvido]Arredondamento de Horas no relatório Empty Re: [Resolvido]Arredondamento de Horas no relatório

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/3/2024, 00:13