¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como fazer um loop em uma tabela e preencher uma tabela interna em ABAP - Exemplo prático

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

Olá a todos,

Tenho uma situação em que preciso fazer um loop em uma tabela e preencher uma tabela interna enquanto incremento o nome da variável da tabela interna ao mesmo tempo.

Por exemplo, tenho três variáveis: var1, var2 e var3. No primeiro loop, quero atribuir o valor a Var1, no segundo loop a var2 e no terceiro loop a var3 e assim por diante.

types: Begin of t_second

var1 TYPE C,

var2 TYPE C,

var3 TYPE C,

end of t_second.

data : gt_second type table of t_second,

wa_second type t_second.

LOOP at gt_first into wa_first.

MOVE: wa_first-var TO wa_second-var1, <---- no segundo loop quero mudar esta var1 para var2 e assim por diante.

APPEND wa_first TO gt_second

CLEAR wa_first

ENDLOOP.

Será possível realizar isso com ABAP?

Obrigado.

Editado por: mark mark em 1 de março de 2009 às 8:49 AM

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

4 Respuestas

0
Cargando...

Olá,

Entendi sua solicitação. Estou fornecendo uma solução dinâmica. Isso é aplicável em todos os casos, como carregar dados do Excel ou construir fieldcats dinâmicos.

Ilustração:

data: Begin of wa1,

var type char10, " (pegue o comprimento desejado)

end of wa1,

itab1 like standard table of wa1.

data: begin of wa2,

var1 type char6,

var2 type char7,

var3 type char8,

var4 type char9,

var5 type char10,

end of wa2,

itab2 like standard table of wa2.

field-symbols: <FS1> type any.

parameters: p_a RADIOBUTTON GROUP gr1 default 'X', " preencher na diagonal

p_b RADIOBUTTON GROUP gr1. " preencher no triângulo esquerdo

start-of-selection.

wa1-var = 'Balaji'. Append wa1 to itab1.

wa1-var = 'Balaji1'. Append wa1 to itab1.

wa1-var = 'Balaji12'. Append wa1 to itab1.

wa1-var = 'Balaji123'. Append wa1 to itab1.

wa1-var = 'Balaji1234'. Append wa1 to itab1.

loop at itab1 into wa1.

assign component sy-tabix of structure wa2 to <FS1>.

if sy-subrc = 0.

<fs1> = wa1-var.

append wa2 to itab2.

unassign <fs1>.

if p_b is INITIAL.

clear: wa2.

endif.

else.

exit.

endif.

endloop.

Teste isso.

Obrigado,

Balaji Peethani.

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

Utilize símbolos de campo.

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

Olá,

você pode usar a declaração case endcase.

LOOP em gt_first em wa_first.

CASE sy-tabix.

quando 1.

MOVER: wa_first-var A wa_second-var1.

quando 2.

MOVER: wa_first-var A wa_second-var2.

quando 3.

MOVER: wa_first-var A wa_second-var3.

quando outros.

  • mensagem de que não há variáveis para transferir dados

endcase.

ADICIONAR wa_first A gt_second.

LIMPAR wa_first.

endloop.

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

USE:

PERFORM: sy-tabix OF sub1 sub2 sub3.

ao aumentar o valor de sy-tabix, a sub-rotina correspondente será executada.

Exemplo:

Quando SY-tabix = 1--->SUB1

Quando 2----->SUB2

TYPES: BEGIN OF t_second,
var1 TYPE c,
var2 TYPE c,
var3 TYPE c,
END OF t_second.

DATA : gt_second TYPE TABLE OF t_second,
wa_second TYPE t_second,
wa_first(20) TYPE c,
gt_first TYPE TABLE OF t_second.

wa_first = 'TEST'.
append wa_first to gt_first.

wa_first = 'TEST'.
append wa_first to gt_first.

wa_first = 'TEST'.
append wa_first to gt_first.
LOOP AT gt_first INTO wa_first.

  PERFORM: sy-tabix OF sub1 sub2 sub3.

*   MOVE: wa_first TO wa_second-var1.  " <---- na 2ª iteração quero mudar este var1 para var2 e assim por diante.

  APPEND wa_first TO gt_second.
  CLEAR wa_first.
ENDLOOP.

*&---------------------------------------------------------------------*
*&      Form  sub1
*&---------------------------------------------------------------------*
*       texto
*----------------------------------------------------------------------*
FORM sub1.

  MOVE: wa_first TO wa_second-var1.
ENDFORM.                                                    "sub1

*&---------------------------------------------------------------------*
*&      Form  sub2
*&---------------------------------------------------------------------*
*       texto
*----------------------------------------------------------------------*
FORM sub2.
  MOVE: wa_first TO wa_second-var2.
ENDFORM.                                                    "sub2

*&---------------------------------------------------------------------*
*&      Form  sub3
*&---------------------------------------------------------------------*
*       texto
*----------------------------------------------------------------------*
FORM sub3.
  MOVE: wa_first TO wa_second-var3.
ENDFORM.                                                    "sub3

Cumprimentos,

Gurpreet

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?