Iandev Smarter Business - Logo Cor
Navegação no fórum
para criar postagens e tópicos.

Parametros de seleção - Web View (Todos ou não)

Parametros de seleção - Web View (Todos ou não)

Para criar, por exemplo, para estoques:

[code]
sql
select
0 as ID
,' Todos os Estoques' as DESCR
from dummy
union all
select
IDLOCALESTOQUE as ID
,DESCRLOCAL as DESCR
from
ESTOQUE_CADASTRO_LOCAL
order by 2
sql_var(sql_estoques)
;
[/code]

Essa é a base para popular o parametro, que deve ser feito assim:
[code]
parameter locaisestoque label="Estoques (seleção múltipla com Ctrl)" type="integer" values="sql_var(sql_estoques)" multi="true" size="5" enabled = "true";
[/code]

Feito isso, para criar o filtro propriamente dito para inserir no sql, sendo que se marcar a opção 'Todos...' não deve filtrar por nada:

[code]
sql
select
(Case when 0 in ($v{locaisestoque})
then ''
else 'and IDLOCALRETIRADA in ($v{locaisestoque})' end
) as FILTROESTOQUE
from
dummy
;
[/code]

E para utilizar só colocar o $c{FILTROESTOQUE} no sql

Caso queira mostrar a seleção pelos nomes enão só pelos códigos, uma maneira é:

[code]
sql
select
(Case when 0 in ($v{locaisestoque})
then 'Todos os Estoques'
else 'estoques:'||(
select
IDLOCALESTOQUE as ID
,DESCRLOCAL as DESCR
from
ESTOQUE_CADASTRO_LOCAL
where
idlocalestoque in ($v{locaisestoque})) end
) as LISTAESTOQUES
[/code]

Exemplo de parametros muito utilizados
(Só pra facilitar a vida, não tem muita relação com o tópico)

[code]
parameter datainicial label="Data Inicial" type="date" default="$exp{addDays($v{dataAtual},-0)"date:dd/MM/yyyy"}exp";
parameter datafinal label="Data Final" type="date" default="$exp{addDays($v{dataAtual},-0)"date:dd/MM/yyyy"}exp";
[/code]

Outra forma bem útil: Exemplo escolha bandeira que é um campo string.

set filtrobandeira = ("$v{bandeira#}".equals("") ? "" : " and e.bandeira = '$v{bandeira}' ");