Zeitscheiben miteinander mischen

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

Zeitscheiben miteinander mischen

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Kennt jemand einen Funktionsbaustein o.a. mit dem man zwei Tabellen mit Zeitscheiben gegeneinander prüfen und zusammensetzen kann?
Ich habe zwei interne Tabellen, deren Zeilen Zeitscheiben mit von-Datum und bis-Datum haben. Jetzt kann es sein, dass bspw. eine Zeitscheibe in Tabelle1 durch eine Zeitscheibe in Tabelle2 unterbrochen wird (und umgekehrt). Die sich daraus ergebenden neuen Zeitscheiben sollen in einer anderen Tabelle zusammengefasst werden.
Ich muss zugeben, dass ich mich schwer tue, dass Ganze quasi "zu Fuß" zu programmieren. Gibt es eine einfache Lösung?

Code: Alles auswählen.

Beispiel:
Tabelle1
von-Datum - bis-Datum
01.01.2010 - 31.12.2010
01.01.2011 - 30.04.2011
01.05.2011 - 31.12.9999

Tabelle2
01.01.2010 - 31.05.2010
01.06.2010 - 31.12.2010
01.01.2011 - 30.06.2011
01.07.2011 - 31.12.9999

Ergebnis:
01.01.2010 - 31.05.2010
01.06.2010 - 31.12.2010
01.01.2011 - 30.04.2011
01.05.2011 - 30.06.2011
01.07.2011 - 31.12.9999
Ich hoffe, ich habe das Problem einigermaßen verständlich beschrieben. Danke für Eure Tipps und Eure Hilfe.

Gruß KBIT

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


Re: Zeitscheiben miteinander mischen

Beitrag von Ratazong (Specialist / 144 / 1 / 14 ) »
Habs mal runter getippt.

Code: Alles auswählen.

REPORT  zzawtest29.

TYPES: BEGIN OF ts_dates,
         datvn TYPE datvon,
         datbi TYPE datbi,
       END OF ts_dates.

DATA: gt_date1 TYPE TABLE OF ts_dates,
      gt_date2 TYPE TABLE OF ts_dates,
      gt_dates TYPE TABLE OF ts_dates,
      gs_dates TYPE ts_dates.

DATA: gv_start TYPE datvon.

INITIALIZATION.
* Ausgangstabellen füllen
  APPEND '2010010120101231' TO gt_date1.
  APPEND '2011010120110430' TO gt_date1.
  APPEND '2011050199991231' TO gt_date1.

  APPEND '2010010120100531' TO gt_date2.
  APPEND '2010060120101231' TO gt_date2.
  APPEND '2011010120110630' TO gt_date2.
  APPEND '2011070199991231' TO gt_date2.

START-OF-SELECTION.

**** Lösung beginnt hier
  APPEND LINES OF gt_date2 TO gt_date1.
  LOOP AT gt_date1 INTO gs_dates.
    IF gs_dates-datvn < gv_start
      OR gv_start IS INITIAL.
      gv_start = gs_dates-datvn.
    ENDIF.
    CLEAR gs_dates-datvn.
    COLLECT gs_dates INTO gt_dates.
  ENDLOOP.
  SORT gt_dates BY datbi.
  LOOP AT gt_dates INTO gs_dates.
    gs_dates-datvn = gv_start.
    MODIFY gt_dates FROM gs_dates.
    gv_start = gs_dates-datbi + 1.
  ENDLOOP.
Gruß

Rata

Edith sagt: Natürlich nur unter der Annahme, keine Lücken zwischen den Intervallen.
Zuletzt geändert von Ratazong am 31.03.2011 15:21, insgesamt 1-mal geändert.

Folgende Benutzer bedankten sich beim Autor Ratazong für den Beitrag:
kbit100


Re: Zeitscheiben miteinander mischen

Beitrag von ChrisB (Specialist / 406 / 8 / 20 ) »
Hallo KBIT,

das geht eigentlich sehr einfach... alle Zeitscheiben in eine interne Tabelle übernehmen und dem Funktionsbaustein RHXPROVIDE_PERIODS übergeben. Die Ergebnistabelle sollte so aussehen, wie Du gewünscht hast.

Gruß
Chris

Folgende Benutzer bedankten sich beim Autor ChrisB für den Beitrag:
kbit100


Re: Zeitscheiben miteinander mischen

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Heißen Dank, Ihr Beiden!

Seite 1 von 1

Vergleichbare Themen

8
Antw.
2818
Views
Zeichen mischen ;)
von ralf.wenzel » 21.08.2013 11:32 • Verfasst in ABAP® Core
1
Antw.
890
Views
Denkfehler?? Zwei Tabellen miteinander vermischen
von Trulchen » 13.04.2015 16:23 • Verfasst in ABAP® für Anfänger
2
Antw.
1728
Views
2 Spoolaufträge mischen und Barcode dazu
von hegsi » 20.10.2007 18:29 • Verfasst in ABAP® Core
5
Antw.
2266
Views
Möglichkeit Zeilen einer Tabelle zu mischen
von yanso » 09.03.2016 11:23 • Verfasst in ABAP® für Anfänger
3
Antw.
1336
Views

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor einer Stunde von ralf.wenzel 21 / 11225
Dialog-Container mit Toolbar/Status
vor 22 Stunden von black_adept gelöst 27 / 4327
IT0024 Qualifikationen CP-ID
Gestern von ArjenR 1 / 219

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

Trennen Strasse und Hausnummer
vor einer Stunde von ralf.wenzel 21 / 11225
Dialog-Container mit Toolbar/Status
vor 22 Stunden von black_adept gelöst 27 / 4327
IT0024 Qualifikationen CP-ID
Gestern von ArjenR 1 / 219

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
Gestern von ArjenR 1 / 219
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 3150
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9743