Code lesen

Getting started ... Alles für einen gelungenen Start.
5 Beiträge Seite 1 von 1
5 Beiträge Seite 1 von 1

Code lesen

Beitrag von HH_ABAP (Specialist / 119 / 39 / 1 ) » 19. Sep 2018 09:39

Hallo,

kann jemand mir sagen, was passiert hier:

Code: Alles auswählen.

shift ls_boeking-bedrag right deleting trailing space.
ls_boeking-bedrag+27(1) = '.'.
shift ls_boeking-bedrag left deleting leading space.
Vielen Dank & Grüße


Re: Code lesen

Beitrag von ewx (Top Expert / 4002 / 166 / 378 ) » 19. Sep 2018 09:55

Das kommt darauf an, wie BEDRAG definiert ist und was drin steht.
Das einfachste ist es, wenn du es dir im Debugger anschaust!

Re: Code lesen

Beitrag von a-dead-trousers (Top Expert / 3241 / 82 / 818 ) » 19. Sep 2018 12:28

Ich würde mal darauf tippen, dass hier aus einer Zahl in Form eines Textes, eine Gleitpunktzahl erzeugt wird.
Vermutlich ist das Feld größer als 28 Zeichen und der Text hat derzeit entweder ein Leerzeichen oder einen Beistrich als Trennzeichen. Alles andere würde zu einem Fehler führen.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Re: Code lesen

Beitrag von DeathAndPain (Top Expert / 1070 / 123 / 234 ) » 19. Sep 2018 12:59

ewx hat geschrieben:Das kommt darauf an, wie BEDRAG definiert ist und was drin steht.
Es wird ein dreißigstelliges Characterfeld sein, in dem, wie adt schon sagte, eine Zahl mit zwei Nachkommastellen gespeichert ist. Der Code ist eine IMHO recht unbeholfene Methode, aus dem Komma einen Punkt zu machen, damit der Wert anschließend einer numerisch definierten Variable zugewiesen werden kann.

Wesentlich eleganter wäre gewesen, einfach zu schreiben:

Code: Alles auswählen.

OVERLAY ls_boeking-bedrag with '..............................' only ','.
Oder einen Replace.

Danach eventuell noch den shift ls_boeking-bedrag left deleting leading space., wenn die Möglichkeit besteht, dass die Zahl nicht linksbündig im Characterfeld steht.

Gibt da garantiert auch Funktionsbausteine für, aber die zu rufen ist weder einfacher noch schneller.

Re: Code lesen

Beitrag von GastX (Specialist / 269 / 4 / 11 ) » 24. Mai 2019 12:14

Wenn es darum geht, alle ggfs. vorhandenen Punkte zu ersetzen, bietet sich Translate an.

Code: Alles auswählen.

TRANSLATE bedrag USING ',.'.
Der Code mit dem Shift stellt natürlich sicher, dass nur an genau einer Stelle, und zwar der dritten von rechts, ein Zeichen geändert wird. Allerdings unabhängig davon, was sich im Feld befindet.

Seite 1 von 1


Aktuelle Forenbeiträge

Knobelaufgabe zum Wochenende / Wochenbeginn
vor 12 Stunden von a-dead-trousers 6 / 174
HTTP Request
vor 12 Stunden von a-dead-trousers 2 / 18
BSP-Seiten als Dienst - Fehler beim Aufrufen
vor 20 Stunden von Xilukarim 1 / 27
MATNR Feldlängenänderung von 18 auf 40
vor 23 Stunden von SAP_ENTWICKLER 4 / 149
CCS Bonusabrechnung
vor 23 Stunden von SAP_ENTWICKLER 1 / 18

Aktuelle Forenbeiträge

Knobelaufgabe zum Wochenende / Wochenbeginn
vor 12 Stunden von a-dead-trousers 6 / 174
HTTP Request
vor 12 Stunden von a-dead-trousers 2 / 18
BSP-Seiten als Dienst - Fehler beim Aufrufen
vor 20 Stunden von Xilukarim 1 / 27
MATNR Feldlängenänderung von 18 auf 40
vor 23 Stunden von SAP_ENTWICKLER 4 / 149
CCS Bonusabrechnung
vor 23 Stunden von SAP_ENTWICKLER 1 / 18

Unbeantwortete Forenbeiträge

BSP-Seiten als Dienst - Fehler beim Aufrufen
vor 20 Stunden von Xilukarim 1 / 27
CCS Bonusabrechnung
vor 23 Stunden von SAP_ENTWICKLER 1 / 18
Verfügbarkeitsprüfung
Gestern von NoraP 1 / 18
Verwaltung
Gestern von NoraP 1 / 15
At Selection-Screen
Gestern von L0w-RiDer 1 / 42