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

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

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

2011052109152595.jpg

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

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

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

2011052109160837.jpg

下图提示我们是否

是要新增一个INCLUDE还是

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

2011052109172255.jpg

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

2011052109184879.jpg

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

2011052109183465.jpg

填入相应内容之后:

2011052109213632.jpg

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

2011052109231370.jpg

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

2011052109224433.jpg

继续:

2011052109244210.jpg

设定快捷键:

2011052109245338.jpg

继续:

2011052109250450.jpg

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

2011052109252318.jpg

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

2011052109254253.jpg

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

2011052109265119.jpg

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

2011052109272979.jpg

这个是画面的标题:

2011052109281372.jpg

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

2011052109285550.jpg

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

2011052109295460.jpg

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

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

2011052109304532.jpg

输入如下代码:

2011052109314195.jpg

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

2011052109322416.jpg

还记得我们屏幕上那个按钮的“功能代码”吗?参照上一篇博文,我们的按钮功能代码是“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中屏幕设计器上画出一个文本框,只作为输出,即内容说明:

2011052110005948.jpg

2011052110014820.jpg

此文本框名称是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.

2011052110015988.jpg

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值