KONM: richtigen Staffelbetrag ermitteln

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

KONM: richtigen Staffelbetrag ermitteln

Beitrag von TravellingEntwickler (ForumUser / 19 / 5 / 4 ) »
Hi zusammen,

ich stehe gerade etwas auf dem Schlauch, aus einer Kundenanforderung sollen Konditionsbeträge ausgegeben werden. Pro Stück (check) und bei Staffeln für die nächst kleinere Staffel.

also bei Menge 11 zur Staffel 10-19 den KBETR ziehen.

Bspw. wäre hier der 2., nur wie kriege ich den im Loop anständig ermittelt?
Staffelmenge | Betrag
0,000 0,00
10,000 926,00
20,000 826,00
Danke für input!
Andre

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: KONM: richtigen Staffelbetrag ermitteln

Beitrag von A6272 (Specialist / 240 / 8 / 36 ) »
Hallo,

"anständig" ist hier das Problem.

unanständig:
Die Staffelmenge | Betrag Tabelle sortieren nach Staffelmenge
Loop über Staffelmenge | Betrag Tabelle wenn Staffelmenge <= Menge
Ende Loop
Der letzte Eintrag war es.


Wenn die Tabelle Staffelmenge | Betrag Tabelle lang ist und/oder sehr oft darauf zugegriffen werden muss, dann könnte man sich überlegen, ob man diese nicht einmalig erweitert Staffelmenge_Von | Staffelmenge_Bis | Betrag.

Grüße
Alex

Folgende Benutzer bedankten sich beim Autor A6272 für den Beitrag:
TravellingEntwickler



Re: KONM: richtigen Staffelbetrag ermitteln

Beitrag von Somani (ForumUser / 81 / 12 / 20 ) »
Ob es viel "anständiger" ist weiss ich nicht.. Aber es geht ohne Loop Statement.

Code: Alles auswählen.

TYPES: BEGIN OF t_staffel,
         menge  TYPE vrkme,
         betrag TYPE betrg,
       END OF t_staffel,
       t_staffeln TYPE SORTED TABLE OF t_staffel WITH NON-UNIQUE KEY menge.


DATA(staffeln) = VALUE t_staffeln( ( menge = '0'  betrag = '0' )
                                   ( menge = '10' betrag = '926' )
                                   ( menge = '20' betrag = '826' ) ).

DATA(vk_menge) = '11'.


DATA(vk_betrag) = REDUCE betrg( INIT val TYPE betrg
                                FOR wa IN
                                FILTER #( staffeln WHERE menge LE CONV #( vk_menge ) )
                                NEXT val = wa-betrag ).
Schöne neue ABAP Welt :)

Grüsse

Re: KONM: richtigen Staffelbetrag ermitteln

Beitrag von Thomas R. (Expert / 760 / 79 / 35 ) »
hat sich erledigt - man sollte halt genau lesen... ;-(

Re: KONM: richtigen Staffelbetrag ermitteln

Beitrag von TravellingEntwickler (ForumUser / 19 / 5 / 4 ) »
Somani hat geschrieben:
29.05.2019 12:42
Ob es viel "anständiger" ist weiss ich nicht.. Aber es geht ohne Loop Statement.

Code: Alles auswählen.

TYPES: BEGIN OF t_staffel,
         menge  TYPE vrkme,
         betrag TYPE betrg,
       END OF t_staffel,
       t_staffeln TYPE SORTED TABLE OF t_staffel WITH NON-UNIQUE KEY menge.


DATA(staffeln) = VALUE t_staffeln( ( menge = '0'  betrag = '0' )
                                   ( menge = '10' betrag = '926' )
                                   ( menge = '20' betrag = '826' ) ).

DATA(vk_menge) = '11'.


DATA(vk_betrag) = REDUCE betrg( INIT val TYPE betrg
                                FOR wa IN
                                FILTER #( staffeln WHERE menge LE CONV #( vk_menge ) )
                                NEXT val = wa-betrag ).
Schöne neue ABAP Welt :)

Grüsse
ob das mit mehreren Hundert verschiedenen Datensätzen funktioniert? oben war's ja nur ein Beispiel ;)

Seite 1 von 1

Vergleichbare Themen

4
Antw.
8022
Views
2
Antw.
5570
Views
Bilanzdaten ermitteln Bilanzpositionen ermitteln
von Blueshape » 19.01.2006 11:31 • Verfasst in Financials
0
Antw.
2613
Views
Bilanzdaten ermitteln Bilanzpositionen ermitteln
von Blueshape » 20.01.2006 09:12 • Verfasst in ABAP® Core
3
Antw.
4812
Views
Feldbezeichnung ermitteln
von amjahid » 15.05.2008 14:55 • Verfasst in ABAP® für Anfänger
1
Antw.
4458
Views
Anwenderstatus ermitteln?
von Nordlicht » 11.04.2016 10:58 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

IF mit AND und OR
vor einer Woche von GastX 6 / 8779
Meine Inbox
vor einer Woche von Rabea1103 1 / 6573
PCL2 Cluster auslesen
vor einer Woche von DeathAndPain 2 / 7727
FUBA 'HR_INFOTYPES_OPERATION'
vor einer Woche von Bright4.5 3 / 13219

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

IF mit AND und OR
vor einer Woche von GastX 6 / 8779
Meine Inbox
vor einer Woche von Rabea1103 1 / 6573
PCL2 Cluster auslesen
vor einer Woche von DeathAndPain 2 / 7727
FUBA 'HR_INFOTYPES_OPERATION'
vor einer Woche von Bright4.5 3 / 13219