Select Option header cleared after FM call
Hi
I'm calling an FM in the AT SELECTION SCREEN event in which I'm using some FMs to validate the values entered by the user. However on returning from the FM the header of the select option gets cleared. And the value you entered on the select option thereby also is gone. (However it can be seen in the multiple selection options)
I export nothing to the FM and only import tyhe name of the select-option/parameter (like s_matnr-low or p_ernam).
Why is this happening and what could be done about it?
Pushpraj
Edited by: Pushpraj Singh on Sep 24, 2009 7:40 PM
Here's the thing:
I made an FM which is called in the AT SELECTION SCREEN event of a report.
This FM is supposed to validate the entries made by the user (whether they belong to the domain of the fields or not).
It exports the name of the select-option or parameter which is incorrectly filled.
Now say there is one select-option and one parameter on the selection screen.; and I put a valid value in the select-option and an invalid one in the parameter.
The FM now returns the name of the parameter (say p_ernam) but also clears the header of the select-option table (not the body). If the FM does not return anything the header is not cleared. However any value in the return parameter makes the header disappear.
Pushpraj
Similar Messages
-
Select-options are not destroyed while calling view of used component popup
Hi Friends ,
I'm facing a unique problem. I'm calling a view of a component within another component. the view that I'm calling has some select-options. When I close the popup window ( using close 'X' of popup ) and then try to reopen the popup system give me a dump. I debugged and found that select-options are not destroyed by system and once it tries to create the select-options again it dumps because they are already there.
This is the source code extract of that dump for your reference .
1 method if_wd_select_options~add_selection_field.
2
3 data:
4 lr_table_descr type ref to cl_abap_tabledescr,
5 lr_struct_descr type ref to cl_abap_structdescr,
6 lr_value_field_descr type ref to cl_abap_elemdescr,
7 added_field like line of mt_added_fields,
8 dfies type dfies,
9 description type string,
10 complex_restrictions type if_wd_select_options=>t_complex_restrictions.
11
12 field-symbols:
13 <it_result> type index table.
14
15 * check of someone wants to add a field that already exists
16 read table mt_fields
17 with key m_id = i_id
18 transporting no fields.
19 if sy-subrc = 0.
20 * might be deleted - recreating a field with different setting is of course allowed
21 read table mt_all_removed_fields
22 with key table_line = i_id
23 transporting no fields.
24 if sy-subrc <> 0.
>>> message x000(00).
26 endif.
27
28 * remove the existing field in order to avoid duplicates
29 delete table mt_fields with table key m_id = i_id.
30 endif.
I've already tried using REMOVE_ALL_SEL_SCREEN_ITEMS( ) method of interface IF_WD_SELECT_OPTIONS before creating new elements ( select-options ). If any one can help me in this It would really help and I'll appreciate it.
Thanks in advance,
LaeeqI've sloved the problem
-
How do I pass SELECT-OPTIONS to another screen via CALL TRANSACTION?
Good day, everyone!
I am writing a program that will be passing PARAMETERS and SELECT-OPTIONS values to another transaction via the CALL TRANSACTION statement. I'm new at this, and I've run into a problem. I have several fields that are defined as SELECT-OPTIONS, like so:
SELECT-OPTIONS so_ccode FOR fkkop-bukrs.
The user may select multiple values, enter a range, exclude certain values, etc. -- the things a SELECT-OPTIONS allows.
But how do I pass all of this to a field on another screen using CALL TRANSACTION when I only have two fields (BDCDATA-FNAM and BDCDATA-FVAL) available to me? That works fine for PARAMETERS, but I can send low/high values, different signs/options, etc. for the SELECT-OPTIONS variables.
Please help!! Points awarded for all helpful answers.
Thank you,
DaveDon't use CALL TRANSACTION. Use SUBMIT instead.
Rob -
Assign return itab to select options field
Hi Dear Experts,
I am not be able to pass "r_pobjid" to a select-options field
clearly as desired as well.
As already mentioned r_pobjid must be presented to a
select options field after the user has made his selections.
Can you pls give me deciding hint to solve the problem.
This below demonstrated solution doesn't work.
Regards
CALL FUNCTION 'RP_PNP_ORGSTRUCTURE'
TABLES
pobjid = r_pobjid.
p_orgeh-high = r_pobjid.
p_orgeh-sign = 'I'.
p_orgeh-option = 'EQ'.
APPEND p_orgeh.I think you need pass
Loop at r_pobjid
1).
p_orgeh-low = r_pobjid.
p_orgeh-high = r_pobjid.
p_orgeh-sign = 'I'.
p_orgeh-option = 'BT'.
APPEND p_orgeh.
2). or
p_orgeh-low = r_pobjid.
p_orgeh-sign = 'I'.
p_orgeh-option = 'EQ'.
APPEND p_orgeh.
endloop.
a® -
I am using the NO INTERVALS addition for a select-options. When I use this addition, the user is still unfortunately allowed to enter a range after they select the drop down. Is there any way to exclude the tabs other than the Single Values tab in the select options dialog box? Your response is greatly anticipated.
Kind Regards,
JasonREPORT TESTREP.
* Include type pool SSCR
TYPE-POOLS SSCR.
* Define the object to be passed to the RESTRICTION parameter
DATA RESTRICT TYPE SSCR_RESTRICT.
* Auxiliary objects for filling RESTRICT
DATA OPT_LIST TYPE SSCR_OPT_LIST.
DATA *** TYPE SSCR_***.
* Define the selection screen objects
* First block: 3 SELECT-OPTIONS
SELECTION-SCREEN BEGIN OF BLOCK BLOCK_0 WITH FRAME TITLE TEXT-BL0.
SELECT-OPTIONS SEL_0_0 FOR SY-TVAR0.
SELECT-OPTIONS SEL_0_1 FOR SY-TVAR1.
SELECT-OPTIONS SEL_0_2 FOR SY-TVAR2.
SELECT-OPTIONS SEL_0_3 FOR SY-TVAR3.
SELECTION-SCREEN END OF BLOCK BLOCK_0.
* Second block: 2 SELECT-OPTIONS
SELECTION-SCREEN BEGIN OF BLOCK BLOCK_1 WITH FRAME TITLE TEXT-BL1.
SELECT-OPTIONS SEL_1_0 FOR SY-SUBRC.
SELECT-OPTIONS SEL_1_1 FOR SY-REPID.
SELECTION-SCREEN END OF BLOCK BLOCK_1.
INITIALIZATION.
* Define the option list
* ALL: All options allowed
MOVE 'ALL' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-BT,
OPT_LIST-OPTIONS-CP,
OPT_LIST-OPTIONS-EQ,
OPT_LIST-OPTIONS-GE,
OPT_LIST-OPTIONS-GT,
OPT_LIST-OPTIONS-LE,
OPT_LIST-OPTIONS-LT,
OPT_LIST-OPTIONS-NB,
OPT_LIST-OPTIONS-NE,
OPT_LIST-OPTIONS-NP.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* NOPATTERN: CP and NP not allowed
CLEAR OPT_LIST.
MOVE 'NOPATTERN' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-BT,
OPT_LIST-OPTIONS-EQ,
OPT_LIST-OPTIONS-GE,
OPT_LIST-OPTIONS-GT,
OPT_LIST-OPTIONS-LE,
OPT_LIST-OPTIONS-LT,
OPT_LIST-OPTIONS-NB,
OPT_LIST-OPTIONS-NE.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* NOINTERVLS: BT and NB not allowed
CLEAR OPT_LIST.
MOVE 'NOINTERVLS' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-CP,
OPT_LIST-OPTIONS-EQ,
OPT_LIST-OPTIONS-GE,
OPT_LIST-OPTIONS-GT,
OPT_LIST-OPTIONS-LE,
OPT_LIST-OPTIONS-LT,
OPT_LIST-OPTIONS-NE,
OPT_LIST-OPTIONS-NP.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* EQ_AND_CP: only EQ and CP allowed
CLEAR OPT_LIST.
MOVE 'EQ_AND_CP' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-CP,
OPT_LIST-OPTIONS-EQ.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* JUST_EQ: Only EQ allowed
CLEAR OPT_LIST.
MOVE 'JUST_EQ' TO OPT_LIST-NAME.
MOVE 'X' TO OPT_LIST-OPTIONS-EQ.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* Assign selection screen objects to option list and sign
* KIND = 'A': applies to all SELECT-OPTIONS
MOVE: 'A' TO ***-KIND,
'*' TO ***-SG_MAIN,
'NOPATTERN' TO ***-OP_MAIN,
'NOINTERVLS' TO ***-OP_ADDY.
APPEND *** TO RESTRICT-***_TAB.
* KIND = 'B': applies to all SELECT-OPTIONS in block BLOCK_0,
* that is, SEL_0_0, SEL_0_1, SEL_0_2
CLEAR ***.
MOVE: 'B' TO ***-KIND,
'BLOCK_0' TO ***-NAME,
'I' TO ***-SG_MAIN,
'*' TO ***-SG_ADDY,
'NOINTERVLS' TO ***-OP_MAIN.
APPEND *** TO RESTRICT-***_TAB.
* KIND = 'S': applies to SELECT-OPTION SEL-0-2
CLEAR ***.
MOVE: 'S' TO ***-KIND,
'SEL_0_2' TO ***-NAME,
'I' TO ***-SG_MAIN,
'*' TO ***-SG_ADDY,
'EQ_AND_CP' TO ***-OP_MAIN,
'ALL' TO ***-OP_ADDY.
APPEND *** TO RESTRICT-***_TAB.
* KIND = 'S': Applies to SELECT-OPTION SEL_0_3
CLEAR ***.
MOVE: 'S' TO ***-KIND,
'SEL_0_3' TO ***-NAME,
'I' TO ***-SG_MAIN,
'N' TO ***-SG_ADDY,
'JUST_EQ' TO ***-OP_MAIN.
APPEND *** TO RESTRICT-***_TAB.
* Call function module
CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
EXPORTING
RESTRICTION = RESTRICT
* DB = ' '
EXCEPTIONS
TOO_LATE = 1
REPEATED = 2
NOT_DURING_SUBMIT = 3
DB_CALL_AFTER_REPORT_CALL = 4
SELOPT_WITHOUT_OPTIONS = 5
SELOPT_WITHOUT_SIGNS = 6
INVALID_SIGN = 7
REPORT_CALL_AFTER_DB_ERROR = 8
EMPTY_OPTION_LIST = 9
INVALID_KIND = 10
REPEATED_KIND_A = 11
OTHERS = 12.
* Exception handling
IF SY-SUBRC NE 0.
ENDIF. -
Disabling the Ranges option in Select options
Hi,
I have a requirement where I have to remove the possibility of entering the ranges for select-options on the selection screen (eg: FROM xyz TO xyz ).. For this I used SELECT OPTIONS NO INTERVALS.
Now the range option doesnt appear on the main selection screen. However, when I click on the Multiple Selection screen button next to this field.. here again I find an option to enter the ranges. Is there a way to disable this option on the Multiple Selection screen.
Could anyone please help me in this.
Regards,
Harshachk this program
REPORT TESTREP.
* Include type pool SSCR
TYPE-POOLS SSCR.
* Define the object to be passed to the RESTRICTION parameter
DATA RESTRICT TYPE SSCR_RESTRICT.
* Auxiliary objects for filling RESTRICT
DATA OPT_LIST TYPE SSCR_OPT_LIST.
DATA *** TYPE SSCR_***.
* Define the selection screen objects
* First block: 3 SELECT-OPTIONS
SELECTION-SCREEN BEGIN OF BLOCK BLOCK_0 WITH FRAME TITLE TEXT-BL0.
SELECT-OPTIONS SEL_0_0 FOR SY-TVAR0.
SELECT-OPTIONS SEL_0_1 FOR SY-TVAR1.
SELECT-OPTIONS SEL_0_2 FOR SY-TVAR2.
SELECT-OPTIONS SEL_0_3 FOR SY-TVAR3.
SELECTION-SCREEN END OF BLOCK BLOCK_0.
* Second block: 2 SELECT-OPTIONS
SELECTION-SCREEN BEGIN OF BLOCK BLOCK_1 WITH FRAME TITLE TEXT-BL1.
SELECT-OPTIONS SEL_1_0 FOR SY-SUBRC.
SELECT-OPTIONS SEL_1_1 FOR SY-REPID.
SELECTION-SCREEN END OF BLOCK BLOCK_1.
INITIALIZATION.
* Define the option list
* ALL: All options allowed
MOVE 'ALL' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-BT,
OPT_LIST-OPTIONS-CP,
OPT_LIST-OPTIONS-EQ,
OPT_LIST-OPTIONS-GE,
OPT_LIST-OPTIONS-GT,
OPT_LIST-OPTIONS-LE,
OPT_LIST-OPTIONS-LT,
OPT_LIST-OPTIONS-NB,
OPT_LIST-OPTIONS-NE,
OPT_LIST-OPTIONS-NP.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* NOPATTERN: CP and NP not allowed
CLEAR OPT_LIST.
MOVE 'NOPATTERN' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-BT,
OPT_LIST-OPTIONS-EQ,
OPT_LIST-OPTIONS-GE,
OPT_LIST-OPTIONS-GT,
OPT_LIST-OPTIONS-LE,
OPT_LIST-OPTIONS-LT,
OPT_LIST-OPTIONS-NB,
OPT_LIST-OPTIONS-NE.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* NOINTERVLS: BT and NB not allowed
CLEAR OPT_LIST.
MOVE 'NOINTERVLS' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-CP,
OPT_LIST-OPTIONS-EQ,
OPT_LIST-OPTIONS-GE,
OPT_LIST-OPTIONS-GT,
OPT_LIST-OPTIONS-LE,
OPT_LIST-OPTIONS-LT,
OPT_LIST-OPTIONS-NE,
OPT_LIST-OPTIONS-NP.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* EQ_AND_CP: only EQ and CP allowed
CLEAR OPT_LIST.
MOVE 'EQ_AND_CP' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-CP,
OPT_LIST-OPTIONS-EQ.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* JUST_EQ: Only EQ allowed
CLEAR OPT_LIST.
MOVE 'JUST_EQ' TO OPT_LIST-NAME.
MOVE 'X' TO OPT_LIST-OPTIONS-EQ.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* Assign selection screen objects to option list and sign
* KIND = 'A': applies to all SELECT-OPTIONS
MOVE: 'A' TO ***-KIND,
'*' TO ***-SG_MAIN,
'NOPATTERN' TO ***-OP_MAIN,
'NOINTERVLS' TO ***-OP_ADDY.
APPEND *** TO RESTRICT-***_TAB.
* KIND = 'B': applies to all SELECT-OPTIONS in block BLOCK_0,
* that is, SEL_0_0, SEL_0_1, SEL_0_2
CLEAR ***.
MOVE: 'B' TO ***-KIND,
'BLOCK_0' TO ***-NAME,
'I' TO ***-SG_MAIN,
'*' TO ***-SG_ADDY,
'NOINTERVLS' TO ***-OP_MAIN.
APPEND *** TO RESTRICT-***_TAB.
* KIND = 'S': applies to SELECT-OPTION SEL-0-2
CLEAR ***.
MOVE: 'S' TO ***-KIND,
'SEL_0_2' TO ***-NAME,
'I' TO ***-SG_MAIN,
'*' TO ***-SG_ADDY,
'EQ_AND_CP' TO ***-OP_MAIN,
'ALL' TO ***-OP_ADDY.
APPEND *** TO RESTRICT-***_TAB.
* KIND = 'S': Applies to SELECT-OPTION SEL_0_3
CLEAR ***.
MOVE: 'S' TO ***-KIND,
'SEL_0_3' TO ***-NAME,
'I' TO ***-SG_MAIN,
'N' TO ***-SG_ADDY,
'JUST_EQ' TO ***-OP_MAIN.
APPEND *** TO RESTRICT-***_TAB.
* Call function module
CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
EXPORTING
RESTRICTION = RESTRICT
* DB = ' '
EXCEPTIONS
TOO_LATE = 1
REPEATED = 2
NOT_DURING_SUBMIT = 3
DB_CALL_AFTER_REPORT_CALL = 4
SELOPT_WITHOUT_OPTIONS = 5
SELOPT_WITHOUT_SIGNS = 6
INVALID_SIGN = 7
REPORT_CALL_AFTER_DB_ERROR = 8
EMPTY_OPTION_LIST = 9
INVALID_KIND = 10
REPEATED_KIND_A = 11
OTHERS = 12.
* Exception handling
IF SY-SUBRC NE 0.
ENDIF.
Message was edited by: Sekhar -
Reset Select options in Screen
Hi,
I have a scenario where, i need to disable the select options and clear the visible contents in it.
Currently below is the logic implemented, the radio button is getting disabled and also cleared of selection.
Select option fields are getting disabled.
But the issue is, the Select options LOW and HIGH fields show the older values and are not getting reset.
Please share your thoughts.
PARAMETERS : r_pernr RADIOBUTTON GROUP g2 MODIF ID cs1.
SELECT-OPTIONS : p_pernr FOR pa0001-pernr MODIF ID cs1.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF V_Flag NE 'X' AND
screen-group1 = 'CS1'.
r_pernr = space.
p_pernr-low = space.
p_pernr-high = space.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.TABLES:PA0001.
DATA:LF_PERNR TYPE CHAR08.
PARAMETERS : R_PERNR RADIOBUTTON GROUP G2 MODIF ID CS1,
R_2 RADIOBUTTON GROUP G2.
SELECT-OPTIONS : P_PERNR FOR LF_PERNR MODIF ID CS1.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
R_PERNR = SPACE.
CLEAR P_PERNR[].
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDLOOP.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PERNR-LOW.
PERFORM F4_HELP USING 'P_PERNR-LOW'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PERNR-HIGH.
PERFORM F4_HELP USING 'P_PERNR-HIGH'.
FORM F4_HELP USING PC_1.
TYPES:BEGIN OF TY,
PERNR TYPE PA0001-PERNR,
END OF TY.
DATA:IT TYPE TABLE OF TY.
SELECT PERNR INTO TABLE IT FROM PA0001 UP TO 10 rows.
CHECK IT[] IS NOT INITIAL.
DELETE ADJACENT DUPLICATES FROM IT.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'PERNR'
DYNPPROG = SY-CPROG
DYNPNR = SY-DYNNR
DYNPROFIELD = PC_1
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT[]
EXCEPTIONS
OTHERS = 0.
ENDFORM. -
How to avoid ranges option in the select option.
Hi All,
In the selection screen, when the user press the extension button usaually we are getting four columns. those columns are 2 sinlge vals, 2 ranges. but as per my requirement, user wants to display only one single val column in that dialog window.
please help me in this regard.
-Pesi.use SELECT_OPTINS_RESTRICT FM
chk the sample code
REPORT TESTREP.
* Include type pool SSCR
TYPE-POOLS SSCR.
* Define the object to be passed to the RESTRICTION parameter
DATA RESTRICT TYPE SSCR_RESTRICT.
* Auxiliary objects for filling RESTRICT
DATA OPT_LIST TYPE SSCR_OPT_LIST.
DATA *** TYPE SSCR_***.
* Define the selection screen objects
* First block: 3 SELECT-OPTIONS
SELECTION-SCREEN BEGIN OF BLOCK BLOCK_0 WITH FRAME TITLE TEXT-BL0.
SELECT-OPTIONS SEL_0_0 FOR SY-TVAR0.
SELECT-OPTIONS SEL_0_1 FOR SY-TVAR1.
SELECT-OPTIONS SEL_0_2 FOR SY-TVAR2.
SELECT-OPTIONS SEL_0_3 FOR SY-TVAR3.
SELECTION-SCREEN END OF BLOCK BLOCK_0.
* Second block: 2 SELECT-OPTIONS
SELECTION-SCREEN BEGIN OF BLOCK BLOCK_1 WITH FRAME TITLE TEXT-BL1.
SELECT-OPTIONS SEL_1_0 FOR SY-SUBRC.
SELECT-OPTIONS SEL_1_1 FOR SY-REPID.
SELECTION-SCREEN END OF BLOCK BLOCK_1.
INITIALIZATION.
* Define the option list
* ALL: All options allowed
MOVE 'ALL' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-BT,
OPT_LIST-OPTIONS-CP,
OPT_LIST-OPTIONS-EQ,
OPT_LIST-OPTIONS-GE,
OPT_LIST-OPTIONS-GT,
OPT_LIST-OPTIONS-LE,
OPT_LIST-OPTIONS-LT,
OPT_LIST-OPTIONS-NB,
OPT_LIST-OPTIONS-NE,
OPT_LIST-OPTIONS-NP.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* NOPATTERN: CP and NP not allowed
CLEAR OPT_LIST.
MOVE 'NOPATTERN' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-BT,
OPT_LIST-OPTIONS-EQ,
OPT_LIST-OPTIONS-GE,
OPT_LIST-OPTIONS-GT,
OPT_LIST-OPTIONS-LE,
OPT_LIST-OPTIONS-LT,
OPT_LIST-OPTIONS-NB,
OPT_LIST-OPTIONS-NE.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* NOINTERVLS: BT and NB not allowed
CLEAR OPT_LIST.
MOVE 'NOINTERVLS' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-CP,
OPT_LIST-OPTIONS-EQ,
OPT_LIST-OPTIONS-GE,
OPT_LIST-OPTIONS-GT,
OPT_LIST-OPTIONS-LE,
OPT_LIST-OPTIONS-LT,
OPT_LIST-OPTIONS-NE,
OPT_LIST-OPTIONS-NP.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* EQ_AND_CP: only EQ and CP allowed
CLEAR OPT_LIST.
MOVE 'EQ_AND_CP' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-CP,
OPT_LIST-OPTIONS-EQ.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* JUST_EQ: Only EQ allowed
CLEAR OPT_LIST.
MOVE 'JUST_EQ' TO OPT_LIST-NAME.
MOVE 'X' TO OPT_LIST-OPTIONS-EQ.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* Assign selection screen objects to option list and sign
* KIND = 'A': applies to all SELECT-OPTIONS
MOVE: 'A' TO ***-KIND,
'*' TO ***-SG_MAIN,
'NOPATTERN' TO ***-OP_MAIN,
'NOINTERVLS' TO ***-OP_ADDY.
APPEND *** TO RESTRICT-***_TAB.
* KIND = 'B': applies to all SELECT-OPTIONS in block BLOCK_0,
* that is, SEL_0_0, SEL_0_1, SEL_0_2
CLEAR ***.
MOVE: 'B' TO ***-KIND,
'BLOCK_0' TO ***-NAME,
'I' TO ***-SG_MAIN,
'*' TO ***-SG_ADDY,
'NOINTERVLS' TO ***-OP_MAIN.
APPEND *** TO RESTRICT-***_TAB.
* KIND = 'S': applies to SELECT-OPTION SEL-0-2
CLEAR ***.
MOVE: 'S' TO ***-KIND,
'SEL_0_2' TO ***-NAME,
'I' TO ***-SG_MAIN,
'*' TO ***-SG_ADDY,
'EQ_AND_CP' TO ***-OP_MAIN,
'ALL' TO ***-OP_ADDY.
APPEND *** TO RESTRICT-***_TAB.
* KIND = 'S': Applies to SELECT-OPTION SEL_0_3
CLEAR ***.
MOVE: 'S' TO ***-KIND,
'SEL_0_3' TO ***-NAME,
'I' TO ***-SG_MAIN,
'N' TO ***-SG_ADDY,
'JUST_EQ' TO ***-OP_MAIN.
APPEND *** TO RESTRICT-***_TAB.
* Call function module
CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
EXPORTING
RESTRICTION = RESTRICT
* DB = ' '
EXCEPTIONS
TOO_LATE = 1
REPEATED = 2
NOT_DURING_SUBMIT = 3
DB_CALL_AFTER_REPORT_CALL = 4
SELOPT_WITHOUT_OPTIONS = 5
SELOPT_WITHOUT_SIGNS = 6
INVALID_SIGN = 7
REPORT_CALL_AFTER_DB_ERROR = 8
EMPTY_OPTION_LIST = 9
INVALID_KIND = 10
REPEATED_KIND_A = 11
OTHERS = 12.
* Exception handling
IF SY-SUBRC NE 0.
ENDIF. -
Hi,,
I need to disable one of the select option field s_date in my selection screen.
I need to it to have the values that are populated in the initialization event and disable it for further entries.
Can someone please let me know how to do this.
Thanks in advance.Use the following FM for that purpose:
SELECT_OPTIONS_RESTRICT
Refer the code:
* Include type pool SSCR
TYPE-POOLS SSCR.
* Define the object to be passed to the RESTRICTION parameter
DATA RESTRICT TYPE SSCR_RESTRICT.
* Auxiliary objects for filling RESTRICT
DATA OPT_LIST TYPE SSCR_OPT_LIST.
DATA *** TYPE SSCR_***.
* Define the selection screen objects
* First block: 3 SELECT-OPTIONS
SELECTION-SCREEN BEGIN OF BLOCK BLOCK_0 WITH FRAME TITLE TEXT-BL0.
SELECT-OPTIONS SEL_0_0 FOR SY-TVAR0.
SELECT-OPTIONS SEL_0_1 FOR SY-TVAR1.
SELECT-OPTIONS SEL_0_2 FOR SY-TVAR2.
SELECT-OPTIONS SEL_0_3 FOR SY-TVAR3.
SELECTION-SCREEN END OF BLOCK BLOCK_0.
* Second block: 2 SELECT-OPTIONS
SELECTION-SCREEN BEGIN OF BLOCK BLOCK_1 WITH FRAME TITLE TEXT-BL1.
SELECT-OPTIONS SEL_1_0 FOR SY-SUBRC.
SELECT-OPTIONS SEL_1_1 FOR SY-REPID.
SELECTION-SCREEN END OF BLOCK BLOCK_1.
INITIALIZATION.
* Define the option list
* ALL: All options allowed
MOVE 'ALL' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-BT,
OPT_LIST-OPTIONS-CP,
OPT_LIST-OPTIONS-EQ,
OPT_LIST-OPTIONS-GE,
OPT_LIST-OPTIONS-GT,
OPT_LIST-OPTIONS-LE,
OPT_LIST-OPTIONS-LT,
OPT_LIST-OPTIONS-NB,
OPT_LIST-OPTIONS-NE,
OPT_LIST-OPTIONS-NP.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* NOPATTERN: CP and NP not allowed
CLEAR OPT_LIST.
MOVE 'NOPATTERN' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-BT,
OPT_LIST-OPTIONS-EQ,
OPT_LIST-OPTIONS-GE,
OPT_LIST-OPTIONS-GT,
OPT_LIST-OPTIONS-LE,
OPT_LIST-OPTIONS-LT,
OPT_LIST-OPTIONS-NB,
OPT_LIST-OPTIONS-NE.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* NOINTERVLS: BT and NB not allowed
CLEAR OPT_LIST.
MOVE 'NOINTERVLS' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-CP,
OPT_LIST-OPTIONS-EQ,
OPT_LIST-OPTIONS-GE,
OPT_LIST-OPTIONS-GT,
OPT_LIST-OPTIONS-LE,
OPT_LIST-OPTIONS-LT,
OPT_LIST-OPTIONS-NE,
OPT_LIST-OPTIONS-NP.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* EQ_AND_CP: only EQ and CP allowed
CLEAR OPT_LIST.
MOVE 'EQ_AND_CP' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-CP,
OPT_LIST-OPTIONS-EQ.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* JUST_EQ: Only EQ allowed
CLEAR OPT_LIST.
MOVE 'JUST_EQ' TO OPT_LIST-NAME.
MOVE 'X' TO OPT_LIST-OPTIONS-EQ.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* Assign selection screen objects to option list and sign
* KIND = 'A': applies to all SELECT-OPTIONS
MOVE: 'A' TO ***-KIND,
'*' TO ***-SG_MAIN,
'NOPATTERN' TO ***-OP_MAIN,
'NOINTERVLS' TO ***-OP_ADDY.
APPEND *** TO RESTRICT-***_TAB.
* KIND = 'B': applies to all SELECT-OPTIONS in block BLOCK_0,
* that is, SEL_0_0, SEL_0_1, SEL_0_2
CLEAR ***.
MOVE: 'B' TO ***-KIND,
'BLOCK_0' TO ***-NAME,
'I' TO ***-SG_MAIN,
'*' TO ***-SG_ADDY,
'NOINTERVLS' TO ***-OP_MAIN.
APPEND *** TO RESTRICT-***_TAB.
* KIND = 'S': applies to SELECT-OPTION SEL-0-2
CLEAR ***.
MOVE: 'S' TO ***-KIND,
'SEL_0_2' TO ***-NAME,
'I' TO ***-SG_MAIN,
'*' TO ***-SG_ADDY,
'EQ_AND_CP' TO ***-OP_MAIN,
'ALL' TO ***-OP_ADDY.
APPEND *** TO RESTRICT-***_TAB.
* KIND = 'S': Applies to SELECT-OPTION SEL_0_3
CLEAR ***.
MOVE: 'S' TO ***-KIND,
'SEL_0_3' TO ***-NAME,
'I' TO ***-SG_MAIN,
'N' TO ***-SG_ADDY,
'JUST_EQ' TO ***-OP_MAIN.
APPEND *** TO RESTRICT-***_TAB.
* Call function module
CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
EXPORTING
RESTRICTION = RESTRICT
* DB = ' '
EXCEPTIONS
TOO_LATE = 1
REPEATED = 2
NOT_DURING_SUBMIT = 3
DB_CALL_AFTER_REPORT_CALL = 4
SELOPT_WITHOUT_OPTIONS = 5
SELOPT_WITHOUT_SIGNS = 6
INVALID_SIGN = 7
REPORT_CALL_AFTER_DB_ERROR = 8
EMPTY_OPTION_LIST = 9
INVALID_KIND = 10
REPEATED_KIND_A = 11
OTHERS = 12.
* Exception handling
IF SY-SUBRC NE 0.
ENDIF. -
Modify select-option!!
Hi
i hav to modify select-option:
The select-option S_LGORT, S_VSTEL and S_LGORT will be restricted.
Only show tab Single vals and ranges, and option equal...how shall i modify..loop at that select-option or directly assign the option value n modify ...points for sure...
Regards
Gunjanchk this report
REPORT TESTREP.
* Include type pool SSCR
TYPE-POOLS SSCR.
* Define the object to be passed to the RESTRICTION parameter
DATA RESTRICT TYPE SSCR_RESTRICT.
* Auxiliary objects for filling RESTRICT
DATA OPT_LIST TYPE SSCR_OPT_LIST.
DATA *** TYPE SSCR_***.
* Define the selection screen objects
* First block: 3 SELECT-OPTIONS
SELECTION-SCREEN BEGIN OF BLOCK BLOCK_0 WITH FRAME TITLE TEXT-BL0.
SELECT-OPTIONS SEL_0_0 FOR SY-TVAR0.
SELECT-OPTIONS SEL_0_1 FOR SY-TVAR1.
SELECT-OPTIONS SEL_0_2 FOR SY-TVAR2.
SELECT-OPTIONS SEL_0_3 FOR SY-TVAR3.
SELECTION-SCREEN END OF BLOCK BLOCK_0.
* Second block: 2 SELECT-OPTIONS
SELECTION-SCREEN BEGIN OF BLOCK BLOCK_1 WITH FRAME TITLE TEXT-BL1.
SELECT-OPTIONS SEL_1_0 FOR SY-SUBRC.
SELECT-OPTIONS SEL_1_1 FOR SY-REPID.
SELECTION-SCREEN END OF BLOCK BLOCK_1.
INITIALIZATION.
* Define the option list
* ALL: All options allowed
MOVE 'ALL' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-BT,
OPT_LIST-OPTIONS-CP,
OPT_LIST-OPTIONS-EQ,
OPT_LIST-OPTIONS-GE,
OPT_LIST-OPTIONS-GT,
OPT_LIST-OPTIONS-LE,
OPT_LIST-OPTIONS-LT,
OPT_LIST-OPTIONS-NB,
OPT_LIST-OPTIONS-NE,
OPT_LIST-OPTIONS-NP.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* NOPATTERN: CP and NP not allowed
CLEAR OPT_LIST.
MOVE 'NOPATTERN' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-BT,
OPT_LIST-OPTIONS-EQ,
OPT_LIST-OPTIONS-GE,
OPT_LIST-OPTIONS-GT,
OPT_LIST-OPTIONS-LE,
OPT_LIST-OPTIONS-LT,
OPT_LIST-OPTIONS-NB,
OPT_LIST-OPTIONS-NE.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* NOINTERVLS: BT and NB not allowed
CLEAR OPT_LIST.
MOVE 'NOINTERVLS' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-CP,
OPT_LIST-OPTIONS-EQ,
OPT_LIST-OPTIONS-GE,
OPT_LIST-OPTIONS-GT,
OPT_LIST-OPTIONS-LE,
OPT_LIST-OPTIONS-LT,
OPT_LIST-OPTIONS-NE,
OPT_LIST-OPTIONS-NP.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* EQ_AND_CP: only EQ and CP allowed
CLEAR OPT_LIST.
MOVE 'EQ_AND_CP' TO OPT_LIST-NAME.
MOVE 'X' TO: OPT_LIST-OPTIONS-CP,
OPT_LIST-OPTIONS-EQ.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* JUST_EQ: Only EQ allowed
CLEAR OPT_LIST.
MOVE 'JUST_EQ' TO OPT_LIST-NAME.
MOVE 'X' TO OPT_LIST-OPTIONS-EQ.
APPEND OPT_LIST TO RESTRICT-OPT_LIST_TAB.
* Assign selection screen objects to option list and sign
* KIND = 'A': applies to all SELECT-OPTIONS
MOVE: 'A' TO ***-KIND,
'*' TO ***-SG_MAIN,
'NOPATTERN' TO ***-OP_MAIN,
'NOINTERVLS' TO ***-OP_ADDY.
APPEND *** TO RESTRICT-***_TAB.
* KIND = 'B': applies to all SELECT-OPTIONS in block BLOCK_0,
* that is, SEL_0_0, SEL_0_1, SEL_0_2
CLEAR ***.
MOVE: 'B' TO ***-KIND,
'BLOCK_0' TO ***-NAME,
'I' TO ***-SG_MAIN,
'*' TO ***-SG_ADDY,
'NOINTERVLS' TO ***-OP_MAIN.
APPEND *** TO RESTRICT-***_TAB.
* KIND = 'S': applies to SELECT-OPTION SEL-0-2
CLEAR ***.
MOVE: 'S' TO ***-KIND,
'SEL_0_2' TO ***-NAME,
'I' TO ***-SG_MAIN,
'*' TO ***-SG_ADDY,
'EQ_AND_CP' TO ***-OP_MAIN,
'ALL' TO ***-OP_ADDY.
APPEND *** TO RESTRICT-***_TAB.
* KIND = 'S': Applies to SELECT-OPTION SEL_0_3
CLEAR ***.
MOVE: 'S' TO ***-KIND,
'SEL_0_3' TO ***-NAME,
'I' TO ***-SG_MAIN,
'N' TO ***-SG_ADDY,
'JUST_EQ' TO ***-OP_MAIN.
APPEND *** TO RESTRICT-***_TAB.
* Call function module
CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
EXPORTING
RESTRICTION = RESTRICT
* DB = ' '
EXCEPTIONS
TOO_LATE = 1
REPEATED = 2
NOT_DURING_SUBMIT = 3
DB_CALL_AFTER_REPORT_CALL = 4
SELOPT_WITHOUT_OPTIONS = 5
SELOPT_WITHOUT_SIGNS = 6
INVALID_SIGN = 7
REPORT_CALL_AFTER_DB_ERROR = 8
EMPTY_OPTION_LIST = 9
INVALID_KIND = 10
REPEATED_KIND_A = 11
OTHERS = 12.
* Exception handling
IF SY-SUBRC NE 0.
ENDIF. -
How can we pass the select-option value to modulepool program?
hi,
how can we pass the select-option value to modulepool program ?
Because if i declared select-options in executable program and i used SSCRFIELDS to define push buttons in selection screen.
My requirement if enter the values to select-options and press UPDATE pussbotton then i want call screen which contains tablecontrol.
How i get select-option values to PAI of call screen for getting the data from database table to my internal table?Oh I thought that you have selection-screen and again you are working on dialog programming.
if you want to use select-option directly in module pool then it is not possible.
but you can do other way.
create two varaiables
data : v_kun_low like kna1-kunnr,
v_kun_high like kna1-kunnr.
use these two variables in layout ,let user knows that he can not give options like gt,lt,eq ,it will be always BT.
and also when you see normal report program,you can use multiple values in either low or high,but here it is not possibel.
use can enter only low value and high value.
when you come to program point of view
declare one range
ranges r_kunnr for kna1-kunnr.
do the coding like
r_kunnr-low = v_kun_low.
r_kunnr-high = v_kun_high.
r_kunnr-options = 'BT'.
r_kunnr-sign = 'I'.
append r_kunnr.
now you can use r_kunnr in select query ,it will work like select-option.
other than this there is no option.
Thanks
Seshu -
Using selection options in functions..
Hi,
I have written abap program in which there are 3 selection options.. I want to pass these selection options to a function. so I want to know how to define or refer selection options in functions which is called by some other abap program ?
Regards,
SantoshThe select options are basically just tables with a specific structure. One option would be to specify them as TABLES parameters, e.g. check out function module BAPI_MATERIAL_GETLIST and you can see for example a call via function IAC_SHMA_MATERIALS_SELECT (or check dictionary table type SHP_MATNR_RANGE_T in SE11).
Cheers, harald -
Set parameter id for select-options to fill more than one value
FROM MY CUSTOM PROGRAM I AM CALLING A TRANSACTION CODE. IN MY REPORT I WANT TO SELECT MORE THAN ONE RECORD AND TO CALL THE TRANSACTION BY PASSING THE SELECTED VALUES TO THE SELECT-OPTIONS OF THE TRANSACTION.
IF IT IS A PARAMETER I CAN WRITE SET PARAMETER STATEMENT FOR ONE VALUE AND EASILY CALL THE TRANSACTION. BUT I WANT TO FILL THE SELECT-OPTIONS OF THE TCODE.
CAN ANYBODY PLEASE PROVIDE ME THE LOGIC HOW TO FILL THE SELECT-OPTIONS FROM MY REPORT FOR CALLING THE TRANSACTION.
REGARDS,
VASU.Hi..
Instead of calling the Transaction
Call the Report directly using:
(First declare the Ranges)
ranges : R_matnr for mara-matnr.
(Fill the values into Ranges Table and call the report )
SUBMIT <REPORT>
With s_matnr in R_matnr.
<b>Reward if helpful.</b> -
Hi,
I have developed a report which include a number of fields that come from the header text of the document. Besides, those fields are also used as the selection options. So, I use the function module READ_TEXT to retrieve it and compare it. The problem is the performance of the report is very bad. It takes 3 mins to get 3 records. Is there any way to resolve this??
SELECT-OPTIONS: S_WADAT FOR LIKP-WADAT_IST.
PARAMETERS: P_MAWB LIKE WA_REPORT-KZABE.
PARAMETERS: P_HAWB LIKE LIKP-BOLNR.
PARAMETERS: P_MATNR LIKE LIPS-MATNR.
PARAMETERS: P_LOT(20) TYPE C.
CLEAR: I_REPORT,I_DELIVERY,I_DELIVERY_INFO.
REFRESH: I_REPORT,I_DELIVERY,I_DELIVERY_INFO.
DATA WHERE_TAB(80) OCCURS 10 WITH HEADER LINE.
DATA: BEGIN OF LTEXT OCCURS 50.
INCLUDE STRUCTURE TLINE.
DATA: END OF LTEXT.
IF NOT P_HAWB IS INITIAL.
CONCATENATE ' BOLNR = ' WHERE_TAB INTO WHERE_TAB.
CONCATENATE WHERE_TAB '''' INTO WHERE_TAB.
CONCATENATE WHERE_TAB P_HAWB INTO WHERE_TAB.
CONCATENATE WHERE_TAB '''' INTO WHERE_TAB.
APPEND WHERE_TAB.
ENDIF.
IF NOT P_MATNR IS INITIAL.
IF NOT WHERE_TAB IS INITIAL.
CONCATENATE ' AND MATNR = ' WHERE_TAB INTO WHERE_TAB.
ELSE.
CONCATENATE ' MATNR = ' WHERE_TAB INTO WHERE_TAB.
ENDIF.
CONCATENATE WHERE_TAB '''' INTO WHERE_TAB.
CONCATENATE WHERE_TAB P_MATNR INTO WHERE_TAB.
CONCATENATE WHERE_TAB '''' INTO WHERE_TAB.
APPEND WHERE_TAB.
ENDIF.
SELECT A1~VBELN
WADAT_IST
BOLNR
C1~LIFNR
B1~MATNR
LFIMG
BTGEW
B1~CHARG
INTO CORRESPONDING FIELDS OF TABLE TMP_REPORT
FROM LIKP AS A1 JOIN LIPS AS B1 ON A1~VBELN = B1~VBELN
JOIN MCHA AS C1 ON B1~MATNR = C1~MATNR
AND
B1~WERKS = C1~WERKS
AND
B1~CHARG = C1~CHARG
WHERE LFART = 'EL'
AND
WADAT_IST IN S_WADAT
AND
B1~CHARG NE ''
AND
B1~WERKS = 'ABC'
AND
(WHERE_TAB)
SORT TMP_REPORT BY VBELN.
DATA: V_FLAG TYPE I,
V_EXCLUDE TYPE I,
V_LOT_EXCLUDE TYPE I.
V_FLAG = 0.
V_EXCLUDE = 0.
V_LOT_EXCLUDE = 0.
IF SY-SUBRC = 0.
* trim the parameter space
SHIFT P_MAWB RIGHT DELETING TRAILING SPACE.
SHIFT P_MAWB LEFT DELETING LEADING SPACE.
SHIFT P_LOT RIGHT DELETING TRAILING SPACE.
SHIFT P_LOT LEFT DELETING LEADING SPACE.
LOOP AT TMP_REPORT.
AT NEW VBELN.
V_FLAG = 1.
V_EXCLUDE = 0.
ENDAT.
IF V_FLAG = 1.
PERFORM GET_HEADER_TEXT
TABLES
LTEXT
USING
'Z3IH'
TMP_REPORT-VBELN
READ TABLE LTEXT INDEX 1.
SPLIT LTEXT-TDLINE AT ':' INTO
TMP_REPORT-VERUR TMP_REPORT-VERUR.
READ TABLE LTEXT INDEX 2.
SPLIT LTEXT-TDLINE AT ':' INTO
TMP_REPORT-KZGBE TMP_REPORT-KZGBE.
READ TABLE LTEXT INDEX 3.
SPLIT LTEXT-TDLINE AT ':' INTO
TMP_REPORT-KZABE TMP_REPORT-KZABE.
READ TABLE LTEXT INDEX 4.
SPLIT LTEXT-TDLINE AT ':' INTO
TMP_REPORT-STABE TMP_REPORT-STABE.
READ TABLE LTEXT INDEX 5.
SPLIT LTEXT-TDLINE AT ':' INTO
TMP_REPORT-PRONU TMP_REPORT-PRONU.
READ TABLE LTEXT INDEX 6.
SPLIT LTEXT-TDLINE AT ':' INTO
TMP_REPORT-LADEL TMP_REPORT-LADEL.
SHIFT TMP_REPORT-KZABE RIGHT DELETING TRAILING SPACE.
SHIFT TMP_REPORT-KZABE LEFT DELETING LEADING SPACE.
MOVE-CORRESPONDING TMP_REPORT TO WA_REPORT.
MOVE-CORRESPONDING TMP_REPORT TO WA_TMPREPORT.
V_FLAG = 0.
ELSE.
MOVE TMP_REPORT-VBELN TO WA_REPORT-VBELN.
MOVE TMP_REPORT-LIFNR TO WA_REPORT-LIFNR.
MOVE TMP_REPORT-MATNR TO WA_REPORT-MATNR.
MOVE TMP_REPORT-LFIMG TO WA_REPORT-LFIMG.
ENDIF.
PERFORM GET_LOT_CODE USING
WA_REPORT-MATNR
'3LTU'
WA_TMPREPORT-CHARG
WA_REPORT-LOT.
IF V_EXCLUDE <> 1 AND P_MAWB NE ''
AND WA_TMPREPORT-KZABE NE P_MAWB .
V_EXCLUDE = 1.
ENDIF.
SHIFT WA_REPORT-LOT RIGHT DELETING TRAILING SPACE.
SHIFT WA_REPORT-LOT LEFT DELETING LEADING SPACE.
IF P_LOT NE '' AND P_LOT NE WA_REPORT-LOT.
V_LOT_EXCLUDE = 1.
ELSE.
V_LOT_EXCLUDE = 0.
ENDIF.
IF V_EXCLUDE <> 1 AND V_LOT_EXCLUDE <> 1.
APPEND WA_REPORT TO I_REPORT.
CLEAR WA_REPORT.
CLEAR TMP_REPORT.
ENDIF.
ENDLOOP.
Regards,
KitHere is my code
FORM GET_LOT_CODE USING MATCODE PLANT BATCH LOT_CODE.
DATA: W_OBJECTTAVLE LIKE BAPI1003_KEY-OBJECTTABLE VALUE 'MCHA',
W_CLASSNUM LIKE BAPI1003_KEY-CLASSNUM VALUE 'Z003',
W_CLASSTYPE LIKE BAPI1003_KEY-CLASSTYPE VALUE '022',
IT_ALLOCVALUESNUM LIKE BAPI1003_ALLOC_VALUES_NUM OCCURS 0,
IT_ALLOCVALUESCHAR LIKE BAPI1003_ALLOC_VALUES_CHAR OCCURS 0,
WA_ALLOCVALUESCHAR LIKE BAPI1003_ALLOC_VALUES_CHAR,
IT_ALLOCVALUESCURR LIKE BAPI1003_ALLOC_VALUES_CURR OCCURS 0,
IT_RETURN LIKE BAPIRET2 OCCURS 0.
DATA: BEGIN OF IT_OBJECT OCCURS 0.
INCLUDE STRUCTURE BAPI1003_OBJECT_KEYS.
DATA: END OF IT_OBJECT.
DATA: W_OBJECT LIKE BAPI1003_KEY-OBJECT.
CLEAR: IT_OBJECT, IT_RETURN.
REFRESH: IT_OBJECT, IT_RETURN.
IT_OBJECT-KEY_FIELD = 'MATNR'.
IT_OBJECT-VALUE_INT = MATCODE.
APPEND IT_OBJECT.
IT_OBJECT-KEY_FIELD = 'WERKS'.
IT_OBJECT-VALUE_INT = PLANT.
APPEND IT_OBJECT.
IT_OBJECT-KEY_FIELD = 'CHARG'.
IT_OBJECT-VALUE_INT = BATCH.
APPEND IT_OBJECT.
CALL FUNCTION 'BAPI_OBJCL_CONCATENATEKEY'
EXPORTING
OBJECTTABLE = 'MCHA'
IMPORTING
OBJECTKEY_CONC = W_OBJECT
TABLES
OBJECTKEYTABLE = IT_OBJECT
RETURN = IT_RETURN.
CLEAR: IT_RETURN.
REFRESH: IT_RETURN.
CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
EXPORTING
OBJECTKEY = W_OBJECT
OBJECTTABLE = W_OBJECTTAVLE
CLASSNUM = W_CLASSNUM
CLASSTYPE = W_CLASSTYPE
TABLES
ALLOCVALUESNUM = IT_ALLOCVALUESNUM
ALLOCVALUESCHAR = IT_ALLOCVALUESCHAR
ALLOCVALUESCURR = IT_ALLOCVALUESCURR
RETURN = IT_RETURN.
LOOP AT IT_ALLOCVALUESCHAR INTO WA_ALLOCVALUESCHAR.
IF WA_ALLOCVALUESCHAR-CHARACT = 'Z_VENDOR_LOT_NUMBER'.
LOT_CODE = WA_ALLOCVALUESCHAR-VALUE_CHAR.
ENDIF.
ENDLOOP.
ENDFORM. -
Populate SELECT-OPTIONS default value using CALL FUNCTION
Hi Experts,
I would like to populate SELECT-OPTIONS s_currm default with value in w_currm, however, it doesn't seem to work. Can you please advise what the correct syntax is.
Note that CALL FUNCTION 'GET_CURRENT_YEAR' is working correctly and populating w_currm (as I can use it in a SQL SELECT statement), however, it does not seem to work for SELECT-OPTIONS s_currm.
Thank you for your time.
Code snippet is as a follows:
REPORT Z_DOWNLOAD_BSIS_TEST.
*Data Declaration
DATA: w_currm TYPE BSIS-MONAT.
*Define current fiscal month
CALL FUNCTION 'GET_CURRENT_YEAR'
EXPORTING
BUKRS = 'X999' " Company Code
DATE = SY-DATUM " Date to find fiscal year for
IMPORTING
CURRM = w_currm. " Current Fiscal Month
SELECT-OPTIONS s_currm FOR w_currm
DEFAULT w_currm. " The default value is NOT being populated (appears blank)Hi Venkat.O,
Thank you for your clear response. I have implemented your suggestion and it works, however, I now have a new problem.
Each time the report is executed or the "multiple selection" button is clicked the selection fields are populated once again with the default (low) values.
For example, when report is first opened the s_curry field displays '2010'. Clicking "multiple selection" results in another '2010' being populated. After executing the report the selection screen is populated again with '2010' (so we now have '2010' listed 3 times in the s_curry field).
How do I prevent the default values from repeating?
REPORT Z_DOWNLOAD_BSIS_TEST
*Data Declaration
DATA: w_currm TYPE BSIS-MONAT,
w_curry TYPE BSIS-GJAHR,
w_prevm TYPE BSIS-MONAT,
w_prevy TYPE BSIS-GJAHR.
SELECTION-SCREEN BEGIN OF BLOCK b11 WITH FRAME TITLE text-001 .
*Parameters to enter the path
PARAMETERS: FILENAME(128) OBLIGATORY DEFAULT '/usr/sap/tmp/TEST.txt'
LOWER CASE.
SELECT-OPTIONS: s_curry FOR w_curry,
s_currm FOR w_currm.
SELECTION-SCREEN END OF BLOCK b11.
AT SELECTION-SCREEN OUTPUT.
*Define current/previous financial periods
CALL FUNCTION 'GET_CURRENT_YEAR'
EXPORTING
BUKRS = 'X999' " Company Code
DATE = SY-DATUM " Date to find fiscal year for
IMPORTING
CURRM = w_currm " Current Fiscal Month
CURRY = w_curry " Current Fiscal Year
PREVM = w_prevm " Previous Fiscal Month
PREVY = w_prevy. " Previous Fiscal Year
s_curry-low = w_curry.
s_curry-option = 'EQ'.
s_curry-sign = 'I'.
APPEND s_curry.
CLEAR s_curry.
s_currm-low = w_currm.
s_currm-option = 'EQ'.
s_currm-sign = 'I'.
APPEND s_currm.
CLEAR s_currm.
Maybe you are looking for
-
If the Muse Team added this, they could relax and not worry about adding so many other features. Sure, you can do this already in your browser. But it's not really a dynamically edit thing. Here, let me demonstrate. You could naviagate (or shortcut)
-
I want to watch television on sites like Hulu and Fancast but they require some sort of flash player. Adobe Flash isn't allowed so what is the Apple equivalent?
-
I don't want to BURN a CD, I just want to add a new song to the CD!
Why can't I just add a new music purchase to the CD that already contains other iTunes music? I tried dragging the song to the Device, but nothing happens. If I click on Burn, I'm asked to insert a blank CD. I have a lot of room for more music on my
-
Hello ALL, we have ACS 1121 and are planning to migrate to ISE let me know if its possible if yes what are the license i need to buy
-
ICloud control panel freeze after applying settings
Just installed iTunes 10.5 and iCloud control panel 1.0 on my Windows 7 64-bit computer. I am signed in with my Apple-ID but when I enable photo Stream and hit the Apply button the control panel freezes. I have restarted the computer wish resulted in