如何使用FM EXIT在搜索帮助中的字段中传递值

2020-09-26 09:58发布

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

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


我有一个搜索帮助,其中有许多字段要显示给用户以应用值。 我希望用户提供3个字段 APOFASI-SKOPOS-KATDANL 。 在EXIT FM的 CALLCONTROL-STEP = SELECT 中,我想在变量中获取这些值,然后进行一些选择并找到另一个字段APOFASISAP。 我试图将搜索帮助的选择字段传递回具有我发现的值的APOFASSISAP字段,并且APOFASI中的值为空白。 代码是:

读取表shlp-selopt INTO wa_shlp_selopt
                             WITH KEY shlpfield ='APOFASI'。
 lv_apofasi = wa_shlp_selopt-low。
 ls_result-apofasi =''。
 如果lv_apofasi <>''。
   wa_shlp_selopt-low =''。
   从wa_shlp_selopt索引sy-tabix修改shlp-selopt。
 万一。

 读取表shlp-selopt使用键shlpfield ='SKOPOS'进入wa_shlp_selopt。
 lv_skopos = wa_shlp_selopt-low。

 读取表shlp-selopt使用键shlpfield ='KATDANL'进入wa_shlp_selopt。
 lv_katdanl = wa_shlp_selopt-low。

 选择单个apofasisap INTO lv_apofasisap_arx
   来自zsl_glk_apof
   apofasi = lv_apofasi。

 选择*从zsl_glk_apof_tr
   在哪里apofasisap_trp = lv_apofasisap_arx。

   wa_apofasisap_tr-apofasisap_tr = zsl_glk_apof_tr-apofasisap_tr。
   将wa_apofasisap_tr附加到it_apofasisap_tr。

 ENDSELECT。
 wa_shlp_selopt-shlpname ='ZAPOF_TROP'。
 wa_shlp_selopt-shlpfield ='APOFASISAP'。
 wa_shlp_selopt-sign ='I'。
 wa_shlp_selopt-option ='EQ'。
 wa_shlp_selopt-low = wa_apofasisap_tr-apofasisap_tr。
 附加wa_shlp_selopt至shlp-selopt。

此代码不会将值替换/添加到适当的字段。

有人可以帮忙吗?

谢谢,

Elias

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

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


我有一个搜索帮助,其中有许多字段要显示给用户以应用值。 我希望用户提供3个字段 APOFASI-SKOPOS-KATDANL 。 在EXIT FM的 CALLCONTROL-STEP = SELECT 中,我想在变量中获取这些值,然后进行一些选择并找到另一个字段APOFASISAP。 我试图将搜索帮助的选择字段传递回具有我发现的值的APOFASSISAP字段,并且APOFASI中的值为空白。 代码是:

读取表shlp-selopt INTO wa_shlp_selopt
                             WITH KEY shlpfield ='APOFASI'。
 lv_apofasi = wa_shlp_selopt-low。
 ls_result-apofasi =''。
 如果lv_apofasi <>''。
   wa_shlp_selopt-low =''。
   从wa_shlp_selopt索引sy-tabix修改shlp-selopt。
 万一。

 读取表shlp-selopt使用键shlpfield ='SKOPOS'进入wa_shlp_selopt。
 lv_skopos = wa_shlp_selopt-low。

 读取表shlp-selopt使用键shlpfield ='KATDANL'进入wa_shlp_selopt。
 lv_katdanl = wa_shlp_selopt-low。

 选择单个apofasisap INTO lv_apofasisap_arx
   来自zsl_glk_apof
   apofasi = lv_apofasi。

 选择*从zsl_glk_apof_tr
   在哪里apofasisap_trp = lv_apofasisap_arx。

   wa_apofasisap_tr-apofasisap_tr = zsl_glk_apof_tr-apofasisap_tr。
   将wa_apofasisap_tr附加到it_apofasisap_tr。

 ENDSELECT。
 wa_shlp_selopt-shlpname ='ZAPOF_TROP'。
 wa_shlp_selopt-shlpfield ='APOFASISAP'。
 wa_shlp_selopt-sign ='I'。
 wa_shlp_selopt-option ='EQ'。
 wa_shlp_selopt-low = wa_apofasisap_tr-apofasisap_tr。
 附加wa_shlp_selopt至shlp-selopt。

此代码不会将值替换/添加到适当的字段。

有人可以帮忙吗?

谢谢,

Elias

付费偷看设置
发送
2条回答
哎,真难
1楼-- · 2020-09-26 10:19

您尝试过

  • 将APOFASISAP添加到输入参数(因此,请使用MODIFY itab语句而不是APPEND)
  • 将代码移至SELECT步骤,然后自己在出口中选择数据
ZJXianG
2楼-- · 2020-09-26 10:09

如果您的代码处于" SELECT"步骤中,那么我希望您自己从数据库中执行最终的SELECT,然后调用FM F4UT_RESULTS_MAP将结果传输到搜索帮助中,因此您 应该能够自己解决无价值?

如果您自己不执行最终选择,请提供更多信息,例如您是否更改了callcontrol-step值,例如 到" DISP",例如当结果已经在正确的" SELECT"步骤中进行了映射或" PRESEL",从而在没有必填字段的记录时返回到选择屏幕,因此用户将看到选择内容,并且下一次执行将通过 以下步骤?

一周热门 更多>