填写参数后修改SCREEN

2020-08-31 06:14发布

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

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


你好,我有一个尚未解决的问题

我有一个带有3个参数的屏幕:中心,发票,副本; 因此,当我填写中心时,我需要查询表格中的发票并在参数发票中将其显示在屏幕上(仅供参考)。 我尝试使用at-selection-screen输出,但是我觉得这不是我的解决方案,因为这是pbo,并且每次更改mi参数werks时都不会调用(是吗?)

有什么想法吗? 请帮助:'C

选择屏幕的块开始

 参数:p_werks类型t001w-werks义务," Centro
             p_folios TYPE zclsd_tb_031-num_fol,"实际编号为
             p_copies类型zclsd_tb_031-num_fol义务。 罪恶之城
 选择屏幕的结尾a。

 在p_werks的值请求的选择屏幕上。
   PERFORM selection_screen。
 选择结束。


 选择屏幕输出时。
   执行conf_param。
 选择结束。

 选择开始。
   执行obtener_data。  "获取数据
   执行llamar_impresion。  "调用智能表格




 格式conf_param。
   环视屏幕。
     如果屏幕名称='P_FOLIOS'。
       屏幕输入=''。
       修改屏幕。
     万一。
   结局。
 ENDFORM。


 FORM selection_screen。
   数据:
     w_dynpfields TYPE dynpread,
     i_dynpfields类似于dynpread的标准表。


 *如果p_werks不是初始的。
     选择单个num_fol
        从zclsd_tb_031到lv_fol
        在哪里使EQ p_werks变态。


     将lv_fol写入lv_fol。
     CONCATENATE'Folio:'lv_fol INTO lv_fol。

     w_dynpfields-fieldname ='P_FOLIOS'。
     w_dynpfields-fieldvalue = lv_fol。
     将w_dynpfields附加到i_dynpfields。
     清除w_dynpfields。

     通话功能'DYNP_VALUES_UPDATE'
       出口
         dyname = sy-repid
         dynumb = sy-dynnr
       桌子
         dynpfields = i_dynpfields
       例外情况
         invalid_abapworkarea = 1
         invalid_dynprofield = 2
         invalid_dynproname = 3
         invalid_dynpronummer = 4
         invalid_request = 5
         no_fielddescription = 6
         undefind_error = 7
         其他= 8。
 *  万一。
 ENDFORM。

(3.0 kB)

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

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


你好,我有一个尚未解决的问题

我有一个带有3个参数的屏幕:中心,发票,副本; 因此,当我填写中心时,我需要查询表格中的发票并在参数发票中将其显示在屏幕上(仅供参考)。 我尝试使用at-selection-screen输出,但是我觉得这不是我的解决方案,因为这是pbo,并且每次更改mi参数werks时都不会调用(是吗?)

有什么想法吗? 请帮助:'C

选择屏幕的块开始

 参数:p_werks类型t001w-werks义务," Centro
             p_folios TYPE zclsd_tb_031-num_fol,"实际编号为
             p_copies类型zclsd_tb_031-num_fol义务。 罪恶之城
 选择屏幕的结尾a。

 在p_werks的值请求的选择屏幕上。
   PERFORM selection_screen。
 选择结束。


 选择屏幕输出时。
   执行conf_param。
 选择结束。

 选择开始。
   执行obtener_data。  "获取数据
   执行llamar_impresion。  "调用智能表格




 格式conf_param。
   环视屏幕。
     如果屏幕名称='P_FOLIOS'。
       屏幕输入=''。
       修改屏幕。
     万一。
   结局。
 ENDFORM。


 FORM selection_screen。
   数据:
     w_dynpfields TYPE dynpread,
     i_dynpfields类似于dynpread的标准表。


 *如果p_werks不是初始的。
     选择单个num_fol
        从zclsd_tb_031到lv_fol
        在哪里使EQ p_werks变态。


     将lv_fol写入lv_fol。
     CONCATENATE'Folio:'lv_fol INTO lv_fol。

     w_dynpfields-fieldname ='P_FOLIOS'。
     w_dynpfields-fieldvalue = lv_fol。
     将w_dynpfields附加到i_dynpfields。
     清除w_dynpfields。

     通话功能'DYNP_VALUES_UPDATE'
       出口
         dyname = sy-repid
         dynumb = sy-dynnr
       桌子
         dynpfields = i_dynpfields
       例外情况
         invalid_abapworkarea = 1
         invalid_dynprofield = 2
         invalid_dynproname = 3
         invalid_dynpronummer = 4
         invalid_request = 5
         no_fielddescription = 6
         undefind_error = 7
         其他= 8。
 *  万一。
 ENDFORM。

(3.0 kB)
付费偷看设置
发送
4条回答
四川大学会员
1楼 · 2020-08-31 06:29.采纳回答

事件在选择屏幕上显示(不添加任何内容)在用户按下ENTER或任何其他非退出功能键之后立即触发,因此您可以在那时更改P_FOLIOS(无需使用DYNP_VALUES_UPDATE,因为后者仅用于值帮助,即AT SELECTION) -SCREEN ON VALUE-REQUEST ...):

在"选择"屏幕上。
   数据lv_fol类型zclsd_tb_031-num_fol。
   选择单个num_fol
        从zclsd_tb_031到lv_fol
        在哪里使EQ p_werks变态。
   将lv_fol写入lv_fol。
   CONCATENATE'Folio:'lv_fol INTO lv_fol。
   P_FOLIOS = lv_fol。
哎,真难
2楼-- · 2020-08-31 06:29

我知道在P_WERKS输入字段上按F4(或" F4"按钮)后,会显示可能值的列表,如果您选择一个值,则会返回该值

现在,您的问题是,如果手动输入P_WERKS的值而不使用F4按钮,如何更改P_FOLIOS。 是吗?

注意:您不了解END-OF-SELECTION的含义,它仅用于逻辑数据库,请删除该行(当前,它对您的代码无效) )。

大道至简
3楼-- · 2020-08-31 06:27

感谢 Sandra Rossi

如果手动输入P_WERKS的值而不使用F4按钮,则如何更改P_FOLIOS。 是吗?,是的! 这是我的问题:D

我将删除选择结束;)

Aaron 3364
4楼-- · 2020-08-31 06:20

非常感谢,它在起作用; D

一周热门 更多>