2020-09-10 02:04发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我已经为屏幕字段(区域)创建了搜索帮助(zv_region),并将该搜索帮助(zv_region)分配给了屏幕字段(区域)的屏幕属性。 但是我的屏幕上有两个字段。 我不从表或结构中获取这两个字段。 我在模块池程序中声明为全局字段。
1.国家/地区
2.地区。
我想根据"国家"过滤"地区"。 例如,如果他们在国家/地区字段中输入" US",则他们单击仅需要填充美国所有州的地区字段的搜索帮助。
请告诉我该怎么做。
谢谢。
使用 POV 事件的这两个字段
和
构建一个Itab。
从dbtab中选择国家/地区 =国家(输入值)
到表itab中。
呼叫FN模块
POPUP_WITH_TABLE_DISPLAY
HI sankar, p>
1。 想要根据"国家"过滤"地区"。
2。 导入(在搜索帮助中)
3。 创建搜索帮助时,
有一个用于导入的复选框。
4。 在您的搜索帮助中,应该同时存在两个字段
a)国家
b)区域
5。 TICK导入国家/地区
6。 这意味着,如果在屏幕上
上有"国家/地区"字段,
则将其值导入搜索帮助中,
,然后它将过滤 并仅显示该国家/地区的值
。
7。 但是,如果
国家/地区的屏幕字段,
与搜索帮助中
国家/地区字段的名称(表字段名称)相同,则此概念有效。
致谢,
授予m。
您好,sankar,
您可以尝试选择值屏幕 请求事件,在这种情况下,您可以使用select语句根据国家/地区获取区域,然后使用该值。 或者,您也可以使用FM f4if_field_value_request。 此功能用于避免显示标准的F4帮助,并显示您的自定义F4帮助。
希望这对您有帮助
致谢
Sumit Bhutani
您好,Sankar,
我的建议是,您不需要此处的搜索帮助。
您可以执行此操作 而是:
(我想这是模块池报告)
在屏幕的流逻辑中,
最后使用此代码...
值请求过程。
字段区域模块f4_region。
然后在模块f4_region中。
首先根据选择区域
然后使用FM
F4_FIELD_ON_VALUE_REQUEST
****使用此功能。
** **请奖励有用的答复
我已经实现了与您相似的功能。 在这里,我利用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个标签!
使用 POV 事件的这两个字段
和
构建一个Itab。
从dbtab中选择国家/地区 =国家(输入值)
到表itab中。
呼叫FN模块
POPUP_WITH_TABLE_DISPLAY
HI sankar, p>
1。 想要根据"国家"过滤"地区"。
2。 导入(在搜索帮助中)
3。 创建搜索帮助时,
有一个用于导入的复选框。
4。 在您的搜索帮助中,应该同时存在两个字段
a)国家
b)区域
5。 TICK导入国家/地区
6。 这意味着,如果在屏幕上
上有"国家/地区"字段,
则将其值导入搜索帮助中,
,然后它将过滤 并仅显示该国家/地区的值
。
7。 但是,如果
国家/地区的屏幕字段,
与搜索帮助中
国家/地区字段的名称(表字段名称)相同,则此概念有效。
致谢,
授予m。
您好,sankar,
您可以尝试选择值屏幕 请求事件,在这种情况下,您可以使用select语句根据国家/地区获取区域,然后使用该值。 或者,您也可以使用FM f4if_field_value_request。 此功能用于避免显示标准的F4帮助,并显示您的自定义F4帮助。
希望这对您有帮助
致谢
Sumit Bhutani
您好,Sankar,
我的建议是,您不需要此处的搜索帮助。
您可以执行此操作 而是:
(我想这是模块池报告)
在屏幕的流逻辑中,
最后使用此代码...
值请求过程。
字段区域模块f4_region。
然后在模块f4_region中。
首先根据选择区域
然后使用FM
F4_FIELD_ON_VALUE_REQUEST
****使用此功能。
** **请奖励有用的答复
您好,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
一周热门 更多>