Page 1 of 1

Status-Toggle mit Translate

PostPosted: Tue Sep 14, 2004 12:50 pm
by Alva1590
Hallo alle zusammen,

zuerst wollte ich ein Rätsel daraus machen. Aber dann dachte ich mir, dass ihr das wahrscheinlich alle schon kennt. Dennoch hier ein Tipp von mir. Vielleicht hilft er ja dem ein oder anderen.

Ganz oft hat man in Programmen Status-Flags mit unterschiedlichen Ausprägungen 'X' für an und ' ' für aus oder 'N'/'Y' oder 0/1 oder auch mehrere Ausprägungen z.B. eine Status-Reihenfolge.
Dementsprechend findet man in Programmen oft If- oder Case-Konstrukte, die dann die Flags neu besetzen. Z.B.: "If flag = 'X'. flag = space. else. flag = 'X'. endif."
Dieses Umschalten von Flags geht aber mit TRANSLATE viel einfacher: TRANSLATE flag USING 'X X'.
Ganz interessant ist auch ein Umschalten in einer bestimmten Reihenfolge, z.B.:
TRANSLATE flag USING 'ABBCCDDA'. Das entspricht folgendem Case:
Case flag.
when 'A'. flag = 'B'.
when 'B'. flag = 'C'.
when 'C'. flag = 'D'.
when 'D'. flag = 'A'.
endcase.

mfg dele

PostPosted: Tue Sep 14, 2004 1:18 pm
by Alva1590
Als Rätsel gab es dasschon mal auf abap-fans.de.
Statt
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. TRANSLATE flag USING 'X  X'.
GeSHi ©
oder
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. TRANSLATE flag USING ' XX '.
GeSHi ©

geht auch ein SPLIT.

PostPosted: Thu Sep 16, 2004 5:29 pm
by Alva1590
Hallo Gast,

wie soll das denn mit dem Split gehen ?

mfg Dele

PostPosted: Fri Sep 17, 2004 8:05 am
by Willy1492
Das geht.
Die Variante mit SPLIT wurde damals von Stefan aka black_adept im Forum von abap-fans.de veröffentlicht.
Aber falls noch jemand selbst drauf kommen will, verrate ich die Lösung lieber noch nicht.

PostPosted: Mon Sep 20, 2004 6:01 pm
by Ilja583
Hmm - ne Woche vergangen - da kann ich ja mal posten wie es noch geht.
Die Lösung ist aber rein akademisch. Nachvollziehbarer (und kürzer) ist das Translate allemal...

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. SPLIT ' X' AT flag INTO flag flag.
GeSHi ©