ABAP_ALV01-选择屏

1、ALV介绍

1.1 ALV:SAP List View 缩写ALV——SAP列表视图

1.2 ALV报表实现方式:面向过程实现(大部分用这个)、面向对象实现(即OOALV)

1.3 ALV报表组成部分:选择屏、工具栏、列表

​ 选择屏:让用户输入参数

​ 工具栏:不管是哪个实现方式(面向过程 or 面向对象)出来都会有默认的工具栏,要增减的需额外配置

​ 列表:展现数据的地方

2、选择屏

屏幕元素:单输入、多输入、单选、复选、文件选择、格式化(选择元素格式化、界面格式化)

2.1 ALV代码格式

REPORT  ZCSDN_LION_ALV01.LOAD-OF-PROGRAM."程序运行开始INITIALIZATION."初始化AT SELECTION-SCREEN OUTPUT."调用屏幕时,假如没有屏幕时这里不会执行AT SELECTION-SCREEN."屏幕输入后点执行后,假如没有屏幕时这里不会执行START-OF-SELECTION."选择开始事件,点击运行后执行END-OF-SELECTION."选择结束事件,一般用于输出

2.2 选择屏事件终止

return、stop、exit、check

注意:不能在LOAD-OF-PROGRAM.中使用,否则程序代码不会报错,但运行时会崩溃

3 代码示例

REPORT  ZCSDN_LION_ALV01.*定义变量
*TABLES:ZLION_TEST."定义一个表格变量
DATA TAB1 TYPE ZLION_TEST.*定义屏幕元素
*单输入
PARAMETERS: P_NAME LIKE ZLION_TEST-NAME."单输入框
*区间输入
SELECT-OPTIONS:S_AGE FOR TAB1-AGE.
*单选,一般是多个单选组成一组
PARAMETERS:C_1 RADIOBUTTON GROUP G1,C_2 RADIOBUTTON GROUP G1,C_3 RADIOBUTTON GROUP G2,C_4 RADIOBUTTON GROUP G2 DEFAULT 'X'.
*checkbox
PARAMETERS:CH1 TYPE C AS CHECKBOX.LOAD-OF-PROGRAM."程序运行开始INITIALIZATION."初始化AT SELECTION-SCREEN OUTPUT."调用屏幕时,假如没有屏幕时这里不会执行AT SELECTION-SCREEN."屏幕输入后点执行后,假如没有屏幕时这里不会执行START-OF-SELECTION."选择开始事件,点击运行后执行END-OF-SELECTION."选择结束事件,一般用于输出

上面截图字段文字描述设置—注意SAP登录中英文

1、激活上面代码

2、转到-内文元素-选择内文

3、输入文本或参考数据元素,最后激活

4、回来再运行,效果就出来了

5、上面的文字区分中英文的,如用英文则用英文登录后进到SE38,跟上面同样的设置即可

登录语言=EN(ZH是简体,ZF是繁体,EN是英文)


然后一直默认


更改后保存激活,页面就会按各语言Text内容显示

4、美化页面

4.1、分块

用以下代码包含页面元素

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN end of BLOCK b1.

text-001:在转到-内文元素-内文符号中维护

优化后代码如下

REPORT  ZCSDN_LION_ALV01.*定义变量
*TABLES:ZLION_TEST."定义一个表格变量
DATA TAB1 TYPE ZLION_TEST.SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
*定义屏幕元素
*单输入
PARAMETERS: P_NAME LIKE ZLION_TEST-NAME."单输入框
*区间输入
SELECT-OPTIONS:S_AGE FOR TAB1-AGE.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-TTT.
*单选,一般是多个单选组成一组
PARAMETERS:C_1 RADIOBUTTON GROUP G1,C_2 RADIOBUTTON GROUP G1,C_3 RADIOBUTTON GROUP G2,C_4 RADIOBUTTON GROUP G2 DEFAULT 'X'.
*checkbox
PARAMETERS:CH1 TYPE C AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK B2.LOAD-OF-PROGRAM."程序运行开始INITIALIZATION."初始化AT SELECTION-SCREEN OUTPUT."调用屏幕时,假如没有屏幕时这里不会执行AT SELECTION-SCREEN."屏幕输入后点执行后,假如没有屏幕时这里不会执行START-OF-SELECTION."选择开始事件,点击运行后执行END-OF-SELECTION."选择结束事件,一般用于输出

