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

Botão com condição

Boa tarde, estou com o seguinte problema, tenho uma tabela onde tem a coluna "Fornecedores" porém essa coluna é uma expressão com a seguinte condição: IF(ISNULL(NomeForne) AND MontVend > 0, 'PENDENTE', NomeForne), no caso eu gostaria de criar um botão que quando acionado filtrasse apenas o que esta pendente. Qualquer duvida estou a disposição.

Labels (1)
1 Solution

Accepted Solutions
lucianosv
Specialist
Specialist

Desculpe, mas isso é realmente insuficiente.

Não sei se você utiliza todos os campos existentes nos qvds na carga do qvw, entretanto para fazer o que você necessita, precisaria ter os campos A2_FILIAL, A2_COD e A2_LOJA no qvd AF9.qvd para montar o campo #ChaveForne e fazer a marcação nas linhas com Where MontVend > 0.

Não sei quem desenvolveu esse aplicativo e acho que se tudo estiver correto o desenvolvedor é muito bom, mas construiu da pior maneira possível para entendimento e manutenção.

Não existem esses campos no qvd, certo? Se este for o caso não dá para fazer com essa modelagem. Com essa modelagem, se der para fazer você terá que fazer inúmeros joins em uma camada de transformação antes da carga do qvw.

Desculpe não poder ajudar mais.

View solution in original post

16 Replies
lucianosv
Specialist
Specialist

Boa tarde.

Crie 2 dimensões condicionais na tabela, uma para pendentes e outra para o nome do fornecedor.

No botão você inclui uma ação para setar uma variável que será usada na condição das dimensões.

Na ação definir variável você coloca:

If(variável="Pendente", "Fornecedor", "Pendente")

Esse if servirá para inverter a seleção e o rótulo do botão.

Isso ajudará se você resolver as expressões, porém não conseguirá selecionar nulos para o fornecedor. Se este for o caso, você precisará colocar no script:

IF(ISNULL(NomeForne) AND MontVend > 0, 'PENDENTE', NomeForne) as NomeForne,

Att.

Luciano.

Enviado via iPhone

Em 22/10/2014, às 16:37, Marcos Santos <qcwebmaster@qlikview.com> escreveu:

Qlik Community

Botão com condição

criado por Marcos Santos em Qlikview Brasil - Visualize a discussão completa

Boa tarde, estou com o seguinte problema, tenho uma tabela onde tem a coluna "Fornecedores" porém essa coluna é uma expressão com a seguinte condição: IF(ISNULL(NomeForne) AND MontVend > 0, 'PENDENTE', NomeForne), no caso eu gostaria de criar um botão que quando acionado filtrasse apenas o que esta pendente. Qualquer duvida estou a disposição.

Responda a esta mensagem respondendo a este e-mail ou vá para a mensagem em Qlik Community

Inicie uma nova discussão em Qlikview Brasil por e-mail ou em Qlik Community

Seguindo Qlikview Brasil nestes fluxos: Caixa de Entrada

© 1993-2014 QlikTech International AB    Copyright & Trademarks | Privacy | Terms of Use | Software EULA

Not applicable
Author

Boa tarde, mas no caso como ficariam as condições nas expressões? E qual o tipo de botão eu deve utilizar para essa variável? Lembrando que essa coluna fornecedor lista quem é o fornecedor da tarefa que no caso é a montagem, e a condição que eu fiz é para que o fornecedor que estiver em branco mas que o saldo seja maior que 0 fique como "Pendente" o botão seria para filtrar apenas as montagens que estão com os fornecedores pendentes de contratação. Qualquer duvida estou a disposição.

Not applicable
Author

Marcos quanto ao botão você irá cria-lo, depois incluir uma ação, externa-definir-variável, e no lugar da expressão que você usava coloque  a dimensão calculada que o Luciano passou.

lucianosv
Specialist
Specialist

Boa noite.

Para mostrar a dimensão e fazer o botão é simples.

Mesmo assim, acho melhor criar o valor Pendente via script, caso contrário talvez não seja possível selecionar.

Vou tentar postar um exemplo para você amanhã.

Att.

Luciano.

Em 22/10/2014, às 17:33, Marcos Santos <qcwebmaster@qlikview.com> escreveu:

Qlik Community

Botão com condição

resposta de Marcos Santos em Qlikview Brasil - Visualize a discussão completa

Boa tarde, mas no caso como ficariam as condições nas expressões? E qual o tipo de botão eu deve utilizar para essa variável? Lembrando que essa coluna fornecedor lista quem é o fornecedor da tarefa que no caso é a montagem, e a condição que eu fiz é para que o fornecedor que estiver em branco mas que o saldo seja maior que 0 fique como "Pendente" o botão seria para filtrar apenas as montagens que estão com os fornecedores pendentes de contratação. Qualquer duvida estou a disposição.

Responda a esta mensagem respondendo a este e-mail ou vá para a mensagem em Qlik Community

Inicie uma nova discussão em Qlikview Brasil por e-mail ou em Qlik Community

Seguindo Qlikview Brasil nestes fluxos: Caixa de Entrada

Seguindo Botão com condição nestes fluxos: Caixa de Entrada

© 1993-2014 QlikTech International AB Copyright & Trademarks | Privacy | Terms of Use | Software EULA

Not applicable
Author

Bom dia, eu até tentei fazer via script, porém o campo do fornecedor esta em uma tabela e o do saldo está em outra, e não sei como fazer uma condição usando campos de tabelas diferentes, por isso fiz diretamente nas expressões da tabela.

lucianosv
Specialist
Specialist

Bom dia.

Segue qvw exemplo.

Nesse qvw o saldo está na mesma tabela, porém têm uma forma simples de fazer.

Depois de ter lido as duas tabelas no script, você vai fazer algo assim:

Left Join(Tabela Fornecedor)

NomeForne,

'Com Saldo'     as Status

resident Tabela de Saldo

Where MontVend > 0;

Após isso você poderá reler a tabela fornecedor, usando um if mais ou menos assim:

IF(ISNULL(NomeForne) and Status = 'Com Saldo', 'Pendente', NomeForne)     as NomeForne

Not applicable
Author

Luciano, o script eu entendi, mas essa parte do Left Join ficou um pouco confusa para mim, vou enviar o meu qvw caso queira analisar.

lucianosv
Specialist
Specialist

Sem a nuvem de dados não dá para analisar.

Vou tentar te explicar melhor.

Imagine que você já executou a parte do script referente a tabela que contém os fornecedores e a tabela com os saldos.

O que o script têm que fazer é através do left join marcar os NomeForne nulos e com saldo. Depois disso você irá reler a tabela resident de fornecedores(já marcada) e remontar o campo NomeForne perguntando se NomeForne é nulo e se existe saldo através da marca.

Para eu entender o script sem a nuvem preciso pelo menos o nome das tabelas, a chave de amarração e o nome dos campos de fornecedor e saldo.

Not applicable
Author

Ok, mas no caso como eu vou fazer para reler a tabela de fornecedores e remontar o campo NomeForne, também não sei em qual posição do script irei colocar o IF com a condição.