Abap 带有动态匹配代码的选择屏幕参数
我有一系列的输入参数,其中有一个匹配代码,我需要这个字段(匹配代码)将依赖于一个文本参数。例如,类似这样的情况:Abap 带有动态匹配代码的选择屏幕参数,abap,Abap,我有一系列的输入参数,其中有一个匹配代码,我需要这个字段(匹配代码)将依赖于一个文本参数。例如,类似这样的情况: SELECTION-SCREEN BEGIN OF BLOCK block02 WITH FRAME TITLE text-002. PARAMETERS: p_mona TYPE ZTIPOSOL GROUP rad1 MATCHCODE OBJECT ZFIMC002, p_fcomp TYPE SY-DATUM MODIF ID A OBLIGATO
SELECTION-SCREEN BEGIN OF BLOCK block02 WITH FRAME TITLE text-002.
PARAMETERS:
p_mona TYPE ZTIPOSOL GROUP rad1 MATCHCODE OBJECT ZFIMC002,
p_fcomp TYPE SY-DATUM MODIF ID A OBLIGATORY.
SELECTION-SCREEN END OF BLOCK block02
ABAP Development
不,你不能。但是,您可以在VALUE-REQUEST事件的选择屏幕上动态填充搜索帮助值:
DATA: LT_VBAK TYPE STANDARD TABLE OF VBAK.
PARAMETER P_VBELN TYPE VBELN.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VBELN.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'VBELN'
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'P_VBELN'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = LT_VBAK
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
数据:LT_VBAK类型VBAK的标准表。
参数P_VBELN类型VBELN。
在P_VBELN的值请求的选择屏幕上。
调用函数“F4IF\u INT\u TABLE\u VALUE\u REQUEST”
出口
RETFIELD='VBELN'
DYNPPROG=SY-REPID
DYNPNR=SY-DYNNR
dynprofeld='P_VBELN'
价值组织='S'
桌子
值选项卡=LT\u VBAK
例外情况
参数_错误=1
未找到\u值\u=2
其他=3。
如果SY-SUBRC为0。
消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
使用SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
恩迪夫。
其中,LT_VBAK
是一个需要填充值的内部表。
如果您的值依赖于另一个选择屏幕参数,请使用DYNP\u values\u READ
FM从屏幕读取它们
另一种方法不是动态填充值,而是在DDIC中创建单个搜索帮助,该帮助将根据某些条件控制SHELP行为。不,不能。但是,您可以在VALUE-REQUEST事件的选择屏幕上动态填充搜索帮助值:
DATA: LT_VBAK TYPE STANDARD TABLE OF VBAK.
PARAMETER P_VBELN TYPE VBELN.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VBELN.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'VBELN'
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'P_VBELN'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = LT_VBAK
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
数据:LT_VBAK类型VBAK的标准表。
参数P_VBELN类型VBELN。
在P_VBELN的值请求的选择屏幕上。
调用函数“F4IF\u INT\u TABLE\u VALUE\u REQUEST”
出口
RETFIELD='VBELN'
DYNPPROG=SY-REPID
DYNPNR=SY-DYNNR
dynprofeld='P_VBELN'
价值组织='S'
桌子
值选项卡=LT\u VBAK
例外情况
参数_错误=1
未找到\u值\u=2
其他=3。
如果SY-SUBRC为0。
消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
使用SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
恩迪夫。
其中,LT_VBAK
是一个需要填充值的内部表。
如果您的值依赖于另一个选择屏幕参数,请使用DYNP\u values\u READ
FM从屏幕读取它们
另一种方法不是动态填充值,而是在DDIC中创建一个搜索帮助,该帮助将根据某些条件控制SHELP行为。当您说“依赖于文本参数”时是什么意思?当您说“依赖于文本参数”时是什么意思?