4.2 默认值:default

4.3 必填项:OBLIGATORY

4.4 加空白行

SELECTION-SCREEN:SKIP 1."要加N空白行就SKIP N

4.5 强制同一行

如一组单选同一行

*单选,一般是多个单选组成一组
SELECTION-SCREEN BEGIN OF LINE.
单选1
单选2
SELECTION-SCREEN end of LINE.

4.6 优化4.5

发现4.5同一行后,有如下问题

4.61、靠太近了

解决如下:中间加空格

*单选,一般是多个单选组成一组
SELECTION-SCREEN BEGIN OF LINE.
单选1
SELECTION-SCREEN POSITION 10."表示是10个空格符
单选2
SELECTION-SCREEN end of LINE.

4.62、单选没有文字描述

即使在内文元素中维护了文本还是显示空白

解决如下:强制显示问题

*单选,一般是多个单选组成一组
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS:C_1 RADIOBUTTON GROUP G1.
SELECTION-SCREEN COMMENT 2(5) TEXT-RI1."2(5):文本在本行第2个位置开始展示,文本占用本行5个位置
SELECTION-SCREEN POSITION 10.                               "表示是10个空格符
PARAMETERS:C_2 RADIOBUTTON GROUP G1.
SELECTION-SCREEN END OF LINE.

异常

4.621、单选框和文字描述重叠了

调整文字描述的初始显示位置

SELECTION-SCREEN COMMENT 3(5) TEXT-RI1."3(5):文本在本行第3个位置开始展示,文本占用本行5个位置

4.622、把上面3(5)调成3(8),检查代码没错误,运行会崩溃

原因是元素位置冲突:

SELECTION-SCREEN COMMENT 3(8) TEXT-RI1.
SELECTION-SCREEN POSITION 10.

TEXT-RI1:3(8)在第3个位置开始,占用位置8,显示完后位置已到11,所以和position 10位置重复了

position xx 至少 > 3(8),即3+8=11,xx必须>11

*单选,一般是多个单选组成一组
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS:C_1 RADIOBUTTON GROUP G1.
SELECTION-SCREEN COMMENT 3(8) TEXT-RI1."3(5):文本在本行第3个位置开始展示,文本占用本行5个位置
SELECTION-SCREEN POSITION 12.                               "表示是10个空格符
PARAMETERS:C_2 RADIOBUTTON GROUP G1.
SELECTION-SCREEN COMMENT 14(8) TEXT-RI2."
SELECTION-SCREEN END OF LINE.

5、以上完整代码

*定义变量
*TABLES:ZLION_TEST."定义一个表格变量
DATA TAB1 TYPE ZLION_TEST.SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
*定义屏幕元素
*单输入
PARAMETERS: P_NAME LIKE ZLION_TEST-NAME DEFAULT '张三'."单输入框
SELECTION-SCREEN ULINE /1(50).
*区间输入
SELECT-OPTIONS:S_AGE FOR TAB1-AGE OBLIGATORY.SELECTION-SCREEN END OF BLOCK B1.SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-TTT.
*单选,一般是多个单选组成一组
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS:C_1 RADIOBUTTON GROUP G1.
SELECTION-SCREEN COMMENT 3(5) TEXT-RI1."3(5):文本在本行第3个位置开始展示,文本占用本行5个位置
SELECTION-SCREEN POSITION 11.                               "表示是10个空格符
PARAMETERS:C_2 RADIOBUTTON GROUP G1.
SELECTION-SCREEN COMMENT 13(8) TEXT-RI2."
SELECTION-SCREEN END OF LINE.SELECTION-SCREEN:SKIP 1."空白行PARAMETERS:C_3 RADIOBUTTON GROUP G2,C_4 RADIOBUTTON GROUP G2 DEFAULT 'X'.
*checkbox
PARAMETERS:CH1 TYPE C AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK B2.LOAD-OF-PROGRAM."程序运行开始INITIALIZATION."初始化AT SELECTION-SCREEN OUTPUT."调用屏幕时,假如没有屏幕时这里不会执行AT SELECTION-SCREEN."屏幕输入后点执行后,假如没有屏幕时这里不会执行START-OF-SELECTION."选择开始事件,点击运行后执行WRITE '成功'.END-OF-SELECTION."选择结束事件,一般用于输出

