Tarefa WebView construída para cadastro rápido, onde o cliente precisava ter multi-seleção nos fornecedores, e também rodar um Insert para cada fornecedor selecionado. Para isso, foi construída uma lógica utilizando alguns comandos java e utilização de fo
Citação de Kindrazki em 30 de maio de 2012, 16:59Tarefa WebView construída para cadastro rápido, onde o cliente precisava ter multi-seleção nos fornecedores, e também rodar um Insert para cada fornecedor selecionado. Para isso, foi construída uma lógica utilizando alguns comandos java e utilização de for/loop utilizando labels.
[code]
parameter fornecedor label="Escolha o Fornecedor" type="integer" values="sql_var(sql_fornecedor)" size="10" multi="true";
parameter peracordo label="% Acordo Fornecedor:" type="decimal" default="0";
# Retira pontos e virgula, e deixa decimal separada por ponto.
set peracordo = bdo.util.NumberUtil.getBigDecimal("$v{peracordo}");# Limpa registro do Fornecedor.
sql_exec delete from DBA.FORNECEDORDETALHES where idclifor in ($v{fornecedor});# Split: Quebra as divisões de virgula em Array
# Lenght: Quantos elementos possuiu Array
set count = "$v{fornecedor}".split(",").length;
set idx = 0;:label1;
set forn = "$v{fornecedor}".split(",")[$v{idx}];sql_exec insert into DBA.FORNECEDORDETALHES (idclifor,peracordo) values ( $v{forn} ,$v{peracordo});
set idx = $v{idx} + 1;
if $v{idx} < $v{count};
goto label1;
end_if ;[/code]
Tarefa WebView construída para cadastro rápido, onde o cliente precisava ter multi-seleção nos fornecedores, e também rodar um Insert para cada fornecedor selecionado. Para isso, foi construída uma lógica utilizando alguns comandos java e utilização de for/loop utilizando labels.
[code]
parameter fornecedor label="Escolha o Fornecedor" type="integer" values="sql_var(sql_fornecedor)" size="10" multi="true";
parameter peracordo label="% Acordo Fornecedor:" type="decimal" default="0";
# Retira pontos e virgula, e deixa decimal separada por ponto.
set peracordo = bdo.util.NumberUtil.getBigDecimal("$v{peracordo}");
# Limpa registro do Fornecedor.
sql_exec delete from DBA.FORNECEDORDETALHES where idclifor in ($v{fornecedor});
# Split: Quebra as divisões de virgula em Array
# Lenght: Quantos elementos possuiu Array
set count = "$v{fornecedor}".split(",").length;
set idx = 0;
:label1;
set forn = "$v{fornecedor}".split(",")[$v{idx}];
sql_exec insert into DBA.FORNECEDORDETALHES (idclifor,peracordo) values ( $v{forn} ,$v{peracordo});
set idx = $v{idx} + 1;
if $v{idx} < $v{count};
goto label1;
end_if ;
[/code]