Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

SELECT-OPTIONS problem

Former Member
0 Likes
1,194

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,107

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.

10 REPLIES 10
Read only

Former Member
0 Likes
1,107

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

Read only

Former Member
0 Likes
1,107

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.

Read only

Former Member
0 Likes
1,107

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

Read only

Former Member
0 Likes
1,107

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

Read only

Former Member
0 Likes
1,107

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

Read only

Former Member
0 Likes
1,107

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.

Read only

Former Member
0 Likes
1,108

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.

Read only

Former Member
0 Likes
1,107

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.

Read only

Former Member
0 Likes
1,107

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

Read only

0 Likes
1,107

Thanks for you all.

Now I solve the problem.

Fm and code are both useful.

Thanks.