基本搜索可提供不同的值。 请帮助!

2020-09-07 10:56发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我必须为Plant...

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

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


专家们,

我必须为Plant字段创建搜索帮助。 Plant字段在自定义表YPLANT_DET中。 不幸的是,此表中的植物字段不是唯一的。

因此基本搜索帮助将显示重复的植物条目。

如何自定义基本搜索帮助,以使我仅在F4帮助上获得与众不同的值?

请帮忙!

谢谢

Gopal

6条回答
打个大熊猫
2020-09-07 11:51

嗨,

您需要使用搜索帮助出口...

我在下面的示例代码中附加了.. 在适当的位置写入选择查询,并将内部表传递给代码中提到的子FM。

代码示例

-


开始 代码示例-


-


包含LZSHLPTOP的起点-


功能池zshlp。 " MESSAGE-ID ..

TYPE-POOLS shlp。

TYPES:

t_knvp的开始,

kunnr TYPE kna1-kunnr ,

name1 TYPE kna1-name1,

ort01 TYPE ort01_gp,

stras TYPE stras_gp,

kunn2 TYPE knvp-kunn2,

name1_2类型kna1-name1,

t_knvp的结尾。

数据:i_knvp t_knvp类型表,

wa_knvp类型t_knvp,

wa_selopt TYPE ddshselopt,

wa_fielddescr TYPE dfies。

DATA:

rc TYPE i,

v_tabix LIKE sy-tabix。

范围:r_ktokd FOR kna1-ktokd,

r_mcod1 FOR kna1-name1,

r_sortl FOR kna1-sortl,

< p> r_kunnr FOR kna1-kunnr,

r_ort01 FOR kna1-ort01。

-


结束符LZSHLPTOP-


-


功能模块Z_CUSTOM_SEARCH的开头-


功能z_custom_search。

*" ----


""本地接口:

*"表

*" SHLP_TAB类型SHLP_DESCR_TAB_T

*" RECORD_TAB结构SEAHLPRES

*"更改

*"值(SHLP)类型SHLP_DESCR_T

*"值(CALLCONTROL)类似于DDSHF4CTR 如果您不想执行此步骤,则L结构DDSHF4CTRL

*" ----


  • 立即退出

CASE调用控制步骤。

*" ----


  • STEP SELECT(选择值)

*" ----


  • 此步骤可用于完全替代数据选择。

  • 要跳过标准选择,应按如下所示返回" DISP"

  • 在CALLCONTROL-STEP中执行。

  • 通常应在此步骤后填写RECORD_TAB。

在"选择"时。

  • < p>更改出现在搜索帮助命中列表上的列标题文本

将LOOP AT shlp-fielddescr转换为wa_fielddescr。

v_tabix = sy-tabix。

case wa_fielddescr-fieldname。

当'KUNNR'时。

wa_fielddescr-fieldtext ='ShipToCustomer#'。

wa_fielddescr-reptext = 'ShipToCustomer#'。

wa_fielddescr-scrtext_s ='ShipTo#'。

wa_fielddescr-scrtext_m ='ShipToCustomer#'。

wa_fielddescr-scrtext_l ='ShipToCusto mer#'。

从wa_fielddescr修改shlp-fielddescr

索引v_tabix运输字段文本reptext scrtext_s

scrtext_m scrtext_l。

当'KUNN2 '。

wa_fielddescr-reptext ='BillToCustomer#'。

wa_fielddescr-fieldtext ='BillToCustomer#'。

wa_fielddescr-scrtext_s ='BillTo#'。

wa_fielddescr-scrtext_m ='BillToCustomer#'。

wa_fielddescr-scrtext_l ='BillToCustomer#'。

从wa_fielddescr

<>修改shlp-fielddescr p> INDEX v_tabix TRANSPORTING字段文本reptext scrtext_s

scrtext_m scrtext_l。

当'NAME1'。

wa_fielddescr-fieldtext ='ShipToCustomer Name'。

wa_fielddescr-reptext ='ShipToCustomer Name'。

