2020-09-10 02:04发布
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我已经为屏幕字段(区域)... 显示全部
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我已经为屏幕字段(区域)创建了搜索帮助(zv_region),并将该搜索帮助(zv_region)分配给了屏幕字段(区域)的屏幕属性。 但是我的屏幕上有两个字段。 我不从表或结构中获取这两个字段。 我在模块池程序中声明为全局字段。
1.国家/地区
2.地区。
我想根据"国家"过滤"地区"。 例如,如果他们在国家/地区字段中输入" US",则他们单击仅需要填充美国所有州的地区字段的搜索帮助。
请告诉我该怎么做。
谢谢。
您好,Sankar,
我已经实现了与您相似的功能。 在这里,我利用fm F4IF_INT_TABLE_VALUE_REQUEST来填充值。 您首先复制该程序并运行它。 您会明白的。
&----
*&报告ZKun_F4HELP1 *
*&*
报告ZKUN_F4HELP1。
数据:开始于价值,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
值结束。
数据:PROGNAME(如SY-REPID)
DYNNUM LIKE SY-DYNNR,
DYNPREAD的DYNPRO_VALUES类型表,
FIELD_VALUE之类的DYNPRO_VALUES,
VALUES_TAB类似于带有标题行的值表。
带有框架标题文本008的B1块的选择屏幕开始。
参数:MATNR_N类似于MARA-MATNR义务,
MTART_N喜欢MARA-MTART。
B1块的选择屏幕结尾。
在MATNR_N的值请求的选择屏幕上。
CALL FUNCTION'F4IF_FIELD_VALUE_REQUEST'
导出
tabname ='MARA'
字段名称='MATNR'
SEARCHHELP =''
SHLPPARAM =''
DYNPPROG = PROGNAME
DYNPNR = DYNNUM
DYNPROFIELD ='MATNR_N'
STEPL = 0
VALUE =''
MULTIPLE_CHOICE =''
DISPLAY =''
SUPPRESS_RECORDLIST =''
CALLBACK_PROGRAM =''
CALLBACK_FORM =''
SELECTION_SCREEN =''
导入
USER_RESET =
表
RETURN_TAB = VALUES_TAB
例外情况
FIELD_NOT_FOUND = 1
NO_HELP_FOR_FIELD = 2
INCONSISTENT_HELP = 3
NO_VALUES_FOUND = 4
其他= 5
。
IF sy-subrc <> 0。
消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
ENDIF。
在选择屏幕输出上。
PROGNAME = SY-REPID。
DYNNUM = SY-DYNNR。
清除:FIELD_VALUE,DYNPRO_VALUES。
FIELD_VALUE-FIELDNAME ='MATNR_N'。
将FIELD_VALUE附加到DYNPRO_VALUES。
在MTART_N的值请求选择屏幕上。
CALL FUNCTION'DYNP_VALUES_READ'
dyname = PROGNAME
dynumb = DYNNUM
TRANSLATE_TO_UPPER ='X'
请求=''
PERFORM_CONVERSION_EXITS =''
PERFORM_INPUT_CONVERSION =''
DETERMINE_LOOP_INDEX =''
表格
dynpfields = dynpro_values
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
其他= 11
将表DYNPRO_VALUES索引1读入FIELD_VALUE。
从mara中选择matnr mtart到表values_tab中,其中matnr =
FIELD_VALUE-FIELDVALUE。
CALL FUNCTION'F4IF_INT_TABLE_VALUE_REQUEST'
DDIC_STRUCTURE =''
retfield ='MTART'
PVALKEY =''
DYNPROFIELD ='MTART_N'
WINDOW_TITLE =
VALUE_ORG ='S'
MARK_TAB =
value_tab = VALUES_TAB
FIELD_TAB =
RETURN_TAB =
DYNPFLD_MAPPING =
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
其他= 3
此致
库纳尔
注意:您只需要针对国家和地区字段修改此程序,而不用修改matnr和mtart。
消息的编辑者:Kunal Kumar
最多设置5个标签!
您好,Sankar,
我已经实现了与您相似的功能。 在这里,我利用fm F4IF_INT_TABLE_VALUE_REQUEST来填充值。 您首先复制该程序并运行它。 您会明白的。
&----
*&报告ZKun_F4HELP1 *
*&*
&----
*&*
*&*
&----
报告ZKUN_F4HELP1。
数据:开始于价值,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
值结束。
数据:PROGNAME(如SY-REPID)
DYNNUM LIKE SY-DYNNR,
DYNPREAD的DYNPRO_VALUES类型表,
FIELD_VALUE之类的DYNPRO_VALUES,
VALUES_TAB类似于带有标题行的值表。
带有框架标题文本008的B1块的选择屏幕开始。
参数:MATNR_N类似于MARA-MATNR义务,
MTART_N喜欢MARA-MTART。
B1块的选择屏幕结尾。
在MATNR_N的值请求的选择屏幕上。
CALL FUNCTION'F4IF_FIELD_VALUE_REQUEST'
导出
tabname ='MARA'
字段名称='MATNR'
SEARCHHELP =''
SHLPPARAM =''
DYNPPROG = PROGNAME
DYNPNR = DYNNUM
DYNPROFIELD ='MATNR_N'
STEPL = 0
VALUE =''
MULTIPLE_CHOICE =''
DISPLAY =''
SUPPRESS_RECORDLIST =''
CALLBACK_PROGRAM =''
CALLBACK_FORM =''
SELECTION_SCREEN =''
导入
USER_RESET =
表
RETURN_TAB = VALUES_TAB
例外情况
FIELD_NOT_FOUND = 1
NO_HELP_FOR_FIELD = 2
INCONSISTENT_HELP = 3
NO_VALUES_FOUND = 4
其他= 5
。
IF sy-subrc <> 0。
消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
ENDIF。
在选择屏幕输出上。
PROGNAME = SY-REPID。
DYNNUM = SY-DYNNR。
清除:FIELD_VALUE,DYNPRO_VALUES。
FIELD_VALUE-FIELDNAME ='MATNR_N'。
将FIELD_VALUE附加到DYNPRO_VALUES。
在MTART_N的值请求选择屏幕上。
CALL FUNCTION'DYNP_VALUES_READ'
导出
dyname = PROGNAME
dynumb = DYNNUM
TRANSLATE_TO_UPPER ='X'
请求=''
PERFORM_CONVERSION_EXITS =''
PERFORM_INPUT_CONVERSION =''
DETERMINE_LOOP_INDEX =''
表格
dynpfields = dynpro_values
例外情况
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
其他= 11
。
IF sy-subrc <> 0。
消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
ENDIF。
将表DYNPRO_VALUES索引1读入FIELD_VALUE。
从mara中选择matnr mtart到表values_tab中,其中matnr =
FIELD_VALUE-FIELDVALUE。
CALL FUNCTION'F4IF_INT_TABLE_VALUE_REQUEST'
导出
DDIC_STRUCTURE =''
retfield ='MTART'
PVALKEY =''
DYNPPROG = PROGNAME
DYNPNR = DYNNUM
DYNPROFIELD ='MTART_N'
STEPL = 0
WINDOW_TITLE =
VALUE =''
VALUE_ORG ='S'
MULTIPLE_CHOICE =''
DISPLAY =''
CALLBACK_PROGRAM =''
CALLBACK_FORM =''
MARK_TAB =
导入
USER_RESET =
表格
value_tab = VALUES_TAB
FIELD_TAB =
RETURN_TAB =
DYNPFLD_MAPPING =
例外情况
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
其他= 3
。
IF sy-subrc <> 0。
消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
ENDIF。
此致
库纳尔
注意:您只需要针对国家和地区字段修改此程序,而不用修改matnr和mtart。
消息的编辑者:Kunal Kumar
一周热门 更多>