‎2008 Aug 14 10:31 AM
Hi
I hv given F4 help to a field uing the FM 'F4IF_INT_TABLE_VALUE_REQUEST' ,if I click F4 and select for the first time, the value is displayed,but if I click F4 again and select next value it is not displayed, it is displayin the first value only....
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_pz-low.
CLEAR s_pz-low.
REFRESH t_pz.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'FIELD'
dynpprog = 'ZTEST'
dynpnr = '1000'
dynprofield = 'S_PZ-LOW'
value_org = 'S'
window_title = 'TEST'
TABLES
field_tab = i_fldtab
value_tab = t_pz
return_tab = l_return
dynpfld_mapping = i_dynmap.
Read return table and place that on low value of S_PZ
READ TABLE l_return INDEX 1.
s_pz-low = l_return-fieldval.
Can anyone help me...
‎2008 Aug 14 10:43 AM
‎2008 Aug 14 10:37 AM
Hi,
Refresh the internal table l_return beofre each call of the FM and check.
‎2008 Aug 14 10:42 AM
‎2008 Aug 14 10:43 AM
‎2008 Aug 14 10:49 AM
Is s_pz a select option?? In that case try clearing S_PZ and not S_PZ-LOW before calling the function module IF_INT_TABLE_VALUE_REQUEST..
If s_pz is a selct option, that will be an internal table and will not be cleared by CLEAR S_PZ-LOW statement and will hold the old contents.
this might be the reason why F4 help is showing old record.
~Piyush Patil
‎2008 Aug 14 10:56 AM
Hi mamtha,
Just try putting F4 help using SE11 rather than calling the FM.
I think that will work surely.
If you need the procedure to do so then do let me know.
Regards,
Manish
‎2008 Aug 14 11:05 AM
Hi
I hv tried all those but still itz not workin...I'm sendin u my code...pls check it...
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_desig-low.
CLEAR s_desig.
REFRESH t_desig.
clear l_return[].
IF rb_pz = 'X'.
MOVE '08' TO t_desig-desig.
MOVE 'Administration Officer' TO t_desig-text.
APPEND t_desig.
MOVE '14' TO t_desig-desig.
MOVE 'Senior Assistant' TO t_desig-text.
APPEND t_desig.
MOVE '15' TO t_desig-desig.
MOVE 'Stenographer' TO t_desig-text.
APPEND t_desig.
MOVE '16' TO t_desig-desig.
MOVE 'Assistant' TO t_desig-text.
APPEND t_desig.
MOVE '17' TO t_desig-desig.
MOVE 'Record clerk' TO t_desig-text.
APPEND t_desig.
MOVE '18' TO t_desig-desig.
MOVE 'Driver' TO t_desig-text.
APPEND t_desig.
ELSEIF rb_rz = 'X'.
MOVE '08' TO t_desig-desig.
MOVE 'Administration Officer' TO t_desig-text.
APPEND t_desig.
MOVE '10' TO t_desig-desig.
MOVE 'Development Off-I' TO t_desig-text.
APPEND t_desig.
MOVE '16' TO t_desig-desig.
MOVE 'Assistant' TO t_desig-text.
APPEND t_desig.
MOVE '18' TO t_desig-desig.
MOVE 'Driver' TO t_desig-text.
APPEND t_desig.
MOVE '19' TO t_desig-desig.
MOVE 'Sub-Staff' TO t_desig-text.
APPEND t_desig.
MOVE '20' TO t_desig-desig.
MOVE 'Full-Time Sweeper' TO t_desig-text.
APPEND t_desig.
MOVE '21' TO t_desig-desig.
MOVE 'Part-Time Sweeper' TO t_desig-text.
APPEND t_desig.
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'DESIG'
dynpprog = 'ztest'
dynpnr = '1000'
dynprofield = 'S_DESIG-LOW'
value_org = 'S'
window_title = 'TEST'
TABLES
field_tab = i_fldtab
value_tab = t_desig
return_tab = l_return
dynpfld_mapping = i_dynmap.
Read return table and place that on low value of S_PZ
READ TABLE l_return INDEX 1.
s_desig-low = l_return-fieldval.
‎2008 Aug 14 11:08 AM
Hi Manish
Hw can I do it in se11 if I want to use my values based on radiobutton clicked...???
‎2008 Aug 14 2:10 PM
hi u can use follwoing code it will solve
MODULE SOURCE_HELP INPUT.
DATA: W_PROGNAME LIKE SY-REPID,
W_SCR_NUM LIKE SY-DYNNR .
DATA: RETURN_VALUES LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.
DATA: ITAB_DYNPFIELDS LIKE DYNPREAD OCCURS 0 WITH HEADER LINE,
T_DYNPFIELDS LIKE DYNPREAD.
DATA: T_DYNAME LIKE D020S-PROG,
T_DYNUMB LIKE D020S-DNUM.
DATA: BEGIN OF INT_F4 OCCURS 0,
KUNNR TYPE VBAK-KUNNR,
VBELN TYPE VBAK-VBELN,
AUDAT TYPE VBAK-AUDAT,
END OF INT_F4.
****GETTING RECORDS IN THE INTERNAL TABLE FOR F4 DISPLAY
SELECT KZDIF DTEXT INTO TABLE INT_F4
FROM T336T
WHERE LGNUM = LTAK-LGNUM AND
SPRAS = 'E'.
SELECT KUNNR VBELN AUDAT
INTO TABLE INT_F4
FROM VBAK
UP TO 10 ROWS.
CLEAR INT_F4.
****function module to get pop-up window of f4.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'VBELN'
DYNPPROG = W_PROGNAME
DYNPNR = W_SCR_NUM
DYNPROFIELD = 'KUNNR'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = INT_F4
RETURN_TAB = RETURN_VALUES
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE .
KUNNR = RETURN_VALUES-FIELDVAL.
ENDIF.
REFRESH ITAB_DYNPFIELDS. CLEAR: ITAB_DYNPFIELDS.
T_DYNPFIELDS-FIELDNAME = 'KUNNR'.
APPEND T_DYNPFIELDS TO ITAB_DYNPFIELDS.
T_DYNUMB = SY-DYNNR.
T_DYNAME = SY-REPID.
This function module must have the values added to
the internal table that you need t oread.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = T_DYNAME
DYNUMB = T_DYNUMB
TABLES
DYNPFIELDS = ITAB_DYNPFIELDS
EXCEPTIONS
INVALID_ABAPWORKAREA = 1
INVALID_DYNPROFIELD = 2
INVALID_DYNPRONAME = 3
INVALID_DYNPRONUMMER = 4
INVALID_REQUEST = 5
NO_FIELDDESCRIPTION = 6
INVALID_PARAMETER = 7
UNDEFIND_ERROR = 8
DOUBLE_CONVERSION = 9
STEPL_NOT_FOUND = 10
OTHERS = 11.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT ITAB_DYNPFIELDS.
CASE ITAB_DYNPFIELDS-FIELDNAME.
WHEN 'KUNNR'.
ITAB_DYNPFIELDS-FIELDVALUE = KUNNR.
MODIFY ITAB_DYNPFIELDS.
ENDCASE.
ENDLOOP.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
DYNAME = T_DYNAME
DYNUMB = T_DYNUMB
TABLES
DYNPFIELDS = ITAB_DYNPFIELDS
EXCEPTIONS
INVALID_ABAPWORKAREA = 1
INVALID_DYNPROFIELD = 2
INVALID_DYNPRONAME = 3
INVALID_DYNPRONUMMER = 4
INVALID_REQUEST = 5
NO_FIELDDESCRIPTION = 6
UNDEFIND_ERROR = 7
OTHERS = 8.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
REFRESH INT_F4.
CLEAR INT_F4.
ENDMODULE. " SOURCE_HELP INPUT
give point
Edited by: krupa jani on Aug 14, 2008 3:10 PM
‎2008 Aug 18 1:24 PM
‎2008 Aug 18 1:25 PM