标签:SELECTION SCREEN REQUEST VALUE folder 默认值
在AT SELECTION-SCREEN ON VALUE-REQUEST事件中,是不能直接取得选择屏幕字段的默认值或输入的值,而是需要通过函数 DYNP_VALUES_READ读取。
例子程序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | REPORT ZTEST_F4_DEFAULT. PARAMETERS: p_folder TYPE file_table-filename. INITIALIZATION. * 初始化 p_folder = 'C:\ZPKF'. *&---------------------------------------------------------------------* *& Event AT SELECTION-SCREEN *&---------------------------------------------------------------------* AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_folder. PERFORM frm_f4_pfolder. *&---------------------------------------------------------------------* *& Form FRM_F4_PFOLDER *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM frm_f4_pfolder . DATA: l_path TYPE string, l_sel TYPE string, lit_dyn TYPE TABLE OF dynpread, lwa_dyn TYPE dynpread. IF p_folder IS INITIAL. lwa_dyn-fieldname = 'P_FOLDER'. APPEND lwa_dyn TO lit_dyn. CALL FUNCTION 'DYNP_VALUES_READ' EXPORTING dyname = sy-cprog dynumb = sy-dynnr 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. READ TABLE lit_dyn INTO lwa_dyn WITH KEY fieldname = 'P_FOLDER'. l_path = lwa_dyn-fieldvalue. ELSE. l_path = p_folder. ENDIF. CALL METHOD cl_gui_frontend_services=>directory_browse EXPORTING initial_folder = l_path CHANGING selected_folder = l_sel EXCEPTIONS cntl_error = 1 error_no_gui = 2 not_supported_by_gui = 3 OTHERS = 4. IF sy-subrc EQ 0. p_folder = l_sel. ENDIF. ENDFORM. |
debug截图:
发现,虽然P_folder有初始默认值z:/zpkf,但是在VALUE-REQUEST事件中,P_folder为空,
随后通过DYNP_VALUES_READ读出,如下:
以上。
标签:SELECTION,SCREEN,REQUEST,VALUE,folder,默认值 来源: https://www.cnblogs.com/lvdong18847870057/p/12553138.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。