``如何从搜索帮助点击表控件中检索数据?

2020-08-26 08:26发布

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

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


您好
有一个搜索帮助" Z15_SH_PRO "。 它被附加到表控件中的字段(ID)。 我试图实现的是,当用户单击搜索帮助弹出窗口并选择特定行时,必须将所有剩余字段(描述,单位等)导入表控件中。

为此,我创建了一个搜索帮助出口,如下所示。

功能z15_sh_pro_exit。
 *" ------------------------------------------------  ----------------------
 *" *"本地接口:
 *"表格
 *" SHLP_TAB类型SHLP_DESCT
 *" RECORD_TAB结构SEAHLPRES
 *"正在更改
 *" REFERENCE(SHLP)类型SHLP_DESCR
 *"参考(呼叫控制)类型DDSHF4CTRL
 *" ------------------------------------------------  ----------------------
   " SHLP_TAB-将具有附加到相应字段的搜索帮助。
   " RECORD_TAB-将保存要显示的数据。

   数据:t_record_tab喜欢seahlpres表。
   数据:dynpread的it_dynp类型标准表。
   数据:wa_dynp TYPE dynpread。

   如果callcontrol-step ='RETURN'。  "当用户选择完成时!?
     读取表shlp_tab。
    
     record_tab [] = t_record_tab []。
     "调试后,record_tab的'RECORD_TAB-STRING'会保存数据。
     " Bt不知道如何取回。

     如果是shlp_tab-shlpname EQ'Z15_SH_PRO'。
       wa_dynp-fieldname ='WA_SO_IT-DESCRIPTION'。
       wa_dynp-fieldvalue ='Hello'。  "虚拟值。需要填写搜索帮助中的实际值。
       将wa_dynp附加到it_dynp。

       wa_dynp-fieldname ='WA_SO_IT-UNIT_MES'。
       wa_dynp-fieldvalue ='世界'。  "虚拟值。需要填写搜索帮助中的实际值。

       将wa_dynp附加到it_dynp。
       清除wa_dynp。

       "这将表控件更新为虚拟值。
       "但不知道如何在用户单击搜索帮助的同一行中填充。
       目前,它始终填充在表格控件的底部。
       通话功能'DYNP_UPDATE_FIELDS'
         出口
           dyname ='SAPMZ_15081947_SO'"模块池名称
           dynumb ='9000'"屏幕编号
           要求='A'
 * START_SEARCH_IN_CURRENT_SCREEN =''
 * START_SEARCH_IN_MAIN_SCREEN =''
 * START_SEARCH_IN_STACKED_SCREEN =''
 * START_SEARCH_ON_SCR_STACKPOS =''
 * SEARCH_OWN_SUBSCREENS_FIRST =''
 * SEARCHPATH_OF_SUBSCREEN_AREAS =''
         桌子
           dynpfields = it_dynp
         例外情况
           invalid_abapworkarea = 1
           invalid_dynprofield = 2
           invalid_dynproname = 3
           invalid_dynpronummer = 4
           invalid_request = 5
           no_fielddescription = 6
           undefind_error = 7
           其他= 8。
       如果sy-subrc <> 0。
         *在这里实施适当的错误处理
         消息"更新字段时出错" TYPE" E"。
       万一。
     万一。
   万一。
 ENDFUNCTION。

调试后,record_tab的" RECORD_TAB-STRING"将保存数据。 但是不知道如何找回。 " DYNP_UPDATE_FIELDS "功能模块使用哑数值更新了表控件。 但不知道如何在用户单击搜索帮助的同一行填充。 当前,当选择搜索帮助时,它总是填充在表格控件的底部。 是否有另一个功能模块可用于更新表控件?

(24.5 kB)

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

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


您好
有一个搜索帮助" Z15_SH_PRO "。 它被附加到表控件中的字段(ID)。 我试图实现的是,当用户单击搜索帮助弹出窗口并选择特定行时,必须将所有剩余字段(描述,单位等)导入表控件中。

为此,我创建了一个搜索帮助出口,如下所示。