wa_fielddescr-scrtext_s ='ShipTo Name'。

wa_fielddescr-scrtext_m ='ShipToCustomer Name'。

wa_fielddescr-scrtext_l ='ShipToCustomer Name'。

从wa_fielddescr修改shlp-fielddescr

索引v_tabix运输字段文本reptext scrtext_s

scrtext_m scrtext_l。

ENDCASE。

ENDLOOP。

  • 根据选择选项

免费选择向对方客户付款的票据:r_ktokd,r_kunnr,r_sortl,r_mcod1,r_ort01,i_knvp。

LOOP AT shlp-selopt INTO wa_selopt。

  • 为搜索帮助的5个选择选项建立范围

  • case wa_selopt-shlpfield。

    当" KTOKD"时。

    r_ktokd-sign = wa_selopt-sign。

    r_ktokd-option = wa_selopt- 选项。

    r_ktokd-low = wa_selopt-low。

    r_ktokd-high = wa_selopt-high。

    APPEND r_ktokd。

    清除 r_ktokd。

    当" KUNNR"时。

    r_kunnr-sign = wa_selopt-sign。

    r_kunnr-option = wa_selopt-option。

    r_kunnr-low = wa_selopt-low。

    r_kunnr-high = wa_selopt-high。

    APPEND r_kunnr。

    清除r_kunnr。

    " SORTL"时。

    r_sortl-sign = wa_selopt-sign。

    r_sortl-option = wa_selopt-option。

    r_sortl-low = wa_selopt-low

    r_sortl-high = wa_selopt-high。

    APPEND r_sortl。

    清除r_sortl。

    " MCOD1"时。

    r_mcod1-sign = wa_selopt-si gn。

    r_mcod1-option = wa_selopt-option。

    r_mcod1-low = wa_selopt-low。

    r_mcod1-high = wa_selopt-high。

    >

    APPEND r_mcod1。

    清除r_mcod1。

    " ORT01"时。

    r_ort01-sign = wa_selopt-sign。

    r_ort01-option = wa_selopt-option。

    r_ort01-low = wa_selopt-low。

    r_ort01-high = wa_selopt-high。

    APPEND r_ort01。

    清除r_ort01。

    ENDCASE。

    ENDLOOP。

    • 从KNVP表中检索上述选定范围的数据

    • 执行查询以检索数据以获取搜索帮助

选择knvp〜kunnr

kna1 〜name1

kna1〜ort01

kna1〜stras

knvp〜kunn2

INTO TABLE i_knvp

FROM knvp

内部联接kna1

打开knvp kunnr = kna1 kunnr

在哪里

knvp〜parvw = 'RE'AND"收款方

knvp〜kunnr in r_kunnr和

kna1〜ktokd in r_ktokd和

kna1〜sortl in r_sortl AND

kna1〜mcod1输入r_mcod1和

kna1〜ort01输入r_ort01。

检查sy-subrc = 0。

删除A 来自i_knvp的DJACENT副本。

  • 从kna1中选择kunn2的短文本。

  • 将所有选定的记录移至Record_Tab

在i_knvp上进入wa_knvp。

v_tabix = sy-tabix。

从kna1选择单个name1

INTO wa_knvp-name1_2

此处kunnr = wa_knvp-kunnr。

将wa_knvp移动到record_tab-string。

APPEND record_tab。

清除record_tab。

从wa_knvp索引i_knvp索引v_tabix中修改。

清除wa_knvp。

ENDLOOP。

rc = 0。

IF rc = 0。

callcontrol-step ='DISP'。

ELSE。

callcontrol-step ='EXIT'。

ENDIF。

退出。 "不要在此调用中另外处理STEP DISP。

当" PRESEL1"时。

当" DISP"时。

当其他时间。

ENDCASE。

ENDFUNCTION。

-


功能模块Z_CUSTOM_SEARCH的结尾-


-


代码示例结束-


保存并在每个步骤中激活。

问候

Chandra

(如果有帮助,可以奖励积分)

一周热门 更多>