Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia, Pessoa!
Estou com a seguinte situação:
Estou trabalhando com duas Tabelas:
STF - Planos Preventivos
ST9 - Bens
Eu carreguei elas e usei um left join entre ambas. ok.
Na STF eu vejo quais planos preventivos estão cadastrados para cada bem da minha ST9. Estes Planos podem assumir status de ATRASADO OU NORMAL, de acordo com a formula:
=IF((MAX(STF_Cont.Manut))+STF_Incr.Manut. < MAX([Horimetro C]), 'Atrasada', '-')
Até aqui, tudo bem. Eu montei uma tabela que me mostra o status para cada plano, e ficou assim:
O que eu quero? Duas coisas!
- Na tabela que criei acima, quero mostrar apenas os Planos com status de atrasado. Tentei usar a sintaxe:
Count({$<[STF_Mant.Ativa]={'S'}, STF_Cont.Manut+STF_Incr.Manut.={}>} distinct Planos_Preventivos_Manut) .
.. Mas não deu certo não.
- Quero criar um gráfico de pizza que me mostre por bem quantos planos estão atrasados. Basicamente é um Count com a condição para Status = Atrasado
Eu pensei em criar dentro do script a variavel que depois eu possa selecionar Atrasada/ok.. Mas eu nao sei bem como funciona isso.
Podem me ajudar?
Obrigada
Ketty,
Se não está funcionando o filtro no set analysis. Tente fazer o seguinte:
Nas suas dimensões coloque um if(Status = 'Atrasada', codigo,''). Depois marque a opção 'ocultar valores nulos'.
Veja se funciona.
João Carlos Ferreira.
Ketty,
Inclui o filtro por Status no seu Set Analysis, exemplo:
Sum({$< STATUS = {'Atrasada'}>} VALOR)
Paulo,
Acontece que o status ele nao existe a variavel..
Eu crio atraves da expressao: =IF((MAX(STF_Cont.Manut))+STF_Incr.Manut. < MAX([Horimetro C]), 'Atrasada', '-')
Como eu faço para criar como se fosse uma dimensao..
Ketty,
Cria o campo Status no seu script e depois faça o filtro no Set Analysis
Como eu crio no script?
Ketty,
Faça um teste:
Crie a seguinte expressão (no seu objeto de tabela):
IF(IF((MAX(STF_Cont.Manut))+STF_Incr.Manut. < MAX([Horimetro C]), 'Atrasada', '-')='Atrasada','Atrasada')
Se possível disponibilize um QVW de exemplo...
Exemplo de campo Status no script:
Tabela1:
LOAD * INLINE [
Plano, mes, VOLUME, STF_Cont.Manut, STF_Incr.Manut., Horimetro C
Um, 01, 12, 1, 251, 1756
Dois, 02, 14, 1, 501, 1756
Três, 03, 15, 1, 1001, 1756
Quatro, 04, 3, 1, 2001, 1756
Cinco, 05, 4, 1, 251, 1756
Seis, 06, 5, 1, 7, 1756
];
Tabela2:
LOAD
Plano,
//MAX(STF_Cont.Manut+STF_Incr.Manut.) as MaxManut,
//MAX([Horimetro C]) as MaxHorimetro,
IF((MAX(STF_Cont.Manut))+STF_Incr.Manut. < MAX([Horimetro C]), 'Atrasada', '-') as STATUS
Resident Tabela1
Group By Plano,STF_Incr.Manut.,STF_Cont.Manut,[Horimetro C];
Paulo,
Não deu certo!
Consegui criar o campo STATUS, porém acontece o seguinte: !
Para cada BEM ele criou um status Atrasada e OK ..
Mas não é isso que eu quero.. eu quero que avalie a minha condição..
Para cada bem, eu tenho 4 de lubrificação e 4 mecanicas.
Sendo, 250H, 500H,1000H e 200h de cada tipo.
Ai tenho um campo que me mostra o horimetro de cada equipamento.(t9_acumulado)
Ai funciona assim:
Na minha tabela de planos(STF) eu tenho os 8 planos preventivo e qual foi o horimetro da ultima manutenação.
ai para eu saber se essa manutenação esta atrasada, eu preciso fazer essa formula que criamos o status,..
Quando eu crie o status na expressao, eu consigo visualizar se esta atrasada ou nao..
Porem, eu quero filtrar apenas as atrasadas.. Mas nao tenho a dimensao para filtrar..
Estou enviando o QVD e os arquivos para leitura. Se puder me ajudar, agradeço.
Obrigada
Ketty,
Faltou você associar a tabela1 com a tabela2 onde está a condição de Status.
Feito isso você pode na própria dimensão do gráfico realizar uma condição com if para mostrar só Status ='ATRASADA'.
Mais ou menos assim:
if(Status = 'ATRASADA', suadimensao,'')
e marca para ocultar os nulos.
João Carlos.
Ketty,
Existem outras fontes de dados que você não enviou (CTT_FULL.qvd,Filiais Protheus.xls e etc). Mas faz os seguintes ajustes no seu script:
1 - Incluir o campo CHAVE_DESCRIÇÃO_ZB7 na Tabela 2 (necessário para fazer o relacionamento com a Tabela1:
Tabela2:
Load
CHAVE_DESCRIÇÃO_ZB7,
IF((MAX(STF_Cont.Manut))+STF_Incr.Manut. < MAX(T9_Cont.Acumul.), 'Atrasada', '-') as STATUSMANUT
Resident Tabela1
Group By Planos_Preventivos_Manut,STF_Incr.Manut.,STF_Cont.Manut,T9_Cont.Acumul.;
2 - Depois utilize o campo STATUSMANUT no set analysis, exemplo:
sum({$<[STATUSMANUT] ={'Atrasada'}>} VALOR)
Por favor informe se as soluções apontadas posteriormente atenderam à sua necessidade.
Caso positivo, marque a resposta como correta para que o tópico possa ser encerrado.