Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

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...

Labels (2)
1 Solution

Accepted Solutions
felipe_dutra
Partner - Creator
Partner - Creator

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

View solution in original post

3 Replies
felipe_dutra
Partner - Creator
Partner - Creator

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

Not applicable
Author

OK. Mais ai, na seleção dos anos, vai mostrar todos os anos que tenho cadastrado no item, correto?

No caso a menor data é 1999. Como faria para exibir para seleção apenas os últimos 3 anos?

Not applicable
Author

Consegui.. Criei uma expressão na lista do Ano..

Valeu.