09-13-2008 11:49 AM
Hi exprts,
Kindly give me a solution.
I have 2 radio buttons in my selection screen and a field with f4 entry.
if i click the 1st button, only few datas should populate in the f4 entry of that field .
if i click the 2nd button, the other values from same table should populate in the f4 entry.
Thanks,
priya.
09-13-2008 12:00 PM
Check this sample code:
Hope u can get the idea from here.
DATA : it_return1 LIKE ddshretval OCCURS 0 WITH HEADER LINE,
it_return2 LIKE ddshretval OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF it_ernam OCCURS 0,
ernam LIKE mara-ernam,
END OF it_ernam.
DATA: BEGIN OF it_matnr OCCURS 0,
matnr LIKE mara-matnr,
END OF it_matnr.
PARAMETERS: p_ernam LIKE mara-ernam,
p_matnr LIKE mara-matnr.
DATA m LIKE mara-matnr.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_ernam.
SELECT ernam FROM mara INTO TABLE it_ernam.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'P_ERNAM'
value_org = 'S'
TABLES
value_tab = it_ernam
return_tab = it_return1
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
p_ernam = it_return1-fieldval.
SELECT matnr FROM mara INTO TABLE it_matnr WHERE ernam = p_ernam.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_matnr.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'P_MATNR'
value_org = 'S'
TABLES
value_tab = it_matnr
return_tab = it_return2
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
09-13-2008 12:53 PM
Hi Priya,
Just copy paste below code. It works exactly the way u want.
When i select PKG radiobutton F4 gives all package materials.
When i select BULK radiobutton F4 gives all bulk materials.
Hope it solves ur problem.
PARAMETERS: po_pkg RADIOBUTTON GROUP g1 DEFAULT 'X' USER-COMMAND ucomm,
po_bulk RADIOBUTTON GROUP g1,
po_matnr(10) TYPE c.
TYPES: BEGIN OF t_mara,
tragr TYPE mara-tragr,
matnr TYPE mara-matnr,
END OF t_mara.
DATA: i_mara TYPE TABLE OF t_mara,
i_ret TYPE TABLE OF ddshretval,
wa_mara TYPE t_mara,
wa_ret TYPE ddshretval.
AT SELECTION-SCREEN ON RADIOBUTTON GROUP g1.
REFRESH i_mara[].
IF po_pkg EQ 'X'.
SELECT tragr matnr FROM mara INTO TABLE i_mara WHERE tragr EQ 'PKG'.
ELSE.
SELECT tragr matnr FROM mara INTO TABLE i_mara WHERE tragr EQ 'BULK'.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR po_matnr.
"Select Default radiobutton materials i.e PKG materials
IF i_mara[] IS INITIAL AND po_pkg EQ 'X'.
SELECT tragr matnr FROM mara INTO TABLE i_mara WHERE tragr EQ 'PKG'.
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = ' '
retfield = 'WA_MARA-MATNR'
* PVALKEY = ' '
* DYNPPROG = ''
* DYNPNR = ''
* DYNPROFIELD = ' '
* STEPL = 0
* WINDOW_TITLE =
* VALUE = ' '
value_org = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
TABLES
value_tab = i_mara
* FIELD_TAB =
return_tab = i_ret
* DYNPFLD_MAPPING =
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3
.
READ TABLE i_ret INTO wa_ret INDEX 1.
po_matnr = wa_ret-fieldval.
Thanks,
Vinod.
Edited by: Vinod Reddy Vemuru on Sep 13, 2008 5:32 PM
09-13-2008 3:43 PM
Hi,
Please follow the below procedure.
AT SELECTION-SCREEN ON VALUE REQUEST.
if radiobutton1 = 'X'.
write the select query for which fields you want to display in the F4 help.
call the FM 'F4...................'.
elseif radiobutton2 = 'X'.
write the select query for which fields you want to display in the F4 help.
call the FM 'F4................'.
endif.