2020-09-07 10:56发布
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我必须为Plant... 显示全部
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我必须为Plant字段创建搜索帮助。 Plant字段在自定义表YPLANT_DET中。 不幸的是,此表中的植物字段不是唯一的。
因此基本搜索帮助将显示重复的植物条目。
如何自定义基本搜索帮助,以使我仅在F4帮助上获得与众不同的值?
请帮忙!
谢谢
Gopal
嗨,
您需要使用搜索帮助出口...
我在下面的示例代码中附加了.. 在适当的位置写入选择查询,并将内部表传递给代码中提到的子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,
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(选择值)
此步骤可用于完全替代数据选择。 p>
要跳过标准选择,应按如下所示返回" DISP"
在CALLCONTROL-STEP中执行。
通常应在此步骤后填写RECORD_TAB。
在"选择"时。
将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
当'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'。
ENDCASE。
ENDLOOP。
根据选择选项
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"时。 p>
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。
从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 p>
在i_knvp上进入wa_knvp。
从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。
rc = 0。
IF rc = 0。
callcontrol-step ='DISP'。
ELSE。
callcontrol-step ='EXIT'。 p>
ENDIF。
退出。 "不要在此调用中另外处理STEP DISP。
当" PRESEL1"时。
当" DISP"时。
当其他时间。
ENDFUNCTION。
功能模块Z_CUSTOM_SEARCH的结尾-
代码示例结束-
保存并在每个步骤中激活。
问候
Chandra p>
(如果有帮助,可以奖励积分)
最多设置5个标签!
嗨,
您需要使用搜索帮助出口...
我在下面的示例代码中附加了.. 在适当的位置写入选择查询,并将内部表传递给代码中提到的子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
*" ----
立即退出
li>CASE调用控制步骤。
*" ----
STEP SELECT(选择值)
*" ----
此步骤可用于完全替代数据选择。 p>
要跳过标准选择,应按如下所示返回" DISP"
在CALLCONTROL-STEP中执行。
通常应在此步骤后填写RECORD_TAB。
在"选择"时。
将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_sscrtext_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。
根据选择选项
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"时。 p>
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 p>
在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'。 p>
ENDIF。
退出。 "不要在此调用中另外处理STEP DISP。
当" PRESEL1"时。
当" DISP"时。
当其他时间。
ENDCASE。
ENDFUNCTION。
-
功能模块Z_CUSTOM_SEARCH的结尾-
-
代码示例结束-
保存并在每个步骤中激活。
问候
Chandra p>
(如果有帮助,可以奖励积分)
一周热门 更多>