8 Replies Latest reply: Feb 21, 2017 7:44 AM by Guilherme Borlenghi RSS

    Gráfico com Dimensão em comum

    Guilherme Borlenghi

      Pessoal, estou com o seguinte problema:

       

      Preciso montar um gráfico em que sua dimensão seja os dias do ano "DD/MM/YYYY".

       

      Tenho em meus registros um controle de entrada e saída de veículos.

      Ex.

       

      ID VEICULOENTRADA (DT_ENT)SAIDA (DT_SAI)
      129210/02/201712/02/2017
      129310/02/201711/02/2017
      129411/02/201713/02/2017

       

      Quero montar um gráfico que me mostre quantas entradas e saídas tiveram em cada dia.

       

      Seria representado da seguinte forma:

      ex.png

      Grato!

        • Re: Gráfico com Dimensão em comum
          Tiago Fernando Cardoso

          Boa tarde, Guilherme. Para datas do tipo inicio e fim, entrada e saída, etc... é interessante o uso do interval match, pois ele facilitará sua vida em relação às datas. Leia com bastante atenção!

           

          Artigo do hic, muito bom.

          IntervalMatch

          Outro post com exemplo anexado para você se inspirar!

          Interval Match Feature/Function

           

          Espero que seja útil.

           

          Att

          Tiago Cardoso

          • Re: Gráfico com Dimensão em comum
            Márcio Rodrigo Campestrini

            Guilherme, não entendi o problema.

            O gráfico que você mostrou não foi feito no Qlikview?

            • Re: Gráfico com Dimensão em comum
              Eduardo Sommer

              Bom dia, Guilherme

               

              Você pode fazer algo como eu fiz neste script:

               

              Tabela:

              Load * inline [

              IDVEICULO, ENTRADA, SAIDA

              1292, 10/02/2017, 12/02/2017

              1293, 10/02/2017, 11/02/2017

              1294, 11/02/2017, 13/02/2017

              ];

               

               

              NovaTabela:

              Load IDVEICULO,

                  if(IterNo() = 1, 'E', 'S') as Sentido,

                  if(IterNo() = 1, ENTRADA, SAIDA) as Data

              Resident Tabela

              While (IterNo() <=2);

               

              O seu gráfico, então, pode utilizar o campo Data como dimensão e as seguintes expressões:

              =count({$<Sentido={'E'}>} IDVEICULO) para contar quantas entradas houve no dia e

              =count({$<Sentido={'S'}>} IDVEICULO) para contar quantas saídas houve no dia

               

              Entradas e Saídas.png

               

              Espero ter ajudado

               

              Eduardo

                • Re: Gráfico com Dimensão em comum
                  Guilherme Borlenghi

                  Eduardo, seu modelo está exatamente do jeito que preciso, mas desculpe minha falta de entendimento, ainda continuo sem entender.

                   

                  Minha dúvida no momento é o seguinte, na tabela que você chamou de "Tabela" para fazer o Load Inline, você digitou os campos que irão compor essa tabela, eu preciso que ele busque os registros do banco de dados.

                   

                  Como ficaria?

                  Tabela:

                  Load Inline [

                  IDVEICULO, ENTRADA, SAIDA

                  "IDVEICULO", "ENTRADA", "SAIDA"]

                  from SQL_VIEW

                   

                  Entendeu o que preciso?

                   

                  Preciso que a "Tabela" tenha os registros do banco de dados conforme for atualizando, e não ter os valores já pré-definidos.

                   

                  Desde já, obrigado a todos.

                    • Re: Gráfico com Dimensão em comum
                      Eduardo Sommer

                      Bom dia, Guilherme,

                       

                      A ideia que eu passei foi de você poder dividir uma linha, de uma tabela, em diversas (usando a função IterNo()). Nesse caso, nós dividimos o registro de entrada e saída de um veículo, em dois registros (um de entrada e outro de saída).

                       

                      O fato de eu ter criado uma carga "inline", foi para poder, rapidamente, te apresentar um exemplo e, principalmente, usando os dados que você tinha proposto na exposição do problema. Imagine aquela tabela vindo de um banco de dados. O resultado segue o mesmo.

                       

                      Para buscar no banco de dados, você terá que fazer uma conexão com ele, podendo ser ODBC ou OLEDB. Uma vez que a tabela esteja na memória (resident) , segue a sintaxe que eu usei.

                       

                      Espero ter ajudado e não confundido mais as coisas. Sugiro que você divida o problema em dois: a carga de dados a a partir de um banco de dados e, a divisão dos registros de entrada em diversos (que é o que tratamos neste post).

                       

                      Qualquer coisa a mais que eu puder contribuir, conte comigo.

                       

                      Abraço

                       

                      Eduardo