Sunteți pe pagina 1din 3

*&---------------------------------------------------------------------*

*& Report ZSJB_DATE_FUN


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZSJB_DATE_FUN.

***call screen 3500.


DATA: NEWDATE LIKE SY-DATUM.

SELECTION-SCREEN BEGIN OF BLOCK INFORMA WITH FRAME.


*election-screen skip 1.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(60) TEXT-Z12. " input date
*selection-screen position 30.
*parameters ydate like sy-datum default sy-datum obligatory.
SELECTION-SCREEN END OF LINE.
*selection-screen skip 1.
SELECTION-SCREEN END OF BLOCK INFORMA.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK SELDATE WITH FRAME TITLE TEXT-Z01.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(23) TEXT-Z10. " input date
SELECTION-SCREEN POSITION 30.
PARAMETERS YDATE LIKE SY-DATUM DEFAULT SY-DATUM OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK SELDATE.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK SELDAYS WITH FRAME TITLE TEXT-Z03.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 4(23) TEXT-Z04. " number of days
SELECTION-SCREEN POSITION 30.
PARAMETERS YDAYS LIKE SY-PRCOP DEFAULT 0.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK SELDAYS.
SELECTION-SCREEN BEGIN OF BLOCK FUNCTION WITH FRAME TITLE TEXT-Z05.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 9(23) TEXT-Z06. "add days
SELECTION-SCREEN POSITION 35.
PARAMETERS: FUN1 RADIOBUTTON GROUP NO2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 9(23) TEXT-Z07. "Subtract days
SELECTION-SCREEN POSITION 35.
PARAMETERS: FUN2 RADIOBUTTON GROUP NO2 DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK FUNCTION.
IF YDAYS = 0
AND FUN2 = 'X'.
IF YDATE < SY-DATUM.
YDAYS = SY-DATUM - YDATE.
NEWDATE = SY-DATUM - YDAYS.
WRITE: / 'Todays Date is ', SY-DATUM.
SKIP 1.
WRITE: / 'Your Date is ', YDATE.
SKIP 1.
WRITE: / 'Number of days subtracted ', YDAYS.
SKIP 1.
WRITE: / 'Your calculated date ', NEWDATE.
ELSE.
IF YDATE >= SY-DATUM.
YDAYS = YDATE - SY-DATUM.
NEWDATE = SY-DATUM + YDAYS.
WRITE: / 'Todays Date is ', SY-DATUM.
SKIP 1.
WRITE: / 'Your Date is ', YDATE.
SKIP 1.
WRITE: / 'Number of days subtracted ', YDAYS.
SKIP 1.
WRITE: / 'Your calculated date ', NEWDATE.
ENDIF.
ENDIF.
ELSE.
IF YDAYS = 0
AND FUN1 = 'X'.
YDAYS = YDATE + SY-DATUM.
NEWDATE = SY-DATUM + YDAYS.
WRITE: / 'Todays Date is ', SY-DATUM.
SKIP 1.
WRITE: / 'Your Date is ', YDATE.
SKIP 1.
WRITE: / 'Number of days added ', YDAYS.
SKIP 1.
WRITE: / 'Your calculated date ', NEWDATE.
ELSE.
IF FUN1 = 'X'
AND YDAYS > 0.
NEWDATE = YDATE + YDAYS.
WRITE: / 'Todays Date is ', SY-DATUM.
SKIP 1.
WRITE: / 'Your Date is ', YDATE.
SKIP 1.
WRITE: / 'Number of days added ', YDAYS.
SKIP 1.
WRITE: / 'Your calculated date ', NEWDATE.
ELSE.
IF FUN2 = 'X'
AND YDAYS > 0.
NEWDATE = YDATE - YDAYS.
WRITE: / 'Todays Date is ', SY-DATUM.
WRITE: / 'Your Date is ', YDATE.
WRITE: / 'Number of days subtracted ', YDAYS.
WRITE: / 'Your calculated date ', NEWDATE.
ENDIF.
ENDIF.
ENDIF.
ENDIF.

S-ar putea să vă placă și