on 05-10-2011 2:46 PM
Olá Pessoal,
Bem estou com uma dúvida estou fazendo aqui um report só que cheguei em uma dúvida, tenho uma ALV da seguinte forma:
================================================
Cliente | Ordem de Venda | Faturamento | Valor
0001 | 000000154 | 00000183 | R$ 11
0002 | 000000154 | 00000124 | R$ 15
0003 | 000000154 | 00000145 | R$ 12
0004 | 000000154 | 00000196 | R$ 20
0005 | 000000155 | 00000200 | R$ 30
0002 | 000000155 | 00000201 | R$ 40
0003 | 000000155 | 00000300 | R$ 10
0004 | 000000155 | 00000400 | R$ 15
================================================
Cliente = vbak-kunnr.
Ordem de Venda = vbak-vbeln.
Faturamento = bkpf-awkey.
Valor = bsid-dmbtr
Como eu já dei um SORT por vbeln ele já me vem "ordenado" por vbeln no caso então eu tenho a Ordem de Venda:
000000154 e 000000155 o que eu estou em dúvida é como poderia criar uma nova somente com a soma do valor e um outro valor de calculo, exemplo:
================================================
| Cliente | Ordem de Venda | Faturamento | Valor
| 0001 | 000000154 | 00000183 | R$ 11
| 0002 | 000000154 | 00000124 | R$ 15
| 0003 | 000000154 | 00000145 | R$ 12
| 0004 | 000000154 | 00000196 | R$ 20
| xxxx | xxxxxxxxx | xxxxxxxx | R$ 58 (soma do R$valor) (linha nova)
| xxxx | xxxxxxxxx | xxxxxxxx | R$ 48 (calculo qualquer) (linha nova)
| 0005 | 000000155 | 00000183 | R$ 100
| 0004 | 000000155 | 00000124 | R$ 80
| 0002 | 000000155 | 00000145 | R$ 50
| 0003 | 000000155 | 00000196 | R$ 10
| xxxx | xxxxxxxxx | xxxxxxxx | R$ 240 (soma do R$valor) (linha nova)
| xxxx | xxxxxxxxx | xxxxxxxx | R$ 100 (calculo qualquer) (linha nova)
================================================
No caso ele seria divido cada bloco digamos assim por ordem de venda.
Grato,
Bom dia Victor,
O ALV faz isto sozinho em tempo de execução basta que você informe que está somando e agrupando por OV.
Acho que seu código da outra página estava com isto preparado, veja aqui uma "foto":
http://wiki.sdn.sap.com/wiki/display/ABAP/SUBTOTALinALV
Atenciosamente, Fernando Da Ró
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Iae pessoal... Então, foi exatamente isso que eu fiz gambiarra hahahaa...
ficou assim:
data: var_vbeln type vbak-vbeln.
sort: it_saida by vbeln awkey belnr.
loop at it_saida into wa_saida.
clear: wa_saida_aux.
wa_saida_aux-vbeln = wa_saida-vbeln.
wa_saida_aux-kunnr = wa_saida-kunnr.
wa_saida_aux-name1 = wa_saida-name1.
wa_saida_aux-rfmng = wa_saida-rfmng.
wa_saida_aux-belnr = wa_saida-belnr.
wa_saida_aux-dmbtr = wa_saida-dmbtr.
wa_saida_aux-dmbe2 = wa_saida-dmbe2.
wa_saida_aux-budat = wa_saida-budat.
wa_saida_aux-bldat = wa_saida-bldat.
wa_saida_aux-data = wa_saida-data.
wa_saida_aux-awkey = wa_saida-awkey.
wa_saida_aux-nfenum = wa_saida-nfenum.
wa_saida_aux-zterm = wa_saida-zterm.
wa_saida_aux-kwert = wa_saida-kwert.
if var_vbeln is initial.
var_vbeln = wa_saida-vbeln.
endif.
if ( var_vbeln ne wa_saida-vbeln ).
append wa_saida_aux2 to it_saida_aux.
clear: wa_saida_aux2.
endif.
wa_saida_aux2-dmbtr = wa_saida_aux2-dmbtr + wa_saida-dmbtr.
wa_saida_aux2-rfmng = wa_saida_aux2-rfmng + wa_saida-rfmng.
if ( var_vbeln ne wa_saida-vbeln ).
append wa_saida_aux3 to it_saida_aux.
clear: wa_saida_aux3.
endif.
wa_saida_aux3-dmbtr = wa_saida_aux3-kwert - wa_saida_aux2-dmbtr.
if ( var_vbeln ne wa_saida-vbeln ).
append wa_saida_aux4 to it_saida_aux.
clear: wa_saida_aux4.
endif.
wa_saida_aux4-dmbtr = wa_saida_aux4-kwmeng - wa_saida_aux2-rfmng.
append wa_saida_aux to it_saida_aux.
var_vbeln = wa_saida-vbeln.
endloop.
if not wa_saida_aux2-dmbtr is initial.
append wa_saida_aux2 to it_saida_aux.
clear: wa_saida_aux2, var_vbeln.
endif.
Edited by: victorhsn on May 10, 2011 9:29 PM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Bom dia Victor,
Fernando, pelo que entendi a dúvida dele não é fazer o subtotal, mas sim inserir outra linha abaixo dele com um cálculo de acordo com a necessidade. Se esse cálculo for outra soma, você pode incluir mais um registro na tabela sort com a coluna desejada, senão você pode fazer uma gambiarra inserindo uma nova linha a cada ordem com valor que você precisa... Para ficar mais parecida coloca ela na cor amarela.
Lembrando que é uma forma alternativa(gambiarra)... rsrs
Att,
Eduardo Da Rós
Consultor SAP ABAP
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Bom dia Eduardo,
My bad, entendi metade do problema.
Outra opção seria colocar esta linha de cálculo, em uma nova coluna, daí você processa linha a linha gerando o valor calculado, e pode somar ao final. Não sei se atende o que você precisa, pois tem questões de arredondamento que podem fazer falhar.
Atenciosamente, Fernando Da Ró
User | Count |
---|---|
14 | |
4 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.