Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
rodrigo_rocha
Creator
Creator

Como buscar quantidade de dias dos meses anteriores II - A Revanche!!

Olá pessoal!!

A primeira parte dessa saga aconteceu aqui: Como buscar quantidade de dos meses anteriores!!

E como disse para o amigo Marcel, minha duvida foi parcialmente resolvida pois agora tenho um outro problema. A quantidade de dias que a expressão retorna é apenas a dos dias que o produto foi vendido, ou seja, se um produto foi vendido apenas hoje, essa quantidade de dias que aparece apenas para o mesmo é de 1 dia e não 30 dias do mês. Veja o exemplo abaixo:

Screenshot_11.png

No registro destacado em azul, como este produto foi vendido em todos os dias uteis do mês, ele apresenta 24 dias. Porém o registro destacado em vermelho que consta 23 dias, o produto não foi vendido em todos os dias uteis, sendo que em 1 dia o mesmo não teve venda.

Existe alguma função de calendário para que possa resolver este problema? Preciso que a mesma quantidade de dias seja contado em todos os registros mesmo que eles tenham sido vendidos em apenas 1 dia do mês. Lembro que também é preciso que esses dias sejam somados a medida que o usuário escolha mais de um mês na caixa de dados na parte superior da tela.

Desde já agradeço!!

Rodrigo Ramos Rocha

17 Replies
rodrigo_rocha
Creator
Creator
Author

To tentando criar essas variáveis no Sense e não to conseguindo... Na verdade nunca precisei criar no Sense...

Screenshot_14.png

Não sei se esta correto da maneira que fiz acima... porém não esta apresentando os dias conforme abaixo:

Screenshot_13.png

To fazendo alguma coisa errada??

srchagas
Creator III
Creator III

Ta faltando os "=" na frente so tu colocar isso que deve funcionar dentro das variaveis precisa ser assim mesmo:

"=Max(Seu_CAMPO_DE_DATA)"

no Inicio mes , fim do mes  e no netoworkdays tb

caso contrario tu vai ter que por $ na frente da variavel

rodrigo_rocha
Creator
Creator
Author

Thiago.... estamos quase la...

Ele ta aparecendo agora a quantidade dos dias... porém ele não esta somando com os meses anteriores conforme falei... Selecionando os meses de Novembro (6 dias até agora) com o de Outubro (25 dias) teria que mostrar 31 dias, conforme abaixo. Porém ele não esta somando e também me parece que esta contando todos os dias uteis deste mês de Novembro, sendo que é preciso contar até o dia corrente sempre aumentando mais um dia conforme o decorrer do mês. Já coloquei todos os campos de data que eu possuo no código mas o problema permanece...


Screenshot_15.png

Peço desculpas se estou te perturbando parceiro... mas realmente preciso muito desta funcionalidade.

Obrigado mesmo pela ajuda até agora!!!

srchagas
Creator III
Creator III

Me tira as seguintes duvidas:

1- O cara pode selecionar o Dia ou so mes?

2- Precisa conta  ate o dia corrente ou mes inteiro?

so preciso sanar essas duas duvidas que acho que sei qual e a solucao

para me ajuda na visualizacao dos dados: consegue bota como uma lista os dias ai para eu ter uma ideia de como esta a nuvem de data ?

e naos e preocupa nao cara, nao e incomodo nenhum, estamos em uma comunidade nos ajudando, estou aprendendo mais enquanto te ajudo tambem

So peco desculpas pela demora em responder pra ti, porque estou em um local 3 horas a frente do brasil, entao aqui e 8 Am e ai 5 AM rs

Relaxa que se precisar de ajuda estamos ai, so sana essas duvidas que acredito que terei a solucao

rodrigo_rocha
Creator
Creator
Author

Valeu mesmo Thiago!! Vamos la então:

1 - Ele vai selecionar os meses conforme esta marcado no campo de meses que esta circulado de vermelho. Esse campo chama Mes Ano e eu criei ele com a função calendário. Ele pega uma data da base e transforma ele em mes e ano. Segue a linha do codigo:


Calendario:

NoConcatenate

LOAD

nf_data_entrega,

Day(nf_data_entrega) as Dia,

Month(nf_data_entrega) as Mês,

Year(nf_data_entrega) as Ano,

DayNumberOfQuarter(nf_data_entrega) as [Dia Trimestre],

DayNumberOfYear(nf_data_entrega) as [Dia Ano],

MonthName(nf_data_entrega) as [Mes Ano],

QuarterName(nf_data_entrega) as [Quarter],

Week(nf_data_entrega) as [Semana],

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

WeekDay(nf_data_entrega) as [Dia Semana]

Resident TMP_Calendario;


Screenshot_15.png

2- Depende de como o usuário selecionar o Mês. Caso for o mês atual, precisa contar até o dia corrente. Por exemplo: caso o usuário selecionar o mês de Novembro, terá que contar até o dia de hoje, ou seja, 7 dias uteis. Caso ele selecione outros meses que já passaram será preciso mostrar a quantidade de dias uteis que teve este determinado mês. Por exemplo caso seja selecionado o mês de Outubro, será mostrado 25 dias. E também, caso seja selecionado mais de um mês, é preciso que mostre a quantidade de dias uteis dos dois meses somados. Por exemplo, caso o usuário selecione o mês de outubro e novembro, será preciso mostrar 32 dias que seria 25 dias uteis de Outubro mais os 7 dias uteis de Novembro.


Estou quebrando a minha cabeça aqui também... mas esta difícil cara... valeu pela ajuda!!

srchagas
Creator III
Creator III

Nao tranquilo resolve isso e de boa....

Vamo fazer o seguinte

vMaxInicioMes =  Date(Floor(Min(vMaxDataCorrente) ))

vMaxFimMes =  Date(Floor(Max(vMaxDataCorrente) ))

Coloquei o Floor e date pq se tiver formatado em Data precisa voltar. mas se possivel tenta sem o Foor e o Date se para de  retornar registro, coloca eles.

Isso deve resolver.

Pq fazemos isso :

se o cara so seleciona Ano /Mes

Quando mandamos o Min ele ira buscar o menor registro que existe na nuvem, logo se voce seleciona Outubro ira ser 1/10/2017 se voce seleciona setembro e outubro 1/9/2017

Max : ele ira sempre busca o maior registro possivel que temos na nuvem, se  voce selecionar novembro, sera o Maior dia util possivel.

se selecionar outro mes, sera o ultimo dia do mes.

Isso so funciona pq esta selecinado o mes e existe a possibilidade na nuvem de todo o mes, caso selecione o dia, isso nao iria funcionar pq  Max e Min seria o proprio dia selecionado.

rodrigo_rocha
Creator
Creator
Author

Olá Thiago!! Desculpe a demora pelo retorno... mas também não funcionou... Fica em branco... como se estivesse nulo o registro. Ta difícil cara hahahahahahahhaha

srchagas
Creator III
Creator III

Tentou com e se floor

Coloca em objeto de texto e verifica como esta retornando a variavel

veja o exemplo que eu fiz.... pode se que ta dando merda na hora de voce passa a data deve ta indo numero e networkdays nao funciona

Data Formatada.PNG

Variaveis Data Formatada.PNG

=NetWorkDays('2017-01-01','2017-03-31')

Resultado Networkdays.PNG