Loop Tabelle jede zweite Runde!

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV

Loop Tabelle jede zweite Runde!

Postby Michelle4144 » Tue Mar 15, 2016 1:22 pm

Hallo zusammen,

ich versuche mal zu erklären was ich möchte.

LOOP At GT_Tabelle into GS-Tabelle.

* Beim ersten loop Durchlauf soll nur H_Tabelle-Feld1 und H_Tabelle-Feld2 befüllt werden.
H_Tabelle-Feld1 = GS-tabelle-Feld1
H_Tabelle-Feld2 = GS-tabelle-Feld2

* Beim zweiten loop Durchlauf soll nur H_Tabelle-Feld3 und H_Tabelle-Feld4 befüllt werden.
H_Tabelle-Feld3 = GS-tabelle-Feld1
H_Tabelle-Feld4 = GS-tabelle-Feld2

* Beim dritten Durchlauf wieder nur H_Tabelle-Feld1 und H_Tabelle-Feld2 usw. immer abwechseln.
ENDLOOP.

Wie könnte ich das lösen.

Vielen Dank
Michelle4144
...
...
 
Posts: 160
Joined: Fri Mar 03, 2006 4:04 pm

Re: Loop Tabelle jede zweite Runde!

Postby Tron » Tue Mar 15, 2016 3:55 pm

Moin.
z.B. so :
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. *&---------------------------------------------------------------------*
  2. *& Report  ZTEST_FLIP_FLOP
  3. *&
  4. *&---------------------------------------------------------------------*
  5. *&
  6. *&
  7. *&---------------------------------------------------------------------*
  8. REPORT ztest_flip_flop.
  9.  
  10.       BEGIN OF itab,
  11.       a TYPE i,
  12.       b TYPE i,
  13.       END OF itab.
  14.  
  15. DATA t1 TYPE TABLE OF itab.
  16. DATA t2 TYPE TABLE OF itab.
  17. DATA ts TYPE itab.
  18.  
  19. DATA x TYPE i.
  20.  
  21. DO 10 TIMES.
  22.  
  23.   x = sy-index MOD 2.
  24.  
  25.   ts-a = sy-index.
  26.   ts-b = x.
  27.  
  28.   IF x = 1.
  29.     APPEND ts TO t1.
  30.   ELSE.
  31.     APPEND ts TO t2.
  32.   ENDIF.
  33.  
  34.  
GeSHi ©


lg Jens
Tron
.....
.....
 
Posts: 1112
Joined: Sat Aug 04, 2007 10:21 pm

Re: Loop Tabelle jede zweite Runde!

Postby Imke5167 » Tue Mar 15, 2016 4:02 pm

"Modulo" heißt das Zauberwort. Es handelt sich dabei um eine Rechenoperation, die dir einen Restwert zurückliefert. Wenn du den Zeilenindex Modulo 2 rechnest, dann fragst du im Prinzip ab, ob es sich um eine gerade oder ungerade Zahl handelt und so bekommst du entweder 1 oder 0 als Rest heraus.

Beispiel:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.       G_INDEX type I,
  2.       G_REST   type I.
  3.  
  4. loop at GT_DATA into GS_DATA.
  5.  G_INDEX = SY-TABIX.
  6.  G_REST = G_INDEX mod 2.
  7.  if G_REST = 1.
  8.    write:/ 'ungerade'.
  9.  else.  "G_REST = 0
  10.    write:/ 'gerade'.
  11.  
GeSHi ©


Dein Coding müsste dann etwa so aussehen:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. LOOP At GT_Tabelle into GS_Tabelle.
  2.  G_INDEX = SY-TABIX.
  3.  G_REST = G_INDEX mod 2.
  4.  if G_REST = 1.
  5.   H_Tabelle-Feld1 = GS-tabelle-Feld1
  6.   H_Tabelle-Feld2 = GS-tabelle-Feld2
  7.  else.  "G_REST = 0
  8.   H_Tabelle-Feld3 = GS-tabelle-Feld1
  9.   H_Tabelle-Feld4 = GS-tabelle-Feld2
  10.  
GeSHi ©


MfG
waro
Imke5167
.
.
 
Posts: 1
Joined: Tue Mar 15, 2016 4:02 pm


Return to ABAP® Core

Who is online

Users browsing this forum: No registered users and 3 guests

cron