Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
claudemir_dioto
New Contributor III

Botão filtrando uma situação

Bom dia pessoal,

Preciso de uma ajuda.

Tenho uma visão onde tenho um campo criado por uma expressão <=IF(saldo_projeto - qtd_necessaria < 0, 'S', 'N')> porém, sobre o resultado dessa expressão, se S - de SIM ou N de NAO, preciso de configurar um BOTÃO de forma que eu possa, quando clicar no mesmo, filtre somente os registros que estão na coluna criada pela expressão como NÃO.

Segue um qvw da situação para análise.

A coluna em questão é a <Falta Transf> e o Botão tá em vermelho.


Se alguém puder me ajudar, fico grato.

Att.

Claudemir

Tags (1)
1 Solution

Accepted Solutions
felipedl
Valued Contributor III

Re: Botão filtrando uma situação

Você teria que criar um campo para que fosse possível filtrar os dados conforme sua necessidade.

Primeiro, no código, pegue a sua tabela [Componentes da Ordem] e use a sua condição:

IF(saldo_projeto - qtd_necessaria < 0, 'S', 'N')

dentro do load da tabela, algo como:

[Ordens de Compra]:

Load *,

     IF(saldo_projeto - qtd_necessaria < 0, 'S', 'N') as [Flag Verificador];

SQL

 

SELECT ordem_sup.cod_comprador,

            ordem_sup.num_versao,

            ordem_sup.ies_origem_oc,

            ordem_sup.num_pedido as pedido_compra,

            ordem_sup.cod_fornecedor,

            ordem_sup.num_oc,

            ordem_sup.cod_secao_receb,

            ordem_sup.cod_progr,

            ordem_sup.pre_unit_oc,

            sum(ordem_sup.pre_unit_oc * (prog_ordem_sup.qtd_solic - prog_ordem_sup.qtd_recebida)) as total_pedido,

            sum((ordem_sup.pre_unit_oc * (prog_ordem_sup.qtd_solic - prog_ordem_sup.qtd_recebida)) * cond_pg_item_cap.pct_val_vencto) / 100 as total_vencimento,

            ordem_sup.cod_item as cod_item_compon,

            ordem_sup.cod_empresa,

            ordem_sup.cod_unid_med,

            ordem_sup.fat_conver_unid,

            ordem_sup.pct_ipi,

            ordem_sup.dat_emis,

            ordem_sup.ies_imobilizado,

            ordem_sup.ies_item_estoq,

            prog_ordem_sup.num_prog_entrega,

            prog_ordem_sup.dat_entrega_prev,

            prog_ordem_sup.dat_entrega_prev as dat_entrega_prevista_oc,

       YEAR(prog_ordem_sup.dat_entrega_prev) as ANO,

        DAY(prog_ordem_sup.dat_entrega_prev) as DIA,

            prog_ordem_sup.qtd_solic as qtd_solic,

            prog_ordem_sup.qtd_recebida as qtd_recebida,

            prog_ordem_sup.num_pedido_fornec,

            prog_ordem_sup.dat_palpite, pedido_sup.cod_transpor,

            item.cod_familia,

            item.gru_ctr_estoq,

            item.ies_ctr_estoque,

            item.den_item as descricao_item_oc,

            fornecedor.raz_social,

            fornecedor.raz_social_reduz,

            comprador.nom_comprador,

            programador.nom_progr,

            moeda.den_moeda,

            grupo_ctr_estoq.den_gru_ctr_estoq,

            familia.den_familia,

            cond_pgto_cap.des_cnd_pgto,

            ordem_sup_txt.tex_observ_oc,

            cond_pg_item_cap.num_parcela,

            cond_pg_item_cap.qtd_dias,

            cond_pg_item_cap.pct_val_vencto,

            prog_ordem_sup.ies_situa_prog,

            sum(prog_ordem_sup.dat_entrega_prev + cond_pg_item_cap.qtd_dias) as data_desembolso

       FROM ordem_sup,

            prog_ordem_sup,

            item,

            pedido_sup,

            OUTER fornecedor,

            comprador,

            programador,

            moeda,

            grupo_ctr_estoq,

            familia,

            cond_pgto_cap,

            outer ordem_sup_txt,

            cond_pg_item_cap

      WHERE ordem_sup.cod_empresa = '01'

        AND ordem_sup.ies_versao_atual = 'S'

        AND ordem_sup.ies_situa_oc NOT IN ('L','C')

        AND ordem_sup.num_pedido <> '0'

        AND pedido_sup.cod_empresa = '01'

        AND pedido_sup.num_pedido = ordem_sup.num_pedido

        AND pedido_sup.ies_versao_atual = 'S'

        AND pedido_sup.ies_situa_ped = 'R'

        AND prog_ordem_sup.cod_empresa = ordem_sup.cod_empresa

        AND prog_ordem_sup.num_oc = ordem_sup.num_oc

        AND ordem_sup.num_oc = ordem_sup_txt.num_oc

        AND ordem_sup.num_versao = prog_ordem_sup.num_versao

        AND ordem_sup_txt.num_seq = '1'

        AND ordem_sup_txt.ies_tip_texto = 'P'

        AND prog_ordem_sup.num_versao = ordem_sup.num_versao

        AND prog_ordem_sup.ies_situa_prog NOT IN ('L','C','P')

        AND item.cod_empresa = ordem_sup.cod_empresa

        AND item.cod_item = ordem_sup.cod_item

        AND fornecedor.cod_fornecedor = pedido_sup.cod_fornecedor

        AND ordem_sup.cod_comprador = comprador.cod_comprador

        AND ordem_sup.cod_progr = programador.cod_progr

        AND ordem_sup.cod_moeda = moeda.cod_moeda

        AND item.gru_ctr_estoq = grupo_ctr_estoq.gru_ctr_estoq

        AND item.cod_familia = familia.cod_familia

        AND ordem_sup.cnd_pgto = cond_pgto_cap.cnd_pgto

        AND cond_pg_item_cap.cnd_pgto = cond_pgto_cap.cnd_pgto

