二维码

[基础语法] MESSAGE消息中DISPLAY LIKE用法

Twilight发表于 2014-04-28 14:41Twilight 最后回复于 2014-04-28 14:41 [复制链接] 5776 0

  1. MESSAGE TYPE 'S' DISPLAY LIKE 'E'
复制代码
这样定义的消息,本质上还是S类型,但是输出表现出E类型,即程序遇到这样的消息还会继续执行而不中断。这种定义我们在Dynpro程序中用的比较多。

程序代码:
  1. SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
  2. PARAMETERS: pr_1 RADIOBUTTON GROUP rad1 DEFAULT 'X' USER-COMMAND rad_click, "经销配件
  3.             pr_2 RADIOBUTTON GROUP rad1.             "代销配件
  4. SELECTION-SCREEN END OF BLOCK b1.

  5. SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
  6. SELECT-OPTIONS: s_lifnr  FOR zsdt154-lifnr,"供应商
  7.                 s_matnr  FOR zsdt154-matnr,"商品号
  8.                 s_werks  FOR zsdt154-werks MODIF ID we,"地点
  9.                 s_ekorg  FOR zsdt154-ekorg MODIF ID ek."采购组织
  10. PARAMETER:      p_vtweg TYPE zsdt154-vtweg."分销渠道
  11. SELECTION-SCREEN END OF BLOCK b2.
复制代码
*&---------------------------------------------------------------------*
*& 选择屏幕控制
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
  PERFORM f_modify_screen.
  1. FORM f_modify_screen .
  2.   CASE 'X'.
  3.     WHEN pr_1.
  4.       LOOP AT SCREEN.
  5.         IF screen-group1 = 'EK'.
  6.           screen-active = 0.
  7.           MODIFY SCREEN.
  8.         ENDIF.
  9.       ENDLOOP.
  10.       REFRESH s_ekorg.
  11.     WHEN pr_2.
  12.       LOOP AT SCREEN.
  13.         IF screen-group1 = 'WE'.
  14.           screen-active = 0.
  15.           MODIFY SCREEN.
  16.         ENDIF.
  17.       ENDLOOP.
  18.       REFRESH s_werks.
  19.   ENDCASE.
  20. ENDFORM.                    " f_modify_screen
复制代码
*&---------------------------------------------------------------------*
*& 参数输入检查
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN.
  PERFORM f_check_input.
  1. FORM f_check_input .
  2.   DATA:wa_tvtw TYPE tvtw.
  3.   IF p_vtweg = space.
  4.     MESSAGE s001(00)  DISPLAY LIKE 'E' WITH '分销渠道不能为空!'.
  5.     STOP.
  6.   ELSE.
  7.     SELECT SINGLE *
  8.     INTO wa_tvtw
  9.     FROM tvtw
  10.     WHERE vtweg = p_vtweg.
  11.     IF wa_tvtw = space.
  12.       MESSAGE s001(00)  DISPLAY LIKE 'E' WITH '你输入的分销渠道不存在!'.
  13.       STOP.
  14.     ENDIF.
  15.   ENDIF.
  16. ENDFORM.                    " f_check_input
复制代码

选择屏幕效果:分销渠道必输
MODIFY SCREEN WERKS.png
MODIFY SCREEN ekorg.png
回复

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表