06-15-2020 5:42 AM
Hi Experts,
I want to display only 10 days back data from current date in report. it just a simple report. No any select option is there. But dont understand how do i give Where condition in Select query.
REPORT ZDTUM.
TABLES: zdaily.
data: datum TYPE sy-datum.
DATA: tripdat TYPE zdaily-tripdat.
TYPES: BEGIN OF TY_ZDAILY,
TRUCK_NO TYPE ZDAILY-TRUCK_NO,
VEHICLE_CATEGORY TYPE ZDAILY-VEHICLE_CATEGORY,
TRIPDAT TYPE ZDAILY-TRIPDAT,
ON_OFF_HIRE TYPE ZDAILY-ON_OFF_HIRE,
P_FROM TYPE ZDAILY-P_FROM,
P_TO TYPE ZDAILY-P_TO,
END OF TY_ZDAILY.
DATA : IT_ZDAILY TYPE TABLE OF TY_ZDAILY,
WA_ZDAILY TYPE TY_ZDAILY.
DATA : WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV, "Field catalog work area
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, "field catalog internal table
IT_LAYOUT TYPE SLIS_LAYOUT_ALV, "ALV layout settings
* FORM_CALLBACK TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'. "For user command
START-OF-SELECTION.
datum = sy-datum.
datum = sy-datum - 10.
SELECT * FROM ZDAILY INTO CORRESPONDING FIELDS OF TABLE IT_ZDAILY.
PERFORM BUILD_FCAT.
PERFORM DISPLAY_ALV.
FORM BUILD_FCAT .
WA_FIELDCAT-FIELDNAME = 'Truck_no'.
WA_FIELDCAT-SELTEXT_M = 'Truck no'.
WA_FIELDCAT-COL_POS = 1.
WA_FIELDCAT-KEY = 'X'.
* WA_FIELDCAT-HOTSPOT = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'Vehicle_category'.
WA_FIELDCAT-SELTEXT_M = 'Vehicle_category'.
WA_FIELDCAT-EDIT = 'X'.
WA_FIELDCAT-COL_POS = 2.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'Tripdat'.
WA_FIELDCAT-SELTEXT_M = 'Entry Date'.
WA_FIELDCAT-EDIT = 'X'.
WA_FIELDCAT-COL_POS = 3.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'ON_OFF_HIRE'.
WA_FIELDCAT-SELTEXT_M = 'Truck Status'.
WA_FIELDCAT-EDIT = 'X'.
WA_FIELDCAT-COL_POS = 4.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'P_FROM'.
WA_FIELDCAT-SELTEXT_M = 'From'.
WA_FIELDCAT-EDIT = 'X'.
WA_FIELDCAT-COL_POS = 5.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'P_TO'.
WA_FIELDCAT-SELTEXT_M = 'To'.
WA_FIELDCAT-EDIT = 'X'.
WA_FIELDCAT-COL_POS = 6.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM.
" BUILD_FCAT
FORM DISPLAY_ALV .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID "program name
** I_CALLBACK_USER_COMMAND = FORM_CALLBACK "user command subroutine name
* I_CALLBACK_TOP_OF_PAGE = FORM_TOP_OF_PAGE "sub routine for top of page
IS_LAYOUT = IT_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
TABLES
T_OUTTAB = IT_ZDAILY
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DISPLAY_ALV
06-15-2020 6:12 AM
Hi Nandini,
Please try below,
data(datum_from) = sy-datum - 10.
data(datum_to) = sy-datum.
SELECT * FROM ZDAILY INTO CORRESPONDING FIELDS OF TABLE IT_ZDAILY
WHERE P_FROM GE datum_from AND
P_TO LE datum_to.
Thanks,
Mukesh
06-15-2020 6:12 AM
Hi Nandini,
Please try below,
data(datum_from) = sy-datum - 10.
data(datum_to) = sy-datum.
SELECT * FROM ZDAILY INTO CORRESPONDING FIELDS OF TABLE IT_ZDAILY
WHERE P_FROM GE datum_from AND
P_TO LE datum_to.
Thanks,
Mukesh
06-15-2020 6:57 AM
06-15-2020 12:55 PM
Hello nandini_borse,
You can also use below code for the same:
DATA(datum_from) = sy-datum - 10.
DATA(datum_to) = sy-datum.
SELECT *
FROM zdaily
INTO CORRESPONDING FIELDS OF TABLE it_zdaily
WHERE date_field BETWEEN datum_from AND datum.
To learn more about the syntax follow the below link.
Regards!
06-15-2020 3:28 PM