GROUP BY ordem_sup.cod_comprador,

            ordem_sup.num_versao,

            ordem_sup.ies_origem_oc,

            ordem_sup.num_pedido,

            ordem_sup.cod_fornecedor,

            ordem_sup.num_oc,

            ordem_sup.cod_secao_receb,

            ordem_sup.cod_progr,

            ordem_sup.pre_unit_oc,

            ordem_sup.cod_item,

            ordem_sup.cod_empresa,

            ordem_sup.cod_unid_med,

            ordem_sup.fat_conver_unid,

            ordem_sup.pct_ipi,

            ordem_sup.dat_emis,  ordem_sup.ies_imobilizado,

            ordem_sup.ies_item_estoq,

            prog_ordem_sup.num_prog_entrega,

            prog_ordem_sup.dat_entrega_prev,

            ordem_sup.dat_entrega_prev,

            ordem_sup.dat_entrega_prev,

            prog_ordem_sup.qtd_solic,

            prog_ordem_sup.qtd_recebida,

            prog_ordem_sup.num_pedido_fornec,

            prog_ordem_sup.dat_palpite, pedido_sup.cod_transpor,

            item.cod_familia,

            item.gru_ctr_estoq,

            item.ies_ctr_estoque,

                    item.den_item,

                    fornecedor.raz_social,

            comprador.nom_comprador,

            programador.nom_progr,

            moeda.den_moeda,

            grupo_ctr_estoq.den_gru_ctr_estoq,

            familia.den_familia,

            fornecedor.raz_social_reduz,

            cond_pgto_cap.des_cnd_pgto,

            ordem_sup_txt.tex_observ_oc,

            cond_pg_item_cap.num_parcela,

            cond_pg_item_cap.qtd_dias,

            prog_ordem_sup.ies_situa_prog,

