众所周知,在调用F4 help的时候,显示的字段的text是和数据库的字段相关的,那么在abap中如何修改该字段的text呢?敬请参考以下解决方法,希望对大家有所帮助。 
首先要定义几个变量: RETFIELD:这个就是数据库中的字段的名字 I_TAB: 这个是存放该帮助字段的具体值的表 I_FIELD: 这个就是存放该字段的相关信息的表 然后调用下面的form,把相关的变量传进去 PERFORM GET_FIELDS_OF_VALUE_TAB TABLES I_MBLNR I_FIELD CHANGING L_RETFIELD . FORM GET_FIELDS_OF_VALUE_TAB TABLES VALUE_TAB FIELD_TAB STRUCTURE DFIES CHANGING RETFIELD LIKE DFIES-FIELDNAME. DATA HLP(61). DATA OFFSET LIKE DFIES-OFFSET. DATA DFIES_ZWI LIKE DFIES. DATA DTELINFO_WA TYPE DTELINFO. DATA: TABNAME LIKE DD03P-TABNAME, LFIELDNAME LIKE DFIES-LFIELDNAME. FIELD-SYMBOLS: . DATA: I LIKE SY-INDEX. DATA: N(4) TYPE N. DESCRIBE FIELD VALUE_TAB HELP-ID HLP. DO. I = SY-INDEX. ASSIGN COMPONENT I OF STRUCTURE VALUE_TAB TO . IF SY-SUBRC <> 0 . EXIT. ENDIF. DESCRIBE FIELD HELP-ID HLP. SPLIT HLP AT '-' INTO TABNAME LFIELDNAME. CALL FUNCTION 'DDIF_FIELDINFO_GET' EXPORTING TABNAME = TABNAME LFIELDNAME = LFIELDNAME ALL_TYPES = 'X' IMPORTING DFIES_WA = DFIES_ZWI EXCEPTIONS NOT_FOUND = 1 INTERNAL_ERROR = 2 OTHERS = 3. CHECK SY-SUBRC = 0. DESCRIBE DISTANCE BETWEEN VALUE_TAB AND INTO DFIES_ZWI-OFFSET IN BYTE MODE. CLEAR DFIES_ZWI-TABNAME. DFIES_ZWI-POSITION = I. N = I. CONCATENATE 'F' N INTO DFIES_ZWI-FIELDNAME. DFIES_ZWI-MASK+2(1) = 'X'. CLEAR: DFIES_ZWI-F4AVAILABL, DTELINFO_WA. CALL FUNCTION 'DDIF_NAMETAB_GET' EXPORTING TABNAME = DFIES_ZWI-ROLLNAME ALL_TYPES = 'X' IMPORTING DTELINFO_WA = DTELINFO_WA EXCEPTIONS OTHERS = 0. DFIES_ZWI-F4AVAILABL = DTELINFO_WA-F4AVAILABL. APPEND DFIES_ZWI TO FIELD_TAB. ENDDO. ASSIGN COMPONENT RETFIELD OF STRUCTURE VALUE_TAB TO <F>. DESCRIBE DISTANCE BETWEEN VALUE_TAB AND INTO OFFSET IN BYTE MODE. READ TABLE FIELD_TAB WITH KEY OFFSET = OFFSET. CHECK SY-SUBRC = 0. RETFIELD = FIELD_TAB-FIELDNAME. ENDFORM. " GET_FIELDS_OF_VALUE_TAB
然后修改得到的I_FIELD中的关于字段的text的值 LOOP AT I_FIELD . I_FIELD-REPTEXT = 'xxxx' . “这个就是修改字段text的 MODIFY I_FIELD . ENDLOOP .
最后调用F4 help的函数,把得到的字段的值和字段的属性的表传进去 CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING RETFIELD = 'MBLNR' DYNPPROG = SY-REPID DYNPNR = SY-DYNNR DYNPROFIELD = L_FIELD VALUE_ORG = 'S' WINDOW_TITLE = 'xxxx' “帮助画面的title TABLES VALUE_TAB = I_TAB FIELD_TAB = I_FIELD EXCEPTIONS PARAMETER_ERROR = 1 NO_VALUES_FOUND = 2 OTHERS = 3. |