ABAP 选择屏幕填入值回车带出文本,内容或者权限报错

该文详细描述了在ABAP编程中处理选择屏幕的过程,包括通过屏幕回车触发文本显示,进行内容和权限校验,以及调试和错误处理。特别强调了错误消息以S类型显示但E形式呈现以保持在选择屏幕上的重要性,并讨论了权限控制在不同场景下的应用。
摘要由CSDN通过智能技术生成

1.选择屏幕回车带出文本
在这里插入图片描述
2.对内容或者权限在选择屏幕上校验和报错
debug图
在这里插入图片描述
结果图
在这里插入图片描述
3.测试用例的代码

TABLES: likp,lips,vbak.

SELECTION-SCREEN BEGIN OF BLOCK bl01 WITH FRAME TITLE TEXT-001.

  PARAMETERS:P_vkorg  TYPE     likp-vkorg .
  SELECTION-SCREEN COMMENT 45(20)  Lv_text. "销售组织

  SELECTION-SCREEN SKIP 1."空一行

  SELECT-OPTIONS: s_auart  FOR    vbak-auart NO-EXTENSION NO INTERVALS . " 订单类型
  SELECTION-SCREEN COMMENT 45(20) Lv_text2."订单类型文本

SELECTION-SCREEN END OF BLOCK bl01.

INITIALIZATION .

AT SELECTION-SCREEN OUTPUT ."填写之后回车触发

  SELECT SINGLE vtext
   FROM tvkot
  WHERE vkorg = @P_vkorg
    AND spras = '1'
   INTO @Lv_text. "销售组描述 .

  SELECT SINGLE bezei
    FROM tvakt
   WHERE auart = @s_auart-low
     AND spras = '1'
    INTO @Lv_text2. "订单类型
  MODIFY SCREEN.


START-OF-SELECTION.
  "权限控制,填写内容控制
  AUTHORITY-CHECK OBJECT 'V_VBAK_VKO' "权限对象,问业务顾问来
   ID 'ACTVT' FIELD '03'   "显示
   ID 'VKORG' FIELD p_vkorg.
  IF sy-subrc <> 0.
    "消息属性是S成功类型的,但是表现形式是E错误的
    "这样会使错误信息保持着在选择屏幕上的。
    MESSAGE '您分配的权限不允许使用' && p_vkorg  TYPE 'S'  DISPLAY LIKE 'E'.
    STOP.
  ENDIF.

  "如果填写下的内容是多个销售组织SELECT-OPTIONS,他的权限控制是这样写
*  SELECT *
*   INTO TABLE @DATA(lt_vkorg)
*   FROM tvkot
*   WHERE vkorg IN @s_vkorg
*     AND spras = '1'.
*  LOOP AT lt_vkorg INTO DATA(ls_vkorg).
*    AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'
*     ID 'ACTVT' FIELD '03'
*     ID 'VKORG' FIELD ls_vkorg-vkorg.
*    IF sy-subrc <> 0.
*      MESSAGE '您分配的权限不允许使用' && ls_vkorg-vkorg  TYPE 'S'  DISPLAY LIKE 'E'.
*      STOP.
*    ENDIF.
*  ENDLOOP.

  "取数,报表显示
  WRITE:'成功进入报表'.

END-OF-SELECTION.

4.注意点
1.选择屏幕上,消息要 TYPE ‘S’ DISPLAY LIKE ‘E’ . STOP.才能在选择屏幕上报错。还有一种: LEAVE LIST-PROCESSING. 也是可以挡在选择屏幕的(经过杨大佬提醒)
2.在选择屏幕上,我暂时还没有发现除了回车之外的触发方式,如果你知道,你可以在下面留言提醒我。
3.权限校验,要根据业务的要求来设置拦截信息。

好了今天的分享到这
分享使我快乐,我是寒武青锋。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值