3 Replies Latest reply: Jul 24, 2014 10:57 AM by Tiago Ferreira RSS

    Listagem de Itens

      Bom dia, Pessoal..

       

      Estou começando nos estudos de qlikview e estou com a seguinte situação:

      Nos anexos coloquei o relacionamento da tabela de itens com a tabela de calendário..

       

      Preciso carregar o campo ANO de modo a mostrar os dois últimos anos + o ano atual e preciso fazer o Count de todos os itens implantados nos ultimos 2 anos + a data selecionada.. Ou seja, vai mostra 2012 / 2013 / 2014 e ao selecionar 2013, irá mostrar os itens cadastrados em 2011, 2012 e 2013.

       

      Meu problema está justamente ai.. Quando seleciono 2014, faz  contagem normal.. Mas quando seleciono 2013, apenas conta 2013 e 2012.. E ainda se seleciono 2012, só conta 2012..

       

      Agora, se no AUTOGENERATE eu mudar a data de 01/01/2012 para 2010.. Vai passar a exibir 2010, 2011 ... 2014.. Ai selecionando 2012 passa a funcionar e o problema começa a acontecer com 2011 e 2010..

       

      Scripts:

      calendario:

      LOAD

      date([Data], 'DD/MM/YYYY')     as [Data Implantação - Item],

      if(monthname(peek('Data'))<>monthname(Data),1,0) as Data_Anterior,

      Day(Data)                                           as Dia,

      Month(Data)                                         as "Mês",

      Year(Data)                                          as Ano,

      DayNumberOfQuarter(Data)                 as [Dia Trimestre],

      DayNumberOfYear(Data)                           as [Dia Ano],

      MonthName(Data)                                     as [Mês - Ano],

      QuarterName(Data)&'º Sem'                           as [Semestre],

      Week(Data)                                          as [Semana],

      ceil(Month(Data)/3)&'º Trim'             as [Trimestre],

      WeekDay(Data)                                 as [Dia Semana];

       

      LOAD

        makedate(mid(date((Today()) - Recno()+1, 'DD/MM/YYYY HH:MM:SS'), 7,4),

        mid(date((Today()) - Recno()+1, 'DD/MM/YYYY HH:MM:SS'), 4,2),

        mid(date((Today()) - Recno()+1, 'DD/MM/YYYY HH:MM:SS'), 1,2))                  as [Data]

       

      AUTOGENERATE(Today() - '01/01/2012');

       

      let vAnoAtual  = '=max(Ano)';

      let vAnoAnterior2  = AddYears(Ano, -2);

      LET vStart=yearstart(AddYears(Ano,- 2));

       

      Obrigado a todos...

        • Re: Listagem de Itens
          Felipe Dutra

          Thiago,

           

          Crie o calendário para o intervalo de datas contidas em sua aplicação.

          Ex.: AUTOGENERATE('$(vMaxData)' - '$(vMinData)' + 1);

           

          Quando você seleciona um ano e quer apresentar um cálculo para o ano selecionado e para os dois anteriores, esses dois precisam estar carregados na aplicação.

          No script você apenas definirá o intervalo de tempo para o qual deseja carregar os dados.

          Nos gráficos, use a seguinte expressão:

          Count({<Ano={'>=$(=Max(Ano)-2)<=$(=Max(Ano))'}>}Item)

           

          Abs,

          Felipe