ABAP:add f4 help in table control
步骤:
1.声明辅助画面显示字段的内表结构以及内表
2.画面初期处理里面把表的数据取出到1的内表里
3.PROCESS ON VALUE-REQUEST.里面追加help用MODULE到对应列
4.编辑help用MODULE
步骤1
TYPES:
BEGIN OF TYP_PRART,
PRART TYPE TCJ1T-PRART, "Typ
PRATX TYPE TCJ1T-PRATX, "TEXT
END OF TYP_PRART,
TD_TYP_PRART type STANDARD TABLE OF TYP_PRART
DATA:
TD_TCJ1T TYPE TD_TYP_PRART.
步骤2
MODULE INIT_9000 OUTPUT.
REFRESH: TD_TCJ1T.
SELECT TCJ1~PRART TCJ1T~PRATX
INTO CORRESPONDING FIELDS OF TABLE TD_TCJ1T
FROM TCJ1
LEFT OUTER JOIN TCJ1T
ON TCJ1~PRART = TCJ1T~PRART
AND TCJ1T~LANGU = 'JP'
.
ENDMODULE.
步骤3
PROCESS ON VALUE-REQUEST.
FIELD WA_WBS-PRART MODULE F4_PRART. "Table control field.
步骤4 MODULE F4_PRART INPUT.
DATA : L_DYNINDEX TYPE SY-STEPL,
LT_DYNPREAD TYPE TABLE OF DYNPREAD,
LS_DYNPREAD TYPE DYNPREAD,
LT_RETURN TYPE TABLE OF DDSHRETVAL,
LS_RETURN TYPE DDSHRETVAL
.
CALL FUNCTION 'DYNP_GET_STEPL'
IMPORTING
POVSTEPL = L_DYNINDEX
.
LS_DYNPREAD-STEPL = L_DYNINDEX.
LS_DYNPREAD-FIELDNAME = 'WA_WBS-PRART'.
APPEND LS_DYNPREAD TO LT_DYNPREAD.
" Read field contents on screen and transport field to help processor.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = SY-REPID
DYNUMB = SY-DYNNR
TRANSLATE_TO_UPPER = 'X'
TABLES
DYNPFIELDS = LT_DYNPREAD
.
REFRESH: LT_RETURN.
"call function module
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'PRART' "Internal table field
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR "screen number
DYNPROFIELD = 'WA_WBS-PRART'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = TD_TCJ1T
RETURN_TAB = LT_RETURN
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
CHECK SY-SUBRC = 0.
READ TABLE LT_RETURN INTO LS_RETURN WITH KEY FIELDNAME = 'PRART'.
IF SY-SUBRC = 0.
WA_WBS-PRART = LS_RETURN-FIELDVAL.
ENDIF.
ENDMODULE. " F4_PRART
1.声明辅助画面显示字段的内表结构以及内表
2.画面初期处理里面把表的数据取出到1的内表里
3.PROCESS ON VALUE-REQUEST.里面追加help用MODULE到对应列
4.编辑help用MODULE
步骤1
TYPES:
BEGIN OF TYP_PRART,
PRART TYPE TCJ1T-PRART, "Typ
PRATX TYPE TCJ1T-PRATX, "TEXT
END OF TYP_PRART,
TD_TYP_PRART type STANDARD TABLE OF TYP_PRART
DATA:
TD_TCJ1T TYPE TD_TYP_PRART.
步骤2
MODULE INIT_9000 OUTPUT.
REFRESH: TD_TCJ1T.
SELECT TCJ1~PRART TCJ1T~PRATX
INTO CORRESPONDING FIELDS OF TABLE TD_TCJ1T
FROM TCJ1
LEFT OUTER JOIN TCJ1T
ON TCJ1~PRART = TCJ1T~PRART
AND TCJ1T~LANGU = 'JP'
.
ENDMODULE.
步骤3
PROCESS ON VALUE-REQUEST.
FIELD WA_WBS-PRART MODULE F4_PRART. "Table control field.
步骤4 MODULE F4_PRART INPUT.
DATA : L_DYNINDEX TYPE SY-STEPL,
LT_DYNPREAD TYPE TABLE OF DYNPREAD,
LS_DYNPREAD TYPE DYNPREAD,
LT_RETURN TYPE TABLE OF DDSHRETVAL,
LS_RETURN TYPE DDSHRETVAL
.
CALL FUNCTION 'DYNP_GET_STEPL'
IMPORTING
POVSTEPL = L_DYNINDEX
.
LS_DYNPREAD-STEPL = L_DYNINDEX.
LS_DYNPREAD-FIELDNAME = 'WA_WBS-PRART'.
APPEND LS_DYNPREAD TO LT_DYNPREAD.
" Read field contents on screen and transport field to help processor.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = SY-REPID
DYNUMB = SY-DYNNR
TRANSLATE_TO_UPPER = 'X'
TABLES
DYNPFIELDS = LT_DYNPREAD
.
REFRESH: LT_RETURN.
"call function module
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'PRART' "Internal table field
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR "screen number
DYNPROFIELD = 'WA_WBS-PRART'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = TD_TCJ1T
RETURN_TAB = LT_RETURN
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
CHECK SY-SUBRC = 0.
READ TABLE LT_RETURN INTO LS_RETURN WITH KEY FIELDNAME = 'PRART'.
IF SY-SUBRC = 0.
WA_WBS-PRART = LS_RETURN-FIELDVAL.
ENDIF.
ENDMODULE. " F4_PRART