6、SELECTION-SCREEN用法

6.1、同一行

让屏幕元素位于同一行。

SELECTION-SCREEN BEGIN OF LINE.
屏幕元素1
屏幕元素2
SELECTION-SCREEN END OF LINE.

6.2、屏幕元素之间用空格隔开

这条语句的作用是将该语句后面的第一个Screen element定位在这一行的XX位置,最大值为79。值得注意的是,如果同一行中多个Position语句因为空间不够或Element所占空间重叠,将导致Screen创建时的错误(如上面4.622),无法激活。此时并无具体的提示。只能仔细观察代码。

SELECTION-SCREEN POSITION n."一个空格n=1,两个空格n=2...

6.3、在指定位置显示文本

这条语句的作用是在当前行的指定列位置处输出一段文本,For field则表示文本与某个element 关联,当此语句使用时,可以不必设定屏幕的Text element,系统会自动关联。XX表示位置,Y表示长度,注意,如果长度不足,超常的文字将被截掉。此处似乎还有一个小BUG,当Y小于5时,输出的文字字体会变大一号。不知道为什么。

SELECTION-SCREEN COMMENT XX(Y) TEXT-XXX FOR FIELD XXX.SELECTION-SCREEN COMMENT /10(30) comm1.
INITIALIZATION.
comm1 ='Auswahlknopfgruppe 1'.

6.4、跳过n空白行.

类似于用WRITE写Report时的SKIP n.也可以跳过多行。

SELECTION-SCREEN SKIP n.

6.5、屏幕上画横线

SELECTION-SCREEN ULINE /1(50).

6.6、内存记忆 留有上次输入过的记录

parameters test(16) type c memory id rid.

6.7、检查输入值 如果不在表中 不用做代码检查了

PARAMETERS p_carr TYPE spfli-carrid OBLIGATORY VALUE CHECK.

6.8 复选框

PARAMETERS: a AS CHECKBOX,
b AS CHECKBOX DEFAULT 'X'.

6.9 单选框

PARAMETERS: r1 RADIOBUTTON GROUP rad1,
r2 RADIOBUTTON GROUP rad1 DEFAULT 'X',
r3 RADIOBUTTON GROUP rad1,s1 RADIOBUTTON GROUP rad2,
s2 RADIOBUTTON GROUP rad2,
s3 RADIOBUTTON GROUP rad2 DEFAULT 'X'.

6.10 单输入

PARAMETERS: P_NAME LIKE ZLION_TEST-NAME DEFAULT '张三'.

6.11 区间输入/必填

SELECT-OPTIONS:区间输入

OBLIGATORY:必填

SELECT-OPTIONS:S_AGE FOR TAB1-AGE OBLIGATORY.

6.12 modif id(暂缺)

