ABAP弹窗函数使用方法

导语:最近在写通用接口生成器,因为最终是要面向用户使用的,让用户通过配置完成接口开发,实现【零代码】,所以就要在程序里加很多友好的提示性报错,其中就用到了弹窗报错,在这里分享一下。

SAP有一个标准的ALV展示弹窗,这里就不详细说ALV弹窗怎么实现了,直接调用就好了,后期会专门写一篇如何创建OOALV弹窗。

标准的函数名为:【UPC_ALV_POPUP】,可以自己定义位置以及长宽高,入参的内表可以随意定义,不局限于示例中的bapiret2,内表参考的数据库表描述会直接展示在弹窗的抬头,这个函数我一般只用来做提示性的报错,或数据展示,因为看起来没有什么按钮可以用。

具体实现代码如下:

  DATA:lv_message(40).
  DATA:et_return TYPE TABLE OF bapiret2.
  "检查接口信息是否为空
  IF gt_yh001h1 IS INITIAL.
    lv_message = '接口信息不能为空,请检查!' .
    PERFORM frm_message_return(zyh_forms) TABLES et_return
      USING 'E' 'ZYH' '000' '接口:' p_prog lv_message ''.
  ENDIF.

  IF et_return[] IS NOT INITIAL.
    CALL FUNCTION 'UPC_ALV_POPUP'
      EXPORTING
        it_outtab        = et_return
        i_structure_name = 'BAPIRET2'
        i_start_column   = 30      "位置列
        i_start_row      = 5       "位置行
        i_window_width   = 100     "窗口宽度
        i_window_heigth  = 15      "窗口高度
        i_window_title   = '单据无法保存:存在以下错误'.
    EXIT. "退出后续处理
  ENDIF.

以下是FORM的代码,我习惯把通用的FORM放在一个专门REPORT里,这样可以提高代码的复用性,不用每次都粘在程序里,直接调用就好了

REPORT zyh_forms.
"弹窗报错FORMS.
FORM frm_message_return TABLES ct_return STRUCTURE bapiret2
                     USING iv_msgty iv_msgid iv_msgno iv_msgv1 iv_msgv2 iv_msgv3 iv_msgv4.
  DATA: lw_return TYPE bapiret2.
  lw_return-type       = iv_msgty.
  lw_return-id         = iv_msgid.
  lw_return-number     = iv_msgno.
  .
*LW_RETURN-LOG_NO     = .
*LW_RETURN-LOG_MSG_NO = .
  lw_return-message_v1 = iv_msgv1.
  lw_return-message_v2 = iv_msgv2 .
  lw_return-message_v3 = iv_msgv3.
  lw_return-message_v4 = iv_msgv4.
*  MESSAGE ID iv_msgid TYPE iv_msgty NUMBER iv_msgno WITH iv_msgv1 iv_msgv2 iv_msgv3 iv_msgv4 INTO
*   lw_return-message .
  CONCATENATE iv_msgv1 iv_msgv2 iv_msgv3 iv_msgv4 INTO lw_return-message.
*LW_RETURN-PARAMETER  = .
*LW_RETURN-ROW        = .
*LW_RETURN-FIELD      = .
*LW_RETURN-SYSTEM     = .
  APPEND lw_return TO ct_return.
ENDFORM.

效果展示:
在这里插入图片描述
作者:小飞猪猪猪猪猪猪猪–CSDN
注意:转发请注明作者

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小飞猪猪猪猪猪猪猪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值