¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo utilizar la declaración collect para obtener el monto total pagado a diferentes pagos de proveedores

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

¡Hola a todos!

¿Cómo utilizar la declaración "collect" para obtener el monto total pagado a diferentes pagos de proveedores?

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.

quiero el monto total pagado según el proveedor que estoy  usando de esta manera pero no lo estoy obteniendo


  loop at itab into wa.

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

modify itab from wa transporting dmbtr.

No puedo lograrlo

¿Alguien puede ayudarme con esto si es posible con un ejemplo?

Gracias de antemano,

Saludos,

venu.

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

4 Respuestas

0
Cargando...

Hola Venu,

tipos: BEGIN OF ty,

NOMBRE(20),

VENTAS TIPO I,

END OF ty.

data : itab tipo tabla estándar de ty,

itab1 tipo tabla estándar de ty,

wa tipo ty,

wa1 tipo ty.

wa-NOMBRE = 'Pato'. wa-VENTAS = 10.

añadir wa a itab.

wa-NOMBRE = 'Tigre'. wa-VENTAS = 20.

añadir wa a itab.

wa-NOMBRE = 'Pato'. wa-VENTAS = 30.

añadir wa a itab.

loop en itab en wa.

wa1 = wa.

recoger wa1 en itab1.

endloop.

loop en itab1 en wa1.

escribir : / wa1-nombre , wa1-ventas.

endloop.

COLLECT se utiliza para crear conjuntos de datos únicos o comprimidos. Los campos clave son los campos clave predeterminados de la tabla interna itab.

Si solo utilizas COLLECT para llenar una tabla interna, COLLECT se asegura de que la tabla interna no contenga dos entradas con los mismos campos clave predeterminados.

<b>Si, además de sus campos clave predeterminados, la tabla interna contiene campos numéricos (ver también tipos de números ABAP/4), el contenido de estos campos numéricos se suma si la tabla interna ya contiene una entrada con los mismos campos clave.</b>

Si la clave predeterminada de una tabla interna procesada con COLLECT está en blanco, todos los valores se suman en la primera línea de la tabla.

En el programa que mencionaste ayer, no puedo entender la lógica ya que muchas líneas están comentadas.

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

Hola,

Creo que necesitas considerar el indicador de débito/crédito, Tipo de Documento - Campos SHKZG, BLART de la tabla antes de realizar un COLECTAR.

Espero que esto te ayude.

Saludos cordiales, Murugesh AS

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

Esto recopilará los valores numéricos por proveedor.

* Declarar una tabla interna con solo el número de proveedor
* y los valores.
data : begin of tot occurs 0,
        lifnr type bsak-lifnr,
        tot_vend  type i,
        vend type i.
data :end of tot.
* Recorrer tu tabla interna y mover esos campos a la
* tabla interna de totales y recopilar.
  loop at wa.
    move-corresponding wa to tot.
    collect tot.
  endloop.

Saludos,

Rich Heilman

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

Hola Venu,

tipos: BEGIN OF ty,

NOMBRE(20),

TIPO DE VENTAS I,

END OF ty.

data : itab tipo tabla estándar de ty,

itab1 tipo tabla estándar de ty,

wa tipo ty,

wa1 tipo ty.

wa-NOMBRE = 'Pato'. wa-VENTAS = 10.

añadir wa a itab.

wa-NOMBRE = 'Tigre'. wa-VENTAS = 20.

añadir wa a itab.

wa-NOMBRE = 'Pato'. wa-VENTAS = 30.

añadir wa a itab.

loop en itab en wa.

wa1 = wa.

recolectar wa1 en itab1.

endloop.

loop en itab1 en wa1.

escribir : / wa1-nombre , wa1-ventas.

endloop.

COLECTAR se utiliza para crear conjuntos de datos únicos o comprimidos. Los campos clave son los campos clave predeterminados de la tabla interna itab.

Si solo utilizas COLECTAR para llenar una tabla interna, COLECTAR se asegura de que la tabla interna no contenga dos entradas con los mismos campos clave predeterminados.

<b>Si, además de sus campos clave predeterminados, la tabla interna contiene campos numéricos (ver también tipos de números ABAP/4), el contenido de estos campos numéricos se suma si la tabla interna ya contiene una entrada con los mismos campos clave.</b>

Si la clave predeterminada de una tabla interna procesada con COLECTAR está en blanco, todos los valores se suman en la primera línea de la tabla.

En el programa que mencionaste ayer, no puedo entender la lógica ya que muchas líneas están 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?