2 Replies Latest reply: Mar 7, 2017 12:13 PM by Tiago Fernando Cardoso RSS

    Lógica | Cálculo

    Tiago Fernando Cardoso

      Boa tarde pessoal,...

       

      Estou enfrentando um problema de lógica e funções no script de uma aplicação.

      Bom, é o seguinte:

       

      • Existe uma programação de cada ponto por onde o veículo deve passar, uma espécie de programação da rota, que contém, inclusive, o sentido de tráfego (Ida ou Volta) - Vide anexo;
      • Existe o complemento da programação, que é a execução de viagens (passando pelos pontos programados), ou seja, quantas vezes o veículo passará pelos pontos determinados na programação da rota, podendo ou não caracterizar uma (1) viagem dentre várias no mesmo dia - Vide anexo;


      Obs.: Ambos anexos são referentes a um (1) dia de trabalho.

       

      O Problema.


      Esta aplicação já foi feita e concluída utilizando uma regra de negócio diferente, que era a seguinte: carregavam-se apenas os primeiros registros de ida e os primeiros e volta (pela sequencia do ponto programado - anexo), daí depois era feita a comparação de quantas idas e voltas foram feitas (pela quantidade de vezes que o veículo passou pelo ponto de ida e volta) e dividia-se por dois (2) - uma ida vale meio (0,5) e volta a mesma coisa - os dois formavam uma (1) viagem completa...

       

      E a regra de negócio mudou...

       

      Pois bem, a regra de negócio mudou (o sistema foi modificado para maior precisão) e agora entrará em vigor uma regra diferente: o veículo pode ou não iniciar sua viagem do primeiro ponto de partida programado, ou seja, didaticamente: existem dez (10) "checkpoints" pelos quais o veículo deve passar. pela antiga regra ele iniciaria do ponto um (1), porém, agora ele pode iniciar do ponto quatro (4), anulando totalmente a precisão da antiga regra aplicada.

       

      Mas calma...

       

      A regra de cálculo pela nova regra de negócio é a seguinte: eu valido meia (0,5) ida caso o veículo passe por, pelo menos, 60% do total de pontos programados para aquele sentido, neste caso, ida. O mesmo vale para a volta. Didaticamente: se existem dez (10) pontos por onde o veículo deve passar, e eventualmente ele passar por seis (6) apenas, isso é validado como meia ida ou volta (dependendo do sentido).


      *Espero ter detalhado ao máximo meu problema para que possamos resolver isto juntos!


      Sim, tenho algumas coisas em mente, quem baixar os arquivos poderá ver que estão bem organizados e didáticos.

      Estou estudando sobre um possível uso das funções Previous() e Peek().


      Não se esqueçam de baixar os anexos com dados minificados para teste.


      Obs.: Uso QlikView.


      Desde já sou grato àqueles que pelo menos leram até o final o meu problema.

      Att,

      tiagocardoso

        • Re: Lógica | Cálculo
          mauro ponte

          Thiago,

           

          Tenho algumas dúvidas.

           

          pelo que estou vendo voce deseja apresentar os dados em uma tabela, já que cogitou usar previous e peek. Qual seria a dimensão? O veículo?

           

          Como faço para identificar na planilha de Programação para qual(ais) veículo(s) foi feita a programação? já que nessa planilha eu nao tenho o campo veículo, e pelo que entendo preciso contar quantas programações foram feitas e não executadas?

            • Re: Lógica | Cálculo
              Tiago Fernando Cardoso

              Dimensão IdLinha.

               

              A programação é feita pelo IdLinha, deixei o campo veículo para possível ajuda de quem for usar.

               

              O campo IdLinha está presente em ambos os arquivos.

               

              A programação é uma só, estática, no arquivo de programação.

               

              As execuções são mais de uma, passando ou não pelos mesmos pontos. Tanto que o arquivo de execuções é muito maior do que a programação.