Code: Alles auswählen.
selection-screen begin of block a with frame title t1.
DATA: vormonat TYPE d.
vormonat = sy-datum.
vormonat+6(2) = '01'.
vormonat = vormonat - 1.
select-options: dlifnr for lfa1-lifnr.
select-options: dekorg for lfm1-ekorg obligatory
no intervals
memory id eko.
select-options: dbukrs for lfb1-bukrs obligatory
no intervals
memory id buk.
select-options: dktokk for lfa1-ktokk no intervals.
select-options: dspmon for s012-spmon default vormonat to sy-datum.
*ende selektionsbildschirm
selection-screen end of block a.
Hallo (Herr) Kaiser,Kaiser hat geschrieben:Hallo, ich fange gerade an mit ABAP und habe da eine kleine frage:
Ich muss in einem von bis Feld standartmäsik vom Vormonat bis zum aktuellen selektieren. Den aktuellen bekomme ich ganz einfach mit default sy-datum. Aber wie berechne ich die Vorbelegung für das 'von' Feld?
Danke SchonmalCode: Alles auswählen.
selection-screen begin of block a with frame title t1. DATA: vormonat TYPE d. vormonat = sy-datum. vormonat+6(2) = '01'. vormonat = vormonat - 1. select-options: dlifnr for lfa1-lifnr. select-options: dekorg for lfm1-ekorg obligatory no intervals memory id eko. select-options: dbukrs for lfb1-bukrs obligatory no intervals memory id buk. select-options: dktokk for lfa1-ktokk no intervals. select-options: dspmon for s012-spmon default vormonat to sy-datum. *ende selektionsbildschirm selection-screen end of block a.
Code: Alles auswählen.
TABLES:
lfa1,
lfb1,
lfm1,
s012.
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE t1.
SELECT-OPTIONS: dlifnr FOR lfa1-lifnr.
SELECT-OPTIONS: dekorg FOR lfm1-ekorg OBLIGATORY
NO INTERVALS
MEMORY ID eko.
SELECT-OPTIONS: dbukrs FOR lfb1-bukrs OBLIGATORY
NO INTERVALS
MEMORY ID buk.
SELECT-OPTIONS: dktokk FOR lfa1-ktokk NO INTERVALS.
SELECT-OPTIONS: dspmon FOR s012-spmon NO INTERVALS.
*ende selektionsbildschirm
SELECTION-SCREEN END OF BLOCK a.
INITIALIZATION.
dspmon-sign = 'I'.
dspmon-option = 'BT'.
dspmon-low = sy-datum.
dspmon-low+6(2) = '01'.
dspmon-low = dspmon-low - 1.
dspmon-high = sy-datum.
APPEND dspmon TO dspmon.
Kaiser hat geschrieben:... standartmäsik ...
Code: Alles auswählen.
initialization.
*Titel in variable t1 schreiben
t1 = 'Selektion Lieferant'.
*Berechnung der Vorbelegung in spmon
dspmon-low = sy-datum.
dspmon-low+4(2) = dspmon-low+4(2) - 1.
if dspmon-low+4(2) = '00'.
dspmon-low+4(2) = '12'.
dspmon-low(4) = dspmon-low(4) - 1.
endif.
dspmon-high = sy-datum.
append dspmon to dspmon.
sagen wir fastAnonymous hat geschrieben:Nein.eldenio hat geschrieben:müßte so eigentlich passen, oder?
Warum soll man da 100 oder mehr Tage abziehen?
Das nächste Problem hast Du schon.Kaiser hat geschrieben:Danke. Habe es jetzt hin bekommen.
bis zum nächstem Problem dann.Code: Alles auswählen.
initialization. *Titel in variable t1 schreiben t1 = 'Selektion Lieferant'. *Berechnung der Vorbelegung in spmon dspmon-low = sy-datum. dspmon-low+4(2) = dspmon-low+4(2) - 1. if dspmon-low+4(2) = '00'. dspmon-low+4(2) = '12'. dspmon-low(4) = dspmon-low(4) - 1. endif. dspmon-high = sy-datum. append dspmon to dspmon.
Hallo Kaiser,Kaiser hat geschrieben:Hallo, ich fange gerade an mit ABAP und habe da eine kleine frage:
...Danke SchonmalCode: Alles auswählen.
... select-options: dspmon for s012-spmon default vormonat to sy-datum. ...
Kaiser hat geschrieben:Danke. Habe es jetzt hin bekommen.
bis zum nächstem Problem dann.Code: Alles auswählen.
initialization. *Titel in variable t1 schreiben t1 = 'Selektion Lieferant'. *Berechnung der Vorbelegung in spmon dspmon-low = sy-datum. dspmon-low+4(2) = dspmon-low+4(2) - 1. if dspmon-low+4(2) = '00'. dspmon-low+4(2) = '12'. dspmon-low(4) = dspmon-low(4) - 1. endif. dspmon-high = sy-datum. append dspmon to dspmon.
dann muss ich mal vermuten, dass in der Tabelle S012 Monatszuordnungen in der Form YYYYMM stehen und Du 'versehentlich' den richtigen Selektionswert berechnet hast...Kaiser hat geschrieben:Hallo,
Bis jetzt funktioniert alles so wie es soll. Zumindest habe ich noch keine Fehler in den Ergebnissen gefunden.
Das das Feld kein Datumsformat ist hab ich erst gerade gesehen, sorry. Aber es läuft.
Wenn das allerdings schöner geht bin ich für Lösungen dankbar.
MfG
Code: Alles auswählen.
dspmon-low = sy-datum.
dspmon => 'IBT200502200503'.