功能z15_sh_pro_exit。
 *" ------------------------------------------------  ----------------------
 *" *"本地接口:
 *"表格
 *" SHLP_TAB类型SHLP_DESCT
 *" RECORD_TAB结构SEAHLPRES
 *"正在更改
 *" REFERENCE(SHLP)类型SHLP_DESCR
 *"参考(呼叫控制)类型DDSHF4CTRL
 *" ------------------------------------------------  ----------------------
   " SHLP_TAB-将具有附加到相应字段的搜索帮助。
   " RECORD_TAB-将保存要显示的数据。

   数据:t_record_tab喜欢seahlpres表。
   数据:dynpread的it_dynp类型标准表。
   数据:wa_dynp TYPE dynpread。

   如果callcontrol-step ='RETURN'。  "当用户选择完成时!?
     读取表shlp_tab。
    
     record_tab [] = t_record_tab []。
     "调试后,record_tab的'RECORD_TAB-STRING'会保存数据。
     " Bt不知道如何取回。

     如果是shlp_tab-shlpname EQ'Z15_SH_PRO'。
       wa_dynp-fieldname ='WA_SO_IT-DESCRIPTION'。
       wa_dynp-fieldvalue ='Hello'。  "虚拟值。需要填写搜索帮助中的实际值。
       将wa_dynp附加到it_dynp。

       wa_dynp-fieldname ='WA_SO_IT-UNIT_MES'。
       wa_dynp-fieldvalue ='世界'。  "虚拟值。需要填写搜索帮助中的实际值。

       将wa_dynp附加到it_dynp。
       清除wa_dynp。

       "这将表控件更新为虚拟值。
       "但不知道如何在用户单击搜索帮助的同一行中填充。
       目前,它始终填充在表格控件的底部。
       通话功能'DYNP_UPDATE_FIELDS'
         出口
           dyname ='SAPMZ_15081947_SO'"模块池名称
           dynumb ='9000'"屏幕编号
           要求='A'
 * START_SEARCH_IN_CURRENT_SCREEN =''
 * START_SEARCH_IN_MAIN_SCREEN =''
 * START_SEARCH_IN_STACKED_SCREEN =''
 * START_SEARCH_ON_SCR_STACKPOS =''
 * SEARCH_OWN_SUBSCREENS_FIRST =''
 * SEARCHPATH_OF_SUBSCREEN_AREAS =''
         桌子
           dynpfields = it_dynp
         例外情况
           invalid_abapworkarea = 1
           invalid_dynprofield = 2
           invalid_dynproname = 3
           invalid_dynpronummer = 4
           invalid_request = 5
           no_fielddescription = 6
           undefind_error = 7
           其他= 8。
       如果sy-subrc <> 0。
         *在这里实施适当的错误处理
         消息"更新字段时出错" TYPE" E"。
       万一。
     万一。
   万一。
 ENDFUNCTION。

调试后,record_tab的" RECORD_TAB-STRING"将保存数据。 但是不知道如何找回。 " DYNP_UPDATE_FIELDS "功能模块使用哑数值更新了表控件。 但不知道如何在用户单击搜索帮助的同一行填充。 当前,当选择搜索帮助时,它总是填充在表格控件的底部。 是否有另一个功能模块可用于更新表控件?

(24.5 kB)
付费偷看设置
发送
2条回答
My梦
1楼-- · 2020-08-26 08:32

您只能使用DDIC进行此操作,而无需ABAP。

表控件中的所有屏幕字段都必须命名为具有相同DDIC结构的组件,我们将其命名为ZSTR_15081947_SO,而不是WA_SO_IT

您的搜索帮助Z15_SH_PRO必须将字段ID,DESCRIPTION和UNIT_MES定义为EXPORTING。

按以下方式定义ZSTR_15081947_SO的字段:

  • ID:在此附加搜索帮助Z15_SH_PRO,并将其导出字段ID,DESCRIPTION和UNIT_MES链接到结构的同名字段。
  • DESCRIPTION(无需附加搜索帮助)
  • UNIT_MES(无需附加搜索帮助)

当您在字段ZSTR_15081947_SO-ID上按F4键并选择一个条目时,三个屏幕字段ID,DESCRIPTION,UNIT_MES将自动填充所选内容

风早神人
2楼-- · 2020-08-26 08:30

,因为我记得您应该在表控件中找到有关搜索帮助的示例演示,请尝试搜索程序名称DEMO_DYNPRO * ...或将SABAPDEMOS打包。

一周热门 更多>