7 days increment by 1

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

7 days increment by 1

Beitrag von erzoo24 (ForumUser / 49 / 28 / 0 ) »
Hallo zusammen,

ich habe eine Tabelle im Webdynpro, in der mehrere Einträge enthalten sind und fortlaufend hinzugefügt werden.

ich würde gerne ab dem ersten Datumseintrag für jede 7 Einträge, das Feld 'Woche' um 1 addieren.
Dazu habe ich erstmal eine onEnterAction auf das Feld 'Woche' gelegt.

Mir kommt nicht in den Sinn wie ich den Code am besten gestalten soll?
Gibt es evtl. einen Funktionsbaustein der mir genau das liefern könnte ?
Oder nehme ich einfach das Startdatum und Enddatum teile es durch 7 ?

MfG
_________________________________________________________________________________
Gruß Özgür

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


Re: 7 days increment by 1

Beitrag von erzoo24 (ForumUser / 49 / 28 / 0 ) »
In dem ich das ganze berechne wie funktioniert das ganze.

Code: Alles auswählen.

 
  READ TABLE LT_subtab INTO LS_subtab INDEX 1.
  lv_start_date = LS_subtab-DATUM.

  sort LT_subtab by DATUM DESCENDING.
  READ TABLE LT_subtab into LS_subtab index 1.
  LV_END_DATE = LS_subtab-DATUM.
  lv_count = lv_end_date - LV_START_DATE.

  lv_woche = lv_count / 7.
Das Problem hierbei ist nur das jeder Wochenbeginn der Montag sein müsste und das ist hier natürlich nicht berücksichtigt.
_________________________________________________________________________________
Gruß Özgür

Re: 7 days increment by 1

Beitrag von msfox (Specialist / 305 / 50 / 63 ) »
Du willst also du Anzahl der Wochen ermitteln?

Dazu fallen mir folgende Lösungen ein.
1. Du machst ein Loop über LT_subtab. Immer wenn das Datum ein Montag ist, erhöhst du den Wochenzähler um 1. Dabei kannst du noch entscheiden, wenn deine Tabelle mit Dienstag beginnt, ob du diese Teilwoche auch mit hinzu zähltst. Gleiches, wenn die Tabelle auf einen Mittwoch endet.

2. Über den FuBa DATE_GET_WEEK bekommst du Kalenderwochen heraus. Hier könntest du für lv_start_date und lv_end_date die Kalenderwoche ermitteln und anschließen bei Werte subtrahieren. Problem: Jahreswechsel bzw. wenn dein Tabelle über mehrer Jahr geht.

Re: 7 days increment by 1

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Zur Ermittlung des Wochentags kannst Du den Funktionsbaustein DATE_COMPUTE_DAY_ENHANCED verwenden. Damit kannst Du ermitteln, welcher Wochentag Dein Startdatum ist und dann entsprechend rechnen. Das mit der Anzahl durch 7 teilen ist ja erst mal eine gute Idee, die auch über Jahresgrenzen hinweg funktioniert. Nur würde ich statt / lieber DIV verwenden, dann werden Nachkommastellen direkt weggeschnitten.

Allerdings muss ich gestehen, dass Dein Beispielcode ziemlich scheußlich aussieht, erzoo24. Eine ganze Tabelle umsortieren zu lassen, nur um die letzte Zeile zu ermitteln, ist performancetechnisch unterirdisch. Da gibt es sicherlich eine Menge Optimierungspotenzial. Darf ich fragen, mit welchem SAP-Release Du arbeitest?

Seite 1 von 1

Vergleichbare Themen

53
Antw.
9709
Views
DO... VARYING vs ASSIGN INCREMENT
von DeathAndPain » 17.04.2018 15:00 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

PDF-Anzeige unter EDGE
vor 4 Tagen von jocoder 2 / 66
Etikettendruck mit SmartForms
vor einer Woche von a-dead-trousers 2 / 67

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

PDF-Anzeige unter EDGE
vor 4 Tagen von jocoder 2 / 66
Etikettendruck mit SmartForms
vor einer Woche von a-dead-trousers 2 / 67

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Wochen von Lucyalison 1 / 129
Group Items auf einer Filterbar
vor 4 Wochen von Bright4.5 1 / 164