Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Tenho set Analysis abaixo:
Bom o que preciso é simples, mas só estou conseguindo trazer apenas os negativos "Menor que zero" Conforme imagem abaixo:
Se Estoque da Filial 1 com a Data_Alteracao de hoje for(=) Zero ou(<) Menor que Zero.
Que ele traga na mesma linha do produto qual o estoque da Filial 3 (Coluna 2)
Que ele traga na mesma linha do produto qual o estoque da Filial 5 (Coluna 3)
Repito: Só estou conseguindo trazer menor que zero. Algo está errado no meu set Analysis.
if(Sum({$<AnoE ={$(=Year(today()))},MesE={$(=Month(today()))},DiaE={$(=Day(today()))},[CodigoFilialE]={'1'},[Estoque_Sim1]={'0'} >}Qtde_Estoque_Atual),
Sum({$<[CodigoFilialE]={'3'} ,[Estoque_Sim1]-={'0'} >}Qtde_Estoque_Atual))
LOAD Script:
Qtde_Estoque_Atual,
if(num([Qtde_Estoque_Atual]) <=0,0,1) as Estoque_Sim1,
if(num([Qtde_Estoque_Atual]) =0,0,1) as Estoque_Sim2,
NomeProdutoE,
CodigoProduto,
Data_Alteracao,
CodigoFilialE,
DiaE,
TrimestreE,
AnoE,
MesE
FROM
[C:\manaus\Estoque.qvd]
(qvd);
Nobre amigo @Ribeiro ,
Quanto tempo hein rapaz!
Bem, como seu qvw estava com o campo Data_Alteracao no format timestamp, eu resolvi o problema com a seguinte expressão para a filial 1:
SUM({<[CodigoFilialE]={1},Estoque_Sim={0},Data_Alteracao={">=$(=InDay(DayStart(Today())))<=InDay(DayEnd(Today()))"}>}Qtde_Estoque_Atual)
O que digo com essa expressão? Que todo produto da filial 1 cujo estoque atual (marcado pelo today() ) com estoque igual ou menor que zero deve ter seu estoque somado.
E o resultado disso?
Segue a construção da tabela:
Dimensões: CodigoProduto e NomeProdutoE
Expressões:
Filial 1: SUM({<[CodigoFilialE]={1},Estoque_Sim={0},Data_Alteracao={">=$(=InDay(DayStart(Today())))<=InDay(DayEnd(Today()))"}>}Qtde_Estoque_Atual)
Filial 3: SUM({<[CodigoFilialE]={3},Data_Alteracao={">=$(=InDay(DayStart(Today())))<=InDay(DayEnd(Today()))"}>}Qtde_Estoque_Atual)
Filial 5: SUM({<[CodigoFilialE]={5},Data_Alteracao={">=$(=InDay(DayStart(Today())))<=InDay(DayEnd(Today()))"}>}Qtde_Estoque_Atual)
Caso ainda falte algo, deixe-me saber.
Abs e Sucesso!!
Boa tarde,
Pode ser por você não ter uma condição para o if apos o primeiro set
o esta determinando que o dependendo do valor do primeiro set te retorne o valor do segundo, porem nessa expressão não vejo nem um condicionamento no if no seu caso seri if(SET 1)=<0,(SET 2)
acredito que seja isto.
@Ribeiro , Boa tarde!
Seu If(Condição, Then, Else) Está sem condição no primeiro quadrante, ou seja, não está comparando nada e o mesmo deveria.
Qual seria a solução correta para este set Analysis
Se Cod com a data de hoje
for =< 0
Traga o saldo Estoque Cod da Filial 3 e 5
Veja que o Cod 1 a codiçao dele é com estoque: Então ele não vai trazer nada.
Apenas o Código 21 e 3
Bom dia,
if(Sum({$<AnoE ={$(=Year(today()))},MesE={$(=Month(today()))},DiaE={$(=Day(today()))},[CodigoFilialE]={'1'},[Estoque_Sim1]={'0'} >}Qtde_Estoque_Atual)<= 0,
(Sum({$<[CodigoFilialE]-={'1'} ,[Estoque_Sim1]-={'0'} >}Qtde_Estoque_Atual)))
Acredito que assim vai funcionar trazendo a soma dos estoque que não sejam da filial 1
Não Funcionou?
Tirei as data fixas e ficou correto:
Algo está errado aqui: Sum({$<AnoE ={$(=Year(today()))},MesE={$(=Month(today()))},DiaE={$(=Day(today()))},
Mas preciso fazer fixo as datas:
Set Analysis
Filial1: SUM({$<[CodigoFilialE]={'1'},[Estoque_Sim]={'0'} >}Qtde_Estoque_Atual)
Filial3: if(Sum({$<[CodigoFilialE]={'1'},[Estoque_Sim]={'0'} >}Qtde_Estoque_Atual)<=0,
(Sum({$<[CodigoFilialE]={'3'},[Estoque_Sim]-={'0'} >}Qtde_Estoque_Atual)))
Filial5: if(Sum({$<[CodigoFilialE]={'1'},[Estoque_Sim]={'0'} >}Qtde_Estoque_Atual)<=0,
(Sum({$<[CodigoFilialE]={'5'},[Estoque_Sim]-={'0'} >}Qtde_Estoque_Atual)))
Veja a figura do software Funcionou Esta correto:
Veja como Fiz para funcionar. Mas preciso delas fixas!!
se você tem um calendário atrelado no seu modelo de dados é só fazer um set com today
{$<DATA={$(=(Date(Today()))}>}
Cara nunca vir algo assim,
Nao consigo fazer a data fixa.
Ja testei tudo...
LET vHoje = Date(Today(), 'YYYY-MM-DD');
LET vDateMin=num(makedate(2018,01,01));
LET vDateMax=floor(monthend(today()));
LET vDateMin2=num(makedate(2007,01,01));
LET vDateMax2=floor(monthend(today()));
LET vVencimento = Date(Today()-30,'DD/MM/YYY');
Calenderio:
LOAD
Distinct
Date($(vDateMin) + RowNo() - 1,'DD-MMM-YYYY') AS CalendarDate,
ceil(Month(Date($(vDateMin) + RowNo() - 1,'DD-MMM-YYYY'))/3) & 'Trim' as Trimestre,
month(Date($(vDateMin) + RowNo() - 1,'DD-MMM-YYYY')) AS Mes,
WeekDay(Date($(vDateMin) + RowNo() - 1,'DD-MMM-YYYY')) AS Semana,
Day(Date($(vDateMin) + RowNo() - 1,'DD-MMM-YYYY')) AS Dia,
year(Date($(vDateMin) + RowNo() - 1,'DD-MMM-YYYY')) AS Ano,
monthname(Date($(vDateMin) + RowNo() - 1,'DD-MMM-YYYY')) AS MesAno
AutoGenerate 1 While $(vDateMin) + IterNo() - 1 <=$(vDateMax);
LOAD
Qtde_Estoque_Atual,
CodigoProduto,
if([Qtde_Estoque_Atual] <= 0,0,1) as Estoque_Sim,
NomeProdutoE,
Date(Floor(Data_Alteracao),'DD/MM/YYYY') as CalendarDate,
Data_Alteracao,
CodigoFilialE
FROM
[C:\Users\Gateway\Desktop\Estoque.qvd]
(qvd);
seria para substituir essa parte do set que vc usa 3 campos de data, como você só precisa dos valores do dia atual
if(Sum({$<CalendarDate={">=$(=Date(Today()))<"},[CodigoFilialE]={'1'},[Estoque_Sim1]={'0'} >}Qtde_Estoque_Atual)<= 0,
(Sum({$<[CodigoFilialE]-={'1'} ,[Estoque_Sim1]-={'0'} >}Qtde_Estoque_Atual)))