cancel
Showing results for 
Search instead for 
Did you mean: 

Nova Linha

Former Member
0 Kudos

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,

Accepted Solutions (1)

Accepted Solutions (1)

former_member182114
Active Contributor
0 Kudos

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ó

Answers (2)

Answers (2)

Former Member
0 Kudos

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

Former Member
0 Kudos

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

former_member182114
Active Contributor
0 Kudos

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ó