cond_pg_item_cap.pct_val_vencto  ;

Isso irá criar a flag nos dados, e não na visualização.

Ai finalmente, no botão você consegue fazer o tipo de ação de seleção de dados, como a seguir:

sample.png

Quando você clicar no botão, serão selecionados apenas os valores com a flag igual a "N".

1 Reply
felipedl
Valued Contributor III

Re: Botão filtrando uma situação

Você teria que criar um campo para que fosse possível filtrar os dados conforme sua necessidade.

Primeiro, no código, pegue a sua tabela [Componentes da Ordem] e use a sua condição:

IF(saldo_projeto - qtd_necessaria < 0, 'S', 'N')

dentro do load da tabela, algo como:

[Ordens de Compra]:

Load *,

     IF(saldo_projeto - qtd_necessaria < 0, 'S', 'N') as [Flag Verificador];

SQL

 

SELECT ordem_sup.cod_comprador,

            ordem_sup.num_versao,

            ordem_sup.ies_origem_oc,

            ordem_sup.num_pedido as pedido_compra,

            ordem_sup.cod_fornecedor,

            ordem_sup.num_oc,

            ordem_sup.cod_secao_receb,

            ordem_sup.cod_progr,

            ordem_sup.pre_unit_oc,

            sum(ordem_sup.pre_unit_oc * (prog_ordem_sup.qtd_solic - prog_ordem_sup.qtd_recebida)) as total_pedido,

            sum((ordem_sup.pre_unit_oc * (prog_ordem_sup.qtd_solic - prog_ordem_sup.qtd_recebida)) * cond_pg_item_cap.pct_val_vencto) / 100 as total_vencimento,

            ordem_sup.cod_item as cod_item_compon,

            ordem_sup.cod_empresa,

            ordem_sup.cod_unid_med,

            ordem_sup.fat_conver_unid,

            ordem_sup.pct_ipi,

            ordem_sup.dat_emis,

            ordem_sup.ies_imobilizado,

            ordem_sup.ies_item_estoq,

            prog_ordem_sup.num_prog_entrega,

            prog_ordem_sup.dat_entrega_prev,

            prog_ordem_sup.dat_entrega_prev as dat_entrega_prevista_oc,

       YEAR(prog_ordem_sup.dat_entrega_prev) as ANO,

        DAY(prog_ordem_sup.dat_entrega_prev) as DIA,

            prog_ordem_sup.qtd_solic as qtd_solic,

            prog_ordem_sup.qtd_recebida as qtd_recebida,

            prog_ordem_sup.num_pedido_fornec,

            prog_ordem_sup.dat_palpite, pedido_sup.cod_transpor,

            item.cod_familia,

            item.gru_ctr_estoq,

            item.ies_ctr_estoque,

            item.den_item as descricao_item_oc,

            fornecedor.raz_social,

            fornecedor.raz_social_reduz,

            comprador.nom_comprador,

            programador.nom_progr,

            moeda.den_moeda,

            grupo_ctr_estoq.den_gru_ctr_estoq,

            familia.den_familia,

            cond_pgto_cap.des_cnd_pgto,

            ordem_sup_txt.tex_observ_oc,

            cond_pg_item_cap.num_parcela,

            cond_pg_item_cap.qtd_dias,

            cond_pg_item_cap.pct_val_vencto,

            prog_ordem_sup.ies_situa_prog,

            sum(prog_ordem_sup.dat_entrega_prev + cond_pg_item_cap.qtd_dias) as data_desembolso

       FROM ordem_sup,

            prog_ordem_sup,

            item,

            pedido_sup,

            OUTER fornecedor,

            comprador,

            programador,

            moeda,

            grupo_ctr_estoq,

            familia,

            cond_pgto_cap,

            outer ordem_sup_txt,

            cond_pg_item_cap

      WHERE ordem_sup.cod_empresa = '01'

        AND ordem_sup.ies_versao_atual = 'S'

        AND ordem_sup.ies_situa_oc NOT IN ('L','C')

        AND ordem_sup.num_pedido <> '0'

        AND pedido_sup.cod_empresa = '01'

        AND pedido_sup.num_pedido = ordem_sup.num_pedido

        AND pedido_sup.ies_versao_atual = 'S'

        AND pedido_sup.ies_situa_ped = 'R'

        AND prog_ordem_sup.cod_empresa = ordem_sup.cod_empresa

        AND prog_ordem_sup.num_oc = ordem_sup.num_oc

        AND ordem_sup.num_oc = ordem_sup_txt.num_oc

        AND ordem_sup.num_versao = prog_ordem_sup.num_versao

        AND ordem_sup_txt.num_seq = '1'

        AND ordem_sup_txt.ies_tip_texto = 'P'

        AND prog_ordem_sup.num_versao = ordem_sup.num_versao

        AND prog_ordem_sup.ies_situa_prog NOT IN ('L','C','P')

        AND item.cod_empresa = ordem_sup.cod_empresa

        AND item.cod_item = ordem_sup.cod_item

        AND fornecedor.cod_fornecedor = pedido_sup.cod_fornecedor

        AND ordem_sup.cod_comprador = comprador.cod_comprador

        AND ordem_sup.cod_progr = programador.cod_progr

        AND ordem_sup.cod_moeda = moeda.cod_moeda

        AND item.gru_ctr_estoq = grupo_ctr_estoq.gru_ctr_estoq

        AND item.cod_familia = familia.cod_familia

        AND ordem_sup.cnd_pgto = cond_pgto_cap.cnd_pgto

        AND cond_pg_item_cap.cnd_pgto = cond_pgto_cap.cnd_pgto

