Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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:
Quando você clicar no botão, serão selecionados apenas os valores com a flag igual a "N".
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:
Quando você clicar no botão, serão selecionados apenas os valores com a flag igual a "N".