ABAP Tutorial - How to Set Default Date Range in SAP Selection Screen for Date Parameter
In this ABAP tutorial, I will short a simple ABAP report to show how ABAP developers can define a default date range in SELECTION SCREEN for a Select Option.
You can also see in the example how you can set default values for other select options.
Those other Select Options whose default values are set : VBELN number range for Sales Orders, AUART Sales Order Type for Sales Orders.
The below SAP screen is showing the SELECT Options placed in an SAP Selection Screen.
As you can realize the ERDAT select option has a date range with default date range value.
The low and high options of the date range are set.
In this ABAP sample, you can also find ABAP code to add days to a date variable.
Please note that the s_erdat date range select option is simply defined as :
s_erdat FOR vbak-erdat OBLIGATORY
You can omit Obligatory of course if erdat variable is not a required input from the user.
But pay attention that there is no value range definition related with erdat in the SELECT-OPTIONS definition.
SELECTION-SCREEN BEGIN OF BLOCK block-1 WITH FRAME TITLE text-001.
s_vbeln FOR vbak-vbeln DEFAULT '1500000000' TO '1599999999' OBLIGATORY,
s_auart FOR vbak-auart DEFAULT 'OR' OBLIGATORY,
s_erdat FOR vbak-erdat OBLIGATORY,
s_vsbed FOR vbak-vsbed,
s_vkorg FOR vbak-vkorg. "OBLIGATORY.
SELECTION-SCREEN END OF BLOCK block-1.
And just after the SELECTION-SCREEN block codes are completed, add the following Initialization code block.
In the Initialization ABAP code section, ABAP developers can create a local date range variable lv_date.
And in order to get the 7 days prior date from today, or to calculate the date of a week before simply substract 7 days from today, sy-datum.
Then the values of the s_erdat select option parameter are set.
Set the s_erdat-option to 'BT' for between.
Set s_erdat-low and high values.
And the last ABAP statement is APPEND s_erdat in order to pass the date range values to the erdat selection option which is displayed on the selection screen.
DATA lv_date TYPE sy-datum.
lv_date = sy-datum - 7.
MOVE: 'BT' TO s_erdat-option,
lv_date TO s_erdat-low,
sy-datum TO s_erdat-high.
Using the SELECTION-SCREEN declaration and the Select Option declaration shown as above with the Initialization code block, it is easy for ABAP programmers to create date range select option variables with default values.
I hope ABAP programmers will find this sample ABAP program useful.