SAP ABAP SCREEN PAI 中带出描述等相关字段信息

文章讨论了在输入销售订单后,回车导致手动输入的数据被清除的问题。原因是PAI事件每次触发时更新了工作区GS_DATA。提出了两个解决方案:一是通过比较销售订单号来避免重复更新;二是使用ONCHAIN-REQUEST语法优化处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求

在屏幕PAI事件中输入销售订单,点击回车带出相关描述等字段信息.

问题

在输入销售订单后回车可以正常带出描述相关字段信息,然后在下面的红框中手动输入一些数据,然后回车这时手动输入的数据将被清楚掉了.
在这里插入图片描述

分析原因

原因其实很简单:当我在输入销售订单回车后带出来的相关字段信息会直接存放到这个屏幕工作区中,(我把屏幕中所有字段全部放在了一个工作区GS_DATA). 当我每次回车的时候都会触发一次PAI事件,也就是说每一次都会更新当前的的工作区GS_DATA,
看代码(请多指教[抱拳])

 SELECT  SINGLE
      vbap~ernam
      vbap~zddyy AS zelwfyy
    vbap~vbeln
    vbap~ywtsj 
    vbap~vkaus 
    vbap~zaufnr AS aufnr 
    vbap~arktx AS zcpmc 
    vbak~bstnk 
    vbak~zysxm 
    vbak~zhzxm 
    vbak~zwadat AS zchrq
    vbak~zwadat AS zscsj
    zscwfd~zzwflx
    zscwfd~zscwfdh
    zscwfd~ztplx
    zscwfd~zelwfyy
    zscwfd~zwfyyms
    zscwfd~zzrqf
    zscwfd~zzrbm
    zscwfd~zzrgx
    zscwfd~zzrxr
    zscwfd~zldzr
   FROM vbap
    LEFT JOIN vbak ON vbap~vbeln = vbak~vbeln
    LEFT JOIN zscwfd ON vbap~vbeln = zscwfd~vbeln
    INTO  lvs_data
   WHERE vbap~vbeln = gs_data-vbeln.

      IF sy-subrc = 0.
        MOVE-CORRESPONDING lvs_data TO gs_data.
        " gs_data-zzrxr = lvs_ygmc.
        IF gs_data-zscwfdh IS INITIAL.
          gs_data-zifsc = '未创建'.
        ELSE.
          gs_data-zifsc = '已创建'.
        ENDIF.
        CASE gs_data-vkaus.
          WHEN 'A' . gs_data-vkaus = '标准'.
          WHEN 'B' . gs_data-vkaus = '试做'.
          WHEN 'C' OR 'E' .
            gs_data-vkaus = '重做'.
            gs_data-vkaus = '修改'.
          WHEN 'D' . gs_data-vkaus = '样品'.
          WHEN OTHERS.
        ENDCASE.
        CLEAR lvs_data.
      ENDIF.

解决方案 1

我目前想到道的是创建一个变量用来存放销售订单,然后在前面加个判断,判断在触发PAI是当前的销售订单号和上一次的是否一样,如果一样就EXIT ,不一样就把当前的销售订单号赋给一个变量.
看代码.
在这里插入图片描述

解决方案 2

这个解决的方法很简单,只需要加个语法即可ON CHAIN-REQUEST
在这里插入图片描述

  FIELD: gs_data-vbeln MODULE get_data_pbi ON CHAIN-REQUEST .

欢迎各位大佬补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨天行舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值