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

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

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

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

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

下图提示我们是否

是要新增一个INCLUDE还是

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

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

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

填入相应内容之后:

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

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

继续:

设定快捷键:

继续:

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

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

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

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

这个是画面的标题:

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

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

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

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

输入如下代码:

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

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

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

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

转载于:https://www.cnblogs.com/saper/archive/2011/05/21/2052596.html

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

  1. SAP屏幕设计器专题:页签控件(八)

    SO,此篇随笔用来讲解SAP屏幕中页签控件的使用. 一.运行SE38,新建一只程序 Z_SCREEN3,不用写任何代码,保存激活. 二.运行SE51,新建屏幕号0100,输入说明,点击"格式 ...

  2. SAP屏幕设计器专题:树控件的使用(九)

    在SAP的标准画面中,树控件都是随处可见,在一些特殊的应用中更有用处, 显得专业. 在SE51设计界面里,并没有直观的树控件,只是一个容器,要实现树功能还得在程序中用面向对象的方法实现. 本文就简要介 ...

  3. SAP屏幕设计器专题:表格控件属性的设定(七)

    上篇讲到了如何设计一个表格控件出来,实现我们需要的功能.本篇来谈谈让表格更专业点. 一.选择框 本例通过选择品号之后按下Enter自动带出品名出来. 相应的程序中代码如下: 这样当程序在运行的时候就可 ...

  4. qt 定义一个长度的数组_Qt设计器:创建控件数组

    也许这是一个愚蠢的问题,但我是新来的C + +和Qt.抱歉给您带来不便.Qt设计器:创建控件数组 在Qt Designer中,我创建多个标签(例如): my_label1 my_label2 my_l ...

  5. Qt编写控件属性设计器2-拖曳控件

    一.前言 上一篇文章把插件加载好了,并且把插件中的所有控件都显示到了列表框中,这次要做的就是实现拖曳控件的功能,用户选择一个控件拖曳到画布上,松开,在松开位置处自动实例化该控件,这个需要用到dropE ...

  6. Qt编写控件属性设计器3-拉伸控件

    一.前言 插件控件加载了,拖曳控件也实现了,接下来就是一个最难点了,跟QtDesigner或者其他开发环境一样,能够任意自由的拉伸控件大小,移动位置,为了这个功能,还特别编写了一个控件来实现这个功能, ...

  7. 基于web的工作流设计器(多比图形控件)

    多比图形控件是一款基于Web的矢量图形控件, 类似于网页上的Visio控件,是目前国内外最佳的基于web的工作流设计器.工作流流程监视器解决方案. 可广泛应用于包括:电力.军工.煤炭.化工.科研.能源 ...

  8. 【Qt教程】2.1 - Qt5 UI设计器、常用控件

    1. UI设计器使用 新建工程,将 .ui文件勾上. 双击 .ui文件,会弹出UI设计器,其布局大概为: 其中UI界面的信号槽只能使用系统事件,不能使用自定义信号与槽.所以主要还是由用户代码来完成. ...

  9. Qt编写控件属性设计器4-加载属性

    一.前言 控件能加载拖曳拉伸了,这些都是基本的前提工作,接下来的重点就是要动态加载选中控件的属性了,Qt的属性机制那是异常的强大,只能用强大到爆来形容,Qt中编写自定义控件,如果属性都用Q_PROPE ...

最新文章

  1. 服务器无法执行该事务_分布式事务、MVCC、事务隔离级别
  2. Servlet - Upload、Download、Async、动态注册
  3. 设置virgo-tomcat-server的JVM内存
  4. 深度学习之卷积神经网络(5)表示学习
  5. C#| 使用String.Format()方法将小数点后的数字四舍五入
  6. GCC常用选项使用详解
  7. [译]Kinect for Windows SDK开发入门(八):骨骼追踪进阶 上
  8. 福玛特机器人怎么开机_福玛特扫地机器人常见问题故障汇总
  9. sql server版本号_识别SQL Server版本号的不同方法
  10. java Math类
  11. 190730每日一句
  12. Sqlist 插入、删除元素
  13. Windows下本地安装SVN客户端
  14. 开发工具 -- gcc编译器使用
  15. 【rzxt】巧用电池小工具 电量问题全掌握
  16. Nvidia GeForce GTX 1650不支持OpenGL4.6
  17. C++判断两字符串是否相等
  18. CSDN、掘金、简书博客文章如何转为Markdown?
  19. 天地图 添加遮罩层效果
  20. matlab读mif文件,MATLAB将mif文件转换成coe文件(原创)

热门文章

  1. intellij导入scala工程不识别scala语言
  2. LookupError: No installed app with label 'user'
  3. sql中进行计算并重命名
  4. yelee主题修改博客左侧文章目录的按钮字体
  5. 2.3 线性变换引入
  6. mysql bitmap redis_Redis中bitmap的妙用
  7. php并发访问mysql_php并发对MYSQL造成压力的解决方法_PHP
  8. badboy录制乱码_Badboy 录制脚本参数化和回放
  9. CF986A Fair
  10. Centos 7 文件管理基础命令