1. 程式人生 > 實用技巧 >F4IF_INT_TABLE_VALUE_REQUEST選擇螢幕自定義F4幫助

F4IF_INT_TABLE_VALUE_REQUEST選擇螢幕自定義F4幫助

今天在用F4IF_INT_TABLE_VALUE_REQUEST函式寫選擇螢幕的自定義幫助的時候,發現了個問題,那就是F4IF_INT_TABLE_VALUE_REQUEST中引數value_tab中的資料型別必須是資料字典型別,否則,在選擇螢幕中

按下F4後,內表中的內容不會顯示出來。

 1 REPORT  Z_TEST.
 2 
 3 DATA :F TYPE STR.
 4 PARAMETERS: VAR TYPE str  .
 5 PARAMETERS: SEL(4) TYPE C.
 6 AT SELECTION-SCREEN ON VALUE-REQUEST FOR VAR.
7 PERFORM SELECTION. 8 FORM SELECTION. 9 "這裡的型別必須是資料字典型別,否則內表中的內容在選擇螢幕中無法顯示 10 DATA:BEGIN OF ITAB OCCURS 0, 11 COL1 TYPE char10 , 12 COL2 TYPE cHAR10 , 13 END OF ITAB. 14 DATA:FIELD_TAB TYPE DFIES OCCURS 0 WITH HEADER LINE. 15 16 DO 5 TIMES. 17 ITAB-COL1 = SY-INDEX. 18 ITAB-COL2 = SY-INDEX + 1
. 19 APPEND ITAB. 20 ENDDO. 21 CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' 22 EXPORTING 23 * DDIC_STRUCTURE = ' ' 24 RETFIELD = 'COL1' 25 * PVALKEY = ' ' 26 DYNPPROG = SY-REPID 27 DYNPNR = SY-DYNNR 28 DYNPROFIELD = '
COL1' 29 * STEPL = 0 30 WINDOW_TITLE = 'WINDOW--TITLE' 31 * VALUE = '' 32 VALUE_ORG = 'S'“C表示cell,S表示structure 33 * MULTIPLE_CHOICE = 'X'"多項選擇,用於SELECT-OPTIONS 34 * DISPLAY = 'F'"C則只能顯示,不能選擇 35 CALLBACK_PROGRAM = sy-repid 36 * CALLBACK_FORM = ' ' 37 * MARK_TAB = 38 * IMPORTING 39 * USER_RESET = 40 TABLES 41 VALUE_TAB = ITAB 42 * FIELD_TAB = FIELD_TAB 43 * RETURN_TAB = 44 * DYNPFLD_MAPPING = 45 EXCEPTIONS 46 PARAMETER_ERROR = 1 47 NO_VALUES_FOUND = 2 48 OTHERS = 3 49 . 50 IF SY-SUBRC <> 0. 51 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 52 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 53 ENDIF. 54 55 ENDFORM.