0
点赞
收藏
分享

微信扫一扫

ERP屏幕设计器专题:编写控件代码(三)



上一篇博文我只是画了一个屏幕,一个外壳而已,真正要实现我们需要的功能还需要写相应的代码。

    输入SE51,打开我们的例子程序,切换到“流程逻辑”,默认的屏幕代码如下图所示:

ERP屏幕设计器专题:编写控件代码(三)_单选框

    第一个PROCESS BEFORE OUTPUT(PBO)的意思是画面载入时所做的动作。

    第二个PROCESS AFTER INPUT(PAI)的意思是用户在屏幕上输入之后获取屏幕的动作。

    我们把注释掉的代码去掉注释,然后保存,并双击“STATUS_0100”字符串,出现如下对话框:

ERP屏幕设计器专题:编写控件代码(三)_复选框_02

下图提示我们是否

是要新增一个INCLUDE还是

在原有的程序上新增代码段,我们选择第二个:


ERP屏幕设计器专题:编写控件代码(三)_复选框_03

这个时候画面自动切换到SE38并打开我们的程序,自动加入如下代码(去掉相应的注释并填入内容):

ERP屏幕设计器专题:编写控件代码(三)_控件_04

我们双击上面的“ZCREEN0100”,出现以下画面:

ERP屏幕设计器专题:编写控件代码(三)_控件_05

填入相应内容之后:

ERP屏幕设计器专题:编写控件代码(三)_复选框_06

上面第一个代表菜单栏;第二个代表自定义工具栏,第三个代表系统工具栏(ENTER,保存,退出,返回):

ERP屏幕设计器专题:编写控件代码(三)_控件_07

点击第二个,输入SUM,然后点击“SUM”下方图示的位置,进入如下图:

ERP屏幕设计器专题:编写控件代码(三)_单选框_08

继续:

ERP屏幕设计器专题:编写控件代码(三)_单选框_09

设定快捷键:

ERP屏幕设计器专题:编写控件代码(三)_复选框_10

继续:

ERP屏幕设计器专题:编写控件代码(三)_单选框_11

于是,自定义按钮算是好了。

ERP屏幕设计器专题:编写控件代码(三)_控件_07

第三个,系统工具栏,输入如下名称:

ERP屏幕设计器专题:编写控件代码(三)_复选框_13

还需要点击进去进行设置,都一样的,这里我们点击“SAVE”,其他照做:

ERP屏幕设计器专题:编写控件代码(三)_复选框_14

于是,这个系统工具栏算是弄好了。记得保存并激活。回到程序画面。双击“TITLE0100”,弹出下列对话框:

ERP屏幕设计器专题:编写控件代码(三)_复选框_15

这个是画面的标题:

ERP屏幕设计器专题:编写控件代码(三)_单选框_16

点击全部显示,进入之后激活:

ERP屏幕设计器专题:编写控件代码(三)_控件_17

返回SE51画面激活屏幕,回到程序试运行程序:

ERP屏幕设计器专题:编写控件代码(三)_复选框_18

发现屏幕都有工具按钮了,但是点击没反应!接下去添加控件代码了!

双击下面的“USER_COMMAND_0100”,跟STATUS_0100一样:

ERP屏幕设计器专题:编写控件代码(三)_控件_19

输入如下代码:

ERP屏幕设计器专题:编写控件代码(三)_复选框_20

WHEN后面的内容都是控件的名称!!!

ERP屏幕设计器专题:编写控件代码(三)_复选框_21

还记得我们屏幕上那个按钮的“功能代码”吗?参照上一篇博文,我们的按钮功能代码是“OK”,于是我们在CASE里添加如下代码:

WHEN 'OK'.

...


我们在程序中怎么获得屏幕上控件的值呢?其实很好办,只要我们在程序中新建一个变量,类型和长度以及名称都跟屏幕上控件对应属性一致就可以了。

比如屏幕上那个文本框名称是:TXT。我们要获取这个文本框的内容,就需要新建一个TXT的变量,长度最好一直,类型要一样:

DATA:TXT(9) TYPE C.

而复选框和单选框的声明也是类似,名称要一样(大写),变量的类型是C,长度是1。如下:

DATA:C1 TYPE C,
     C2 TYPE C,
     R1 TYPE C,
     R2 TYPE C.

一旦复选框和单选被选择,它们的值是‘X’。

  WHEN 'OK'.
      MESSAGE TXT TYPE 'I'.
      IF C1 = 'X'.
         MESSAGE '复选框1被选中' TYPE 'I'.
      ENDIF.
      IF C2 = 'X'.
         MESSAGE '复选框2被选中' TYPE 'I'.
      ENDIF.
      IF R1 = 'X'.
         MESSAGE '单选框1被选中' TYPE 'I'.
      ELSEIF R2 = 'X'.
         MESSAGE '单选框2被选中' TYPE 'I'.
      ENDIF.

我们在SE51中屏幕设计器上画出一个文本框,只作为输出,即内容说明:

ERP屏幕设计器专题:编写控件代码(三)_控件_22

ERP屏幕设计器专题:编写控件代码(三)_单选框_23

此文本框名称是TXT1,长度是14,于是我们定义变量如下:

DATA:TXT1(14) TYPE C.

CASE代码块更改如下:

  CASE OK_CODE.
    WHEN 'ENTER'.
      MESSAGE 'CLICK ENTER' TYPE 'I'.
    WHEN 'SUM'.
      MESSAGE 'CLICK SUM' TYPE 'I'.
    WHEN 'SAVE'.
      MESSAGE 'CLICK SAVE' TYPE 'I'.
    WHEN 'BACK'.
      LEAVE TO SCREEN 0.
    WHEN 'OK'.
      MESSAGE TXT TYPE 'I'.
      IF C1 = 'X'.
         MESSAGE '复选框1被选中' TYPE 'I'.
      ENDIF.
      IF C2 = 'X'.
         MESSAGE '复选框2被选中' TYPE 'I'.
      ENDIF.
      IF R1 = 'X'.
         MESSAGE '单选框1被选中' TYPE 'I'.
      ELSEIF R2 = 'X'.
         MESSAGE '单选框2被选中' TYPE 'I'.
      ENDIF.
      TXT1 = '填充内容!'.
    WHEN 'EXIT' OR 'CANCEL'.
      LEAVE PROGRAM.
    WHEN OTHERS.
  ENDCASE.

ERP屏幕设计器专题:编写控件代码(三)_单选框_24

本文主要是讲解基本控件的使用。接下去一篇博文要讲述下拉框的使用。


END



ERP屏幕设计器专题:编写控件代码(三)_控件_25


本文作者 | SAP梦心


举报

相关推荐

0 条评论