如何传递参数以搜索帮助

2020-09-10 02:04发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我已经为屏幕字段(区域)创建了搜索帮助(zv_region),并将该搜索帮助(zv_region)分配给了屏幕字段(区域)的屏幕属性。 但是我的屏幕上有两个字段。 我不从表或结构中获取这两个字段。 我在模块池程序中声明为全局字段。

1.国家/地区

2.地区。

我想根据"国家"过滤"地区"。 例如,如果他们在国家/地区字段中输入" US",则他们单击仅需要填充美国所有州的地区字段的搜索帮助。

请告诉我该怎么做。

谢谢。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我已经为屏幕字段(区域)创建了搜索帮助(zv_region),并将该搜索帮助(zv_region)分配给了屏幕字段(区域)的屏幕属性。 但是我的屏幕上有两个字段。 我不从表或结构中获取这两个字段。 我在模块池程序中声明为全局字段。

1.国家/地区

2.地区。

我想根据"国家"过滤"地区"。 例如,如果他们在国家/地区字段中输入" US",则他们单击仅需要填充美国所有州的地区字段的搜索帮助。

请告诉我该怎么做。

谢谢。

付费偷看设置
发送
5条回答
SKY徐
1楼-- · 2020-09-10 02:49

使用 POV 事件的这两个字段

构建一个Itab。

从dbtab中选择国家/地区 =国家(输入值)

到表itab中。

呼叫FN模块

POPUP_WITH_TABLE_DISPLAY

半个程序猿
2楼-- · 2020-09-10 02:42

HI sankar,

1。 想要根据"国家"过滤"地区"。

2。 导入(在搜索帮助中)

3。 创建搜索帮助时,

有一个用于导入的复选框。

4。 在您的搜索帮助中,应该同时存在两个字段

a)国家

b)区域

5。 TICK导入国家/地区

6。 这意味着,如果在屏幕上

上有"国家/地区"字段,

则将其值导入搜索帮助中,

,然后它将过滤 并仅显示该国家/地区的值

7。 但是,如果

国家/地区的屏幕字段,

与搜索帮助中

国家/地区字段的名称(表字段名称)相同,则此概念有效。

致谢,

授予m。

d56caomao
3楼-- · 2020-09-10 02:43

您好,sankar,

您可以尝试选择值屏幕 请求事件,在这种情况下,您可以使用select语句根据国家/地区获取区域,然后使用该值。 或者,您也可以使用FM f4if_field_value_request。 此功能用于避免显示标准的F4帮助,并显示您的自定义F4帮助。

希望这对您有帮助

致谢

Sumit Bhutani

Violet凡
4楼-- · 2020-09-10 02:33

您好,Sankar,

我的建议是,您不需要此处的搜索帮助。

您可以执行此操作 而是:

(我想这是模块池报告)

在屏幕的流逻辑中,

最后使用此代码...

值请求过程。

字段区域模块f4_region。

然后在模块f4_region中。

首先根据选择区域

然后使用FM

F4_FIELD_ON_VALUE_REQUEST

****使用此功能。

** **请奖励有用的答复

哎,真难
5楼-- · 2020-09-10 02:43

您好,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

    一周热门 更多>