在AT SELECTION-SCREEN ON VALUE-REQUEST事件中,是不能直接取得选择屏幕字段的默认值或输入的值,如果搜索帮助的内容是根据选择屏幕的字段而变化的,那么需要通过函数 DYNP_VALUES_READ读取。对应的还存在一个更新到 屏幕 的函数 DYNP_VALUES_UPDATE
*&---开户行和银行账户号 搜索帮助 at selection-screen on value-request for p_bankn. perform frm_request_f4_insmk using 'P_BANKN'. form frm_request_f4_insmk using pv_field type help_info-dynprofld. data: begin of ty_value_tab, bankn type lfbk-bankn, koinh type lfbk-koinh, end of ty_value_tab. data: lt_value_tab like table of ty_value_tab, ls_value_tab like ty_value_tab. data: l_path type string, l_sel type string, lit_zh type table of dynpread, lwa_zh type dynpread, lit_dyn type table of dynpread, lwa_dyn type dynpread. data l_lifnr type lfa1-lifnr . clear l_lifnr. if s_lifnr is initial. lwa_dyn-fieldname = 'S_LIFNR-LOW'. append lwa_dyn to lit_dyn. call function 'DYNP_VALUES_READ' "获取选择屏幕上 供应商的值 exporting dyname = sy-cprog "ABAP 系统字段:调用程序 dynumb = sy-dynnr "ABAP 系统字段:当前 Dynpro 的屏幕组 translate_to_upper = 'X' tables dynpfields = lit_dyn 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. * Implement suitable error handling here endif. read table lit_dyn into lwa_dyn with key fieldname = 'S_LIFNR-LOW'. call function 'CONVERSION_EXIT_ALPHA_INPUT' exporting input = lwa_dyn-fieldvalue importing output = l_lifnr. else. call function 'CONVERSION_EXIT_ALPHA_INPUT' exporting input = s_lifnr-low importing output = l_lifnr. endif. select "根据选择屏幕上供应商的值取到合适的开户行和账户号 lfbk~bankn lfbk~koinh into corresponding fields of table lt_value_tab from lfbk where lifnr = l_lifnr. call function 'F4IF_INT_TABLE_VALUE_REQUEST' "创建搜索帮助 exporting retfield = 'BANKN' "搜索帮助的字段名 dynpprog = sy-repid dynpnr = sy-dynnr dynprofield = pv_field value_org = 'S' tables value_tab = lt_value_tab "表内就是搜索帮助显示的值 exceptions parameter_error = 1 no_values_found = 2 others = 3. if sy-subrc <> 0. * Implement suitable error handling here endif. endform.二:调用SE11搜索帮助:MATCHCODE OBJECT
parameters:p_ddlx(10) matchcode object zfi003n obligatory.