‎2007 Jan 30 8:51 AM
Hi All,
Now I meet a problem about parameters.
There is my code:
SELECT-OPTIONS: S_BUDAT FOR BKPF-BUDAT DEFAULT SY-DATUM
And now customer wants to show the day before two years. EG: today is 2007-01-30, the right day he wants is 2005-01-30.
How can I show this in the selec-option?
Thanks,
Drizzt Do'Urden
‎2007 Jan 30 9:03 AM
tables BKPF.
SELECT-OPTIONS: S_BUDAT FOR BKPF-BUDAT .
data d_date like sy-datum .
initialization.
d_date = sy-datum.
d_date(4) = d_date(4) - 2.
s_budat-sign = 'I'.
s_budat-option = 'EQ'.
s_budat-low = d_date.
append s_budat.
‎2007 Jan 30 8:57 AM
Hi Drizzt,
Do the logic in INITILIZATION event.
Initilization.
s_budat-low = sy-datum(4) - 2. if sy-datum is in YYYYMMDD
Reward points if it is helpful.
Regards,
Kiran I
‎2007 Jan 30 8:57 AM
Drizzt
In the INITIALIZATION event use the below logic
DATA: char_date(8), i_year type i.
char_date = sy-datum.
MOVE char_date+0(4) TO i_year.
i_year = i_year - 2.
MOVE i_year TO char_date+0(4).
MOEV char_date TO s_budat-low.
‎2007 Jan 30 8:57 AM
Hi,
You can initialize values to the parameters of SELECTION-SCREEN in the <b>INITIALIZATION</b> event.
Try as follows.
SELECT-OPTIONS: S_BUDAT FOR BKPF-BUDAT.
<b>INITIALIZATION</b>.
data:
v_date type sy-datum value sy-datum,
v_yyyy(4) type n.
v_yyyy = v_date+0(4).
v_yyyy = v_yyyy + 2.
concatenate v_yyyy v_date4(2) v_date6(2) into s_budat.
Thanks,
Vinay
Message was edited by:
Vinaykumar G
‎2007 Jan 30 9:02 AM
Hi Drizzt,
try this:
data: budat like bkpf-budat.
data: budat1 like bkpf-budat.
*
budat = sy-datum.
budat1 = sy-datum.
*
write: / budat, budat1.
*
budat1(4) = budat(4) - 2.
write: / budat, budat1.
Regards, Dieter
‎2007 Jan 30 9:02 AM
Hi,
INITIALIZATION.
CALL FUNCTION 'CALCULATE_DATE'
EXPORTING
DAYS = '0'
MONTHS = '-24'
START_DATE = SY-DATUM
IMPORTING
RESULT_DATE = lv_date.
s_budat-sign = 'I'.
s_budat-option = 'EQ'.
s_budat-low = lv_date.
append s_budat.
Rgds,
Prakash
‎2007 Jan 30 9:02 AM
tables BKPF.
SELECT-OPTIONS: S_BUDAT FOR BKPF-BUDAT .
data d_date like sy-datum .
initialization.
d_date = sy-datum.
d_date(4) = d_date(4) - 2.
s_budat-sign = 'I'.
s_budat-option = 'EQ'.
s_budat-low = d_date.
append s_budat.
‎2007 Jan 30 9:03 AM
tables BKPF.
SELECT-OPTIONS: S_BUDAT FOR BKPF-BUDAT .
data d_date like sy-datum .
initialization.
d_date = sy-datum.
d_date(4) = d_date(4) - 2.
s_budat-sign = 'I'.
s_budat-option = 'EQ'.
s_budat-low = d_date.
append s_budat.
‎2007 Jan 30 9:10 AM
TABLES: bkpf.
SELECT-OPTIONS: s_budat FOR bkpf-budat.
DATA:
lv_date TYPE p0001-begda.
INITIALIZATION.
s_budat-sign = 'I'.
s_budat-option = 'BT'.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = sy-datum
days = '00'
months = '00'
signum = '-'
years = '02'
IMPORTING
calc_date = lv_date.
s_budat-low = lv_date.
s_budat-high = sy-datum.
APPEND s_budat.
‎2007 Jan 30 9:16 AM
I suggest to use a Fm rather than the code .
just execute the code and see if this is working for u .
tables bkpf.
INITIALIZATION.
SELECT-OPTIONS: S_BUDAT FOR BKPF-BUDAT ."DEFAULT SY-DATUM
data:v_date type sy-datum. " value sy-datum,
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
date = sy-datum
days = '00'
months = '00'
SIGNUM = '-'
years = '02' "no of years
IMPORTING
CALC_DATE = v_date.
s_budat-low = v_date.
append s_budat. regards,
vijay
‎2007 Jan 30 9:21 AM
Thanks for you all.
Now I solve the problem.
Fm and code are both useful.
Thanks.