‎2009 Sep 23 6:38 AM
Hello experts,
i m developing one screen , in that i put one F4 help, there are two fields doc & doc Date.
i want when user select that doc no. corresponding date will appear in date field.I m using FM 'DYNP_VALUES_UPDATE'
to update.
call function 'F4IF_INT_TABLE_VALUE_REQUEST'
exporting
retfield = 'EXNUM'
dynpprog = sy-cprog
dynpnr = sy-dynnr
dynprofield = 'ZBOE_NO'
window_title = 'BOE Details'
value_org = 'S'
display = 'F'
tables
value_tab = i_j_1iexchdr
return_tab = return.
*refresh dynfields.
READ TABLE RETURN INTO W_RETURN INDEX 1.
EXDAT = RETURN-FIELDVAL.
READ TABLE i_j_1iexchdr WITH KEY exdat = exdat.
IF SY-SUBRC = 0.
DYNFIELDS-FIELDNAME = 'ZBOE_DATE'.
DYNFIELDS-FIELDVALUE = I_J_1IEXCHDR-EXDAT.
append dynfields.
CLEAR DYNFIELDS.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
tables
dynpfields = dynfields
EXCEPTIONS
others = 8.
endif.
Plz suggest where i m wrong
Aastha
‎2009 Sep 23 6:43 AM
Hi,
<li>Try to change the above one to below one.Because F4 help is written for EXNUM. Based on EXNUM ,u have to get date.
*refresh dynfields.
READ TABLE RETURN INTO W_RETURN INDEX 1.
EXDAT = RETURN-FIELDVAL.
READ TABLE i_j_1iexchdr WITH KEY exdat = exdat.
IF SY-SUBRC = 0.
DYNFIELDS-FIELDNAME = 'ZBOE_DATE'.
DYNFIELDS-FIELDVALUE = I_J_1IEXCHDR-EXDAT.
append dynfields.
CLEAR DYNFIELDS.
Thanks
Venkat.OREAD TABLE RETURN INTO W_RETURN INDEX 1.
EXNUM = RETURN-FIELDVAL.
READ TABLE i_j_1iexchdr WITH KEY EXNUM = EXNUM.
IF SY-SUBRC = 0.
DYNFIELDS-FIELDNAME = 'ZBOE_DATE'.
DYNFIELDS-FIELDVALUE = I_J_1IEXCHDR-EXDAT.
append dynfields.
CLEAR DYNFIELDS.
‎2009 Sep 23 7:07 AM
Hello Venkat,
when i replace with ur code, Its not picking value for exnum from F4 help of exnum
call function 'F4IF_INT_TABLE_VALUE_REQUEST'
exporting
retfield = 'EXNUM'
dynpprog = sy-cprog
dynpnr = sy-dynnr
dynprofield = 'ZBOE_NO'
window_title = 'BOE Details'
value_org = 'S'
display = 'F'
tables
value_tab = i_j_1iexchdr
return_tab = return.
*refresh dynfields.
READ TABLE RETURN INTO W_RETURN INDEX 1.
EXnum = RETURN-FIELDVAL.
READ TABLE i_j_1iexchdr WITH KEY exnum = exnum.
IF SY-SUBRC = 0.
DYNFIELDS-FIELDNAME = 'ZBOE_DATE'.
DYNFIELDS-FIELDVALUE = I_J_1IEXCHDR-EXDAT.
append dynfields.
CLEAR DYNFIELDS.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
tables
dynpfields = dynfields
EXCEPTIONS
others = 8.
endif.
Suggest,
Aastha
‎2009 Sep 23 8:17 AM
Hi Aastha,
Try this way. Just execute it and change your program accordingly.
Thanks
Venkat.O
REPORT ZVENKAT_F4_FOR_PARAMETERS MESSAGE-ID ZMSG .
TYPES:BEGIN OF T_T001W,
WERKS TYPE T001W-WERKS,
NAME1 TYPE T001W-NAME1,
END OF T_T001W,
T_RETURN_TAB TYPE DDSHRETVAL.
DATA:W_T001W TYPE T_T001W,
W_RETURN_TAB TYPE T_RETURN_TAB.
DATA:I_T001W TYPE STANDARD TABLE OF T_T001W,
I_RETURN_TAB TYPE STANDARD TABLE OF T_RETURN_TAB.
DATA:W_DYNPFIELDS TYPE DYNPREAD,
I_DYNPFIELDS LIKE STANDARD TABLE OF DYNPREAD.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
PARAMETERS :P_WERKS TYPE T001W-WERKS,
P_NAME1 TYPE T001W-NAME1.
SELECTION-SCREEN END OF BLOCK B1.
"F4 Help for Werks
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_WERKS.
IF I_T001W[] IS INITIAL.
SELECT WERKS NAME1
FROM T001W
INTO TABLE I_T001W.
ENDIF.
"Function module for F4 help
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'WERKS' "field name on f4 help window
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'P_WERKS' "Screen field name
VALUE_ORG = 'S'
TABLES
VALUE_TAB = I_T001W
RETURN_TAB = I_RETURN_TAB.
READ TABLE I_RETURN_TAB INTO W_RETURN_TAB INDEX 1.
P_WERKS = W_RETURN_TAB-FIELDVAL.
READ TABLE I_T001W INTO W_T001W WITH KEY WERKS = P_WERKS.
IF SY-SUBRC = 0.
W_DYNPFIELDS-FIELDNAME = 'P_NAME1'.
W_DYNPFIELDS-FIELDVALUE = W_T001W-NAME1.
APPEND W_DYNPFIELDS TO I_DYNPFIELDS.
CLEAR W_DYNPFIELDS.
"DYNP_VALUES_UPDATE
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
DYNAME = SY-REPID
DYNUMB = SY-DYNNR
TABLES
DYNPFIELDS = I_DYNPFIELDS.
ENDIF.
‎2009 Sep 23 9:09 AM