Avalados por :

Como usar a declaração collect para obter o valor total pago em diferentes pagamentos de fornecedores

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 9 Vistas
0
Cargando...

Olá a todos!

Como usar a declaração "collect" para obter o valor total pago em diferentes pagamentos de fornecedores?

data : begin of wa occurs 0,
        bukrs type bsak-bukrs,
        lifnr type bsak-lifnr,
        land1 type lfa1-land1,
        name1 like lfa1-name1,
        dmbtr like bsak-dmbtr,
        count type i value 0,
        tot_vend  type i,
        vend type i.
data :end of wa.

data : itab like table of wa.

  select distinct bukrs lifnr waers from bsak into
corresponding fields of wa
          where bukrs in s_bukrs
          and   lifnr in s_lifnr
          and   bschl in s_bschl.

quero o valor total pago conforme o fornecedor que estou  usando desta forma mas não estou conseguindo


  loop at itab into wa.

wa-dmbtr = bsak-dmbtr.
collect wa-dmbtr into itab.

modify itab from wa transporting dmbtr.

Não estou conseguindo

Alguém pode me ajudar com isso se possível com um exemplo?

Obrigado antecipadamente,

Saudações,

venu.

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá Venu,

tipos: BEGIN OF ty,

NOME(20),

VENDAS TIPO I,

END OF ty.

data : itab tipo tabela padrão de ty,

itab1 tipo tabela padrão de ty,

wa tipo ty,

wa1 tipo ty.

wa-NOME = 'Pato'. wa-VENDAS = 10.

adicionar wa a itab.

wa-NOME = 'Tigre'. wa-VENDAS = 20.

adicionar wa a itab.

wa-NOME = 'Pato'. wa-VENDAS = 30.

adicionar wa a itab.

loop em itab em wa.

wa1 = wa.

recolher wa1 em itab1.

endloop.

loop em itab1 em wa1.

escrever : / wa1-nome , wa1-vendas.

endloop.

COLLECT é usado para criar conjuntos de dados únicos ou comprimidos. Os campos-chave são os campos-chave padrão da tabela interna itab.

Se você usar COLLECT apenas para preencher uma tabela interna, o COLLECT garante que a tabela interna não contenha duas entradas com os mesmos campos-chave padrão.

<b>Além de seus campos-chave padrão, se a tabela interna contiver campos numéricos (consulte também tipos de números ABAP/4), o conteúdo desses campos numéricos é somado se a tabela interna já tiver uma entrada com os mesmos campos-chave.</b>

Se a chave padrão de uma tabela interna processada com COLLECT estiver em branco, todos os valores são somados na primeira linha da tabela.

No programa que você mencionou ontem, não consigo entender a lógica, pois muitas linhas estão comentadas.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá,

Acredito que você precisa considerar o indicador de débito/crédito, Tipo de Documento - Campos SHKZG, BLART da tabela antes de realizar um COLETAR.

Espero que isso ajude.

Atenciosamente, Murugesh AS

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Isso irá recolher os valores numéricos por fornecedor.

* Declarar uma tabela interna apenas com o número do fornecedor
* e os valores.
data : begin of tot occurs 0,
        lifnr type bsak-lifnr,
        tot_vend  type i,
        vend type i.
data :end of tot.
* Percorrer sua tabela interna e mover esses campos para a
* tabela interna de totais e recolher.
  loop at wa.
    move-corresponding wa to tot.
    collect tot.
  endloop.

Saudações,

Rich Heilman

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Venu,

tipos: BEGIN OF ty,

NOME(20),

TIPO DE VENDAS I,

END OF ty.

data : itab tipo tabela padrão de ty,

itab1 tipo tabela padrão de ty,

wa tipo ty,

wa1 tipo ty.

wa-NOME = 'Pato'. wa-VENDAS = 10.

adicionar wa a itab.

wa-NOME = 'Tigre'. wa-VENDAS = 20.

adicionar wa a itab.

wa-NOME = 'Pato'. wa-VENDAS = 30.

adicionar wa a itab.

loop em itab em wa.

wa1 = wa.

coletar wa1 em itab1.

endloop.

loop em itab1 em wa1.

escrever : / wa1-nome , wa1-vendas.

endloop.

COLETAR é usado para criar conjuntos de dados únicos ou comprimidos. Os campos-chave são os campos-chave padrão da tabela interna itab.

Se você usar COLETAR apenas para preencher uma tabela interna, COLETAR garante que a tabela interna não contenha duas entradas com os mesmos campos-chave padrão.

<b>Além de seus campos-chave padrão, se a tabela interna contiver campos numéricos (consulte também tipos de números ABAP/4), o conteúdo desses campos numéricos será somado se a tabela interna já contiver uma entrada com os mesmos campos-chave.</b>

Se a chave padrão de uma tabela interna processada com COLETAR estiver em branco, todos os valores serão somados na primeira linha da tabela.

No programa que você mencionou ontem, não consigo entender a lógica, pois muitas linhas estão comentadas.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?