如何传递参数以搜索帮助

2020-09-10 02:04发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我已经为屏幕字段(区域)...

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

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


嗨,

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

1.国家/地区

2.地区。

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

请告诉我该怎么做。

谢谢。

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