Olá galera, estou com um problema aqui, porque tenho um for each, que busca os valores de alguns salários em um banco de dados, e eu preciso mostra o maior salário e o menor salário, bom para mim definir qual foi o maior salário foi mais simples, eu apenas utilizei esse código: IF (d-sal-maximo < d-sal) THEN d-sal-maximo = d-sal. Mas para o meu salário minimo eu não posso usar um código como esse: IF (d-sal-minimo > d-sal) THEN d-sal-minimo = d-sal. Porque já que o meu d-sal-minimo tem valor nulo, nenhum valor será meno que ele, então no final ficaria zero o resultado, e também não posso dizer para ele, por exemplo que: ASSIGN d-sal-minimo = d-sal. Porque como estou dentro de um for each ele iria mudar toda hora e o valor do salário minimo seria o ultimo valor mostrado. Obrigado.
Bom dia, Não sou expert em programação, fiz um teste veja se funciona pra você. Na definição das variaveis d-sal-maximo e d-sal -minimo eu inicializei com valores conforme exemplo abaixo. Código: def var d-sal-maximo as decimal format ">>>,>>>,>>9.99" initial 0. def var d-sal-minimo as decimal format ">>>,>>>,>>9.99" initial 999999999.99. def temp-table sal no-undo field d-sal as decimal format ">>>,>>>,>>9.99". create sal. assign sal.d-sal = 4552.30. create sal. assign sal.d-sal = 3025.50. create sal. assign sal.d-sal = 5064.69. create sal. assign sal.d-sal = 1200.21. create sal. assign sal.d-sal = 2370.90. for each sal: disp sal. end. for each sal: IF (d-sal-maximo < sal.d-sal) THEN d-sal-maximo = d-sal. IF (d-sal-minimo > sal.d-sal) THEN d-sal-minimo = d-sal. end. disp d-sal-maximo d-sal-minimo.
Elmo obrigado pela resposta, mas eu acabei fazendo assim IF FIRST-OF (cargo.cdn_cargo_basic) THEN DO: ASSIGN d-sal-minimo = funcionario.val_salario_atual. END. IF (d-sal-minimo > funcionario.val_salario_atual) THEN d-sal-minimo = d-sal.
A forma que eu usaria seria a seguinte: Código: for each funcionario no-lock: accumulate funcionario.val_salario_atual (min max). end. disp accum min funcionario.val_salario_atual column-label "Menor" accum max funcionario.val_salario_atual column-label "Maior". Outras possibilidades, por exemplo, maior e menor salário por por cargo: Código: for each funcionario no-lock break by funcionario.cdn_cargo_basic: accumulate funcionario.val_salario_atual (min max break by funcionario.cdn_cargo_basic). if last-of(funcionario.cdn_cargo_basic) then disp funcionario.cdn_cargo_basic accum min by funcionario.cdn_cargo_basic funcionario.val_salario_atual column-label "Menor" accum max by funcionario.cdn_cargo_basic funcionario.val_salario_atual column-label "Maior". end.
PHP: FOR EACH Tabela BREAK BY campoValorSalario: IF FIRST(campoValorSalario) THEN ASSIGN menorSalario = campoValorSalario. IF LAST(campoValorSalario) THEN ASSIGN maiorSalario = campoValorSalario. END.