Select-Options Datum in Einzeldatümer zerlegen?

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

Select-Options Datum in Einzeldatümer zerlegen?

Beitrag von ST22 (Specialist / 279 / 43 / 41 ) »
Moin,

Frage an die Experten: Kennt ihr einen Fuba, der ein Datumsintervall aus einer Select-Option in einzelne Tage umwandelt?

z.B. 01.01.2008 - 15.01.2008 aber nicht den 11.01.2008 -->

01.01.2008
02.01.2008
.
.
10.01.2008
12.01.2008
13.01.2008
14.01.2008
15.01.2008

Würde mir weiterhelfen, wenn jemand eine Idee hat.

Danke

ST22

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


Select-Options Datum in Einzeldatümer zerlegen?

Beitrag von ST22 (Specialist / 279 / 43 / 41 ) »
Hallo,

hab mir was gebastelt wobei s_date bzw. pr_date die range ist und pt_date eine interne Tabelle nur mit Datumsfeld.

FORM convert_to_single_dates USING pr_date LIKE s_date[]
CHANGING pt_date LIKE gt_date.
DATA:
lr_date LIKE LINE OF pr_date.

CLEAR gt_date.

* Alle Einzeldatümer auflösen (include)
LOOP AT pr_date INTO lr_date WHERE sign = 'I' AND option = 'EQ'.
APPEND lr_date-low TO pt_date.
ENDLOOP.

* Alle Includeintervalle auflösen
LOOP AT pr_date INTO lr_date WHERE sign = 'I' AND option = 'BT'.
APPEND lr_date-low TO pt_date.
WHILE lr_date-low < lr_date-high.
ADD 1 TO lr_date-low.
APPEND lr_date-low TO pt_date.
ENDWHILE.
ENDLOOP.

* sortieren und verdichten
SORT pt_date.
DELETE ADJACENT DUPLICATES FROM pt_date.

* Alle Einzeldatümer auflösen (exclude) und entfernen aus
* Einzeldatumstabelle
LOOP AT pr_date INTO lr_date WHERE sign = 'E' AND option = 'EQ'.
DELETE pt_date WHERE table_line = lr_date-low.
ENDLOOP.

* Alle Excludeintervalle auflösen und entfernen aus Einzeldatumstabelle
LOOP AT pr_date INTO lr_date WHERE sign = 'E' AND option = 'BT'.
DELETE pt_date WHERE table_line = lr_date-low.
WHILE lr_date-low < lr_date-high.
ADD 1 TO lr_date-low.
DELETE pt_date WHERE table_line = lr_date-low.
ENDWHILE.
ENDLOOP.

ENDFORM. " convert_to_single_dates

Beitrag von edwin (Specialist / 302 / 10 / 68 ) »
Hallo,
habe auch noch was:
allerdings nur ein Write

so_dat ist select-options so_dat for sy-datum.

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*&      Form  make_date_Tab
*&---------------------------------------------------------------------*
form make_date_Tab .
  data r_date        type sydatum.
  data from_date     type sydatum.
  data to_date       type sydatum.
* Vorsichtshalber Unter / Obergrenze
  constants maxdate  type sydatum value '20991231'.
  constants mindate  type sydatum value '19000101'.

* Kein Intervall/Einzelwerte eingegeben
  if so_dat[] is initial. exit. endif.
* Ausrichten ! und Unter/Obergrenze setzen
  from_date = maxdate.
  to_date   = mindate.
* Ermitteln kleinstes / größtes Datum
  loop at so_dat.
    if so_dat-low cn ' 0'.
      if from_date > so_dat-low. from_date = so_dat-low.  endif.
      if to_date   < so_dat-low. to_date   = so_dat-low.  endif.
    endif.
    if so_dat-high cn ' 0'.
       if from_date > so_dat-high.from_date = so_dat-high.endif.
       if to_date   < so_dat-high.to_date   = so_dat-high.endif.
    endif.
  endloop.

* Sicherung
  if from_date < mindate.    from_date = mindate.   endif.
  if to_date   > maxdate.    to_date   = maxdate.   endif.
* Anfangsdatum
  r_date = from_date.
* Laufen lassen
  do.
     if r_Date in so_Dat.
        write : / r_Date.
     endif.
     r_date = r_date + 1.
* Auf Obergrenze setzen
     if r_date > to_date.    exit.     endif.
  enddo.

endform.                    " make_date_Tab
Gruss Edwin

Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
Hallo ST22,

nur mal ne Frage zum Verständis:

Wozu brauchst du das in dieser Art? Bei Selektionen kannst du doch mit IN arbeiten und bei IF-Abrfragen auch.

Thomas

Select-Options Datum in Einzeldatümer zerlegen?

Beitrag von ST22 (Specialist / 279 / 43 / 41 ) »
Hallo TWP,

so ganz grob....
selektiert werden Rückmeldungen (Serienfertigung / Fertigungsauftrag) über einen Zeitraum, die Selektion der Stücklisten (zur Auswertung von Vorgangsdaten) muss aber taggenau erfolgen (wegen Änderungshistorie).

Das war jetzt in diesem Fall über das Konstrukt leichter zu lösen, als an dem schon bestehenden Programm größere Änderunegen einzubauen.

Ansonsten hast du natürlich recht, ich liebe Select-Options :lol:

Gruß

ST22

Seite 1 von 1

Vergleichbare Themen

0
Antw.
2272
Views
select-options depend on select-options.
von dragospirnut1 » 19.07.2017 09:54 • Verfasst in ABAP® Core
4
Antw.
18652
Views
Select nach Parameter & Select-Options
von doeme » 10.07.2012 16:37 • Verfasst in ABAP® für Anfänger
10
Antw.
6668
Views
2 Select-Options zu einem für Select zusammenfügen
von manuk » 23.03.2005 11:02 • Verfasst in ABAP® Core
2
Antw.
3802
Views
SELECT - Options & SELECT Abfrage
von Mavrix » 14.05.2007 08:41 • Verfasst in ABAP® für Anfänger
3
Antw.
1565
Views
SELECT * Where Datum = select-option-low
von abapfreshman » 17.09.2021 00:24 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 613
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2241
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8832