二维码

Modal Dialog Box方式对话框的使用实例

Twilight发表于 2014-11-19 19:08Twilight 最后回复于 2014-11-19 19:08 [复制链接] 2378 0

1、se38创建一个程序
  1. DATA:ok_code TYPE sy-ucomm.
  2. TABLES mara.
  3. TYPES : matnr TYPE mara-matnr,
  4.          ersda TYPE mara-ersda,
  5.          ernam TYPE mara-ernam,
  6.          mtart TYPE mara-mtart,
  7.          matkl TYPE mara-matkl.

  8. START-OF-SELECTION.
  9.   CALL SCREEN 0100.
复制代码
2、双击SCREEN 0100,新建100屏幕
Modal Dialog Box 1.jpg
在屏幕中画一个物料字段,可以直接从数据字典mara表里获取matnr字段
Modal Dialog Box 2.jpg
显示按钮,注意输入一个功能码,程序中捕获该值,相应操作;如果屏幕上有红色,说明有错误
Modal Dialog Box 3.jpg
定义OK_CODE
逻辑流
  1. PROCESS BEFORE OUTPUT.
  2. * MODULE STATUS_0100.
  3. *
  4. PROCESS AFTER INPUT.
  5. MODULE USER_COMMAND_0100.
复制代码
  1. *&---------------------------------------------------------------------*
  2. *&      Module  USER_COMMAND_0100  INPUT
  3. *&---------------------------------------------------------------------*
  4. *       text
  5. *----------------------------------------------------------------------*
  6. MODULE user_command_0100 INPUT.
  7.   CASE ok_code.
  8.     WHEN 'DISPLAY'.
  9.       CALL SCREEN 0110
  10.             STARTING AT 4 10
  11.             ENDING AT 50 20.
  12.   ENDCASE.
  13. ENDMODULE.                 " USER_COMMAND_0100  INPUT
复制代码
3、双击SCREEN 0110 新建110屏幕
语法:CALL SCREEN <screen number>    STARTING AT <start column> <start line>    ENDING AT   <end column>   <end line>
STARTING AT 和 ENDING AT 选项告诉系 统在何处定 位弹出屏幕
SCREEN TYPE选择Modal Dialog Box
Modal Dialog Box 4.jpg
从数据字典获取字段,放在屏幕上
Modal Dialog Box 5.jpg
定义OK_CODE
逻辑流
  1. PROCESS BEFORE OUTPUT.
  2. MODULE STATUS_0110.
  3. *
  4. PROCESS AFTER INPUT.
  5. MODULE USER_COMMAND_0110.
复制代码
  1. *&---------------------------------------------------------------------*
  2. *&      Module  STATUS_0110  OUTPUT
  3. *&---------------------------------------------------------------------*
  4. *       text
  5. *----------------------------------------------------------------------*
  6. MODULE status_0110 OUTPUT.
  7. *  SET PF-STATUS 'xxxxxxxx'.
  8. *  SET TITLEBAR 'xxx'.
  9.   SELECT SINGLE matnr ersda ernam mtart matkl FROM mara
  10.      INTO (mara-matnr, mara-ersda, mara-ernam, mara-mtart, mara-matkl)
  11.      WHERE matnr = mara-matnr.
  12. ENDMODULE.                 " STATUS_0110  OUTPUT
  13. *&---------------------------------------------------------------------*
  14. *&      Module  USER_COMMAND_0110  INPUT
  15. *&---------------------------------------------------------------------*
  16. *       text
  17. *----------------------------------------------------------------------*
  18. MODULE user_command_0110 INPUT.
  19.   CASE ok_code.
  20.     WHEN 'EXIT'.
  21.       LEAVE PROGRAM.
  22.   ENDCASE.
  23. ENDMODULE.                 " USER_COMMAND_0110  INPUT
复制代码
退出按钮,注意输入一个功能码
Modal Dialog Box 6.jpg
4、执行程序,显示效果
Modal Dialog Box 7.jpg
回复

使用道具 举报

快速回帖

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

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