GROUP BY ordem_sup.cod_comprador,

            ordem_sup.num_versao,

            ordem_sup.ies_origem_oc,

            ordem_sup.num_pedido,

            ordem_sup.cod_fornecedor,

            ordem_sup.num_oc,

            ordem_sup.cod_secao_receb,

            ordem_sup.cod_progr,

            ordem_sup.pre_unit_oc,

            ordem_sup.cod_item,

            ordem_sup.cod_empresa,

            ordem_sup.cod_unid_med,

            ordem_sup.fat_conver_unid,

            ordem_sup.pct_ipi,

            ordem_sup.dat_emis,  ordem_sup.ies_imobilizado,

            ordem_sup.ies_item_estoq,

            prog_ordem_sup.num_prog_entrega,

            prog_ordem_sup.dat_entrega_prev,

            ordem_sup.dat_entrega_prev,

            ordem_sup.dat_entrega_prev,

            prog_ordem_sup.qtd_solic,

            prog_ordem_sup.qtd_recebida,

            prog_ordem_sup.num_pedido_fornec,

            prog_ordem_sup.dat_palpite, pedido_sup.cod_transpor,

            item.cod_familia,

            item.gru_ctr_estoq,

            item.ies_ctr_estoque,

                    item.den_item,

                    fornecedor.raz_social,

            comprador.nom_comprador,

            programador.nom_progr,

            moeda.den_moeda,

            grupo_ctr_estoq.den_gru_ctr_estoq,

            familia.den_familia,

            fornecedor.raz_social_reduz,

            cond_pgto_cap.des_cnd_pgto,

            ordem_sup_txt.tex_observ_oc,

            cond_pg_item_cap.num_parcela,

            cond_pg_item_cap.qtd_dias,

            prog_ordem_sup.ies_situa_prog,

cond_pg_item_cap.pct_val_vencto  ;

Isso irá criar a flag nos dados, e não na visualização.

Ai finalmente, no botão você consegue fazer o tipo de ação de seleção de dados, como a seguir:

sample.png

Quando você clicar no botão, serão selecionados apenas os valores com a flag igual a "N".