ABAP_ALV01-选择屏相关推荐

  1. oppo计算机锁屏快捷键,电脑如何快速锁屏

    电脑如何快速锁屏 首先是电脑的一键锁屏.快捷键是 键盘左下角倒数第二个 windows键+L键!就可以一件锁屏了.要在使用电脑输入自己电脑管理员密码即可.下面是jy135小编收集整理的电脑如何快速锁屏 ...

  2. windows server 2016域控屏保策略设置

    1.使用Photo Screensaver Maker工具制作scr格式的屏保 2.制作完成的scr格式屏保文件,将文件放入服务器 3.新建策略在用户配置-策略-管理模板-控制面板-个性化依次启用红色 ...

  3. 阅读器也能个性化?屏保加密换字体,掌阅一个都不少

    使用电子阅读器读书,护眼.轻便,又可以沉浸在书本当中免受很多外界的打扰,然而作为一款数码设备来讲,又十分的缺乏个性化,那么今天就来一步步教你如何把手中的iReader电子书阅读器,变的更加个性化. 首 ...

  4. 学生用计算机怎么关屏,电脑自带锁屏使用方法

    要想使用电脑自带的锁屏功能就要先给电脑设置管理员密码.设置方法:点击开始菜单按钮!然后点击控制面板.在控制面板里面点击用户账户 然后在用户账户里面选择administrative .这个是管理员账户, ...

  5. 液晶屏 -- 驱动板 -- 屏线 -- 高压条 -- LVDS接口知识

    1.液晶屏 先说液晶屏,只要不是太特殊的笔记本,绝大多数都是LVDS接口的,极少是TTL的,这个看液晶屏的针脚可以大致判断出来(注意是看液晶屏上的接口,不是已经引出的屏线),LVDS的一般是14.20 ...

  6. MStar 方案屏参配置

    转载自网络.还是下载pdf看着舒服 http://download.csdn.net/detail/u012587637/9776574 [义 屏类型结构体定义 PanelType ]  文档位置 : ...

  7. 带口罩的你,还能等到 iPhone 的屏下指纹吗?

    来源|极客公园 作者|在野 疫情常态化的今天,当屏下指纹成为苹果用户最羡慕安卓用户的功能之一,苹果会否作出改变? 近日,天风国际郭明錤在报告中表示,苹果有望在明年使用光学屏下指纹.并且他判断从 202 ...

  8. 「SAP技术」SE16和SE16N修改后台表数据方法

    SAP中直接修改表.视图的Tcode有SE16N和SM30. 一 . SE16N界面输入&SAP_EDIT 其中使用SE16N修改表需要先输入命令&SAP_EDIT,回车左下角显示激活 ...

  9. ABAP源码--当前及可用库存查询

    *& REPORT  ZCOK_MM_RINVINQ12. *     System        : ******** ERP项目 *     Module        : MM *    ...

最新文章

  1. 统计内存使用率shell
  2. JavaScript 'Pig latin is cool'=='igPay atinlay siay oolcay'
  3. UI控件篇——UIPageControl及其自定义
  4. 冯诺依曼体系下 计算机主机不包括,计算机组装第一张测试
  5. java控制台通讯录
  6. 一张图了解CAS单点登录的流程
  7. 2021年苹果手机绕ID解锁教程-附使用工具
  8. Max Script|控制摄像机
  9. 证明 总偏差平方和 = 回归平方和 + 残差平方和
  10. 安卓手机版php服务器地址,Almp——安卓系统上搭建本地php服务器环境
  11. 怎么禁用笔记本的键盘
  12. compileflow流程引擎使用
  13. C语言班级财务管理系统
  14. 前端 sqllite sql.js
  15. Nos项目 ChannelInfo添加SKIP和FAV的图标
  16. Codeforce 1251 E. Voting (贪心,思维)
  17. mybatis防止sql注入原理
  18. 浪潮存储新建池、创建卷提示I/O组内存不足、I/O空间位置不足解决方法
  19. 建设大数据平台,从“治理”数据谈起
  20. 推荐4款不足1M的冷门工具

热门文章

  1. 一维数据二维化的办法汇总(一)
  2. Android王者荣耀模拟金牌,荣耀战区修改方法 轻松获得省级金牌银牌
  3. 异常记录 之 nested exception is java.lang.NoClassDefFoundError: com/lowagie/text/pdf/PdfContentByte
  4. Ajax 前后端数据交互
  5. 聊一聊数学中的基本定理(三)——代数基本定理
  6. 超级全面-深拷贝与浅拷贝的实现方式
  7. 6-2 输出月份英文名 (10 分)
  8. ARM中大小端转换和按字节反转
  9. html文标题党,教你成为微信公众号推文标题党
  10. 记一下网络电台收集网址