Hi, there are report requests that work in the form of month and year, and there is a standard data element and standard search help for them.

month TYPE fti_month_year,
You call a standard include to include the search help, extract the code from it if you want, but there is nothing else in my opinion.
INCLUDE rmcs0f0m.
Usage:
(You cannot use TABLES as it is not included in any table)
* ---------------------------------------------------------------------*
* ZZ_PROGRAM_TOP
* ---------------------------------------------------------------------*
INCLUDE rmcs0f0m.
DATA: BEGIN OF ls_select,
period TYPE fti_month_year,
END OF ls_select.
SELECT-OPTIONS: s_perio FOR ls_select-period NO-EXTENSION NO INTERVALS.
* ---------------------------------------------------------------------*
* AT SELECTION-SCREEN OVR
* ---------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_perio-low.
PERFORM monat_f4.