ABAP_ALV01-选择屏
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-选择屏相关推荐
- oppo计算机锁屏快捷键,电脑如何快速锁屏
电脑如何快速锁屏 首先是电脑的一键锁屏.快捷键是 键盘左下角倒数第二个 windows键+L键!就可以一件锁屏了.要在使用电脑输入自己电脑管理员密码即可.下面是jy135小编收集整理的电脑如何快速锁屏 ...
- windows server 2016域控屏保策略设置
1.使用Photo Screensaver Maker工具制作scr格式的屏保 2.制作完成的scr格式屏保文件,将文件放入服务器 3.新建策略在用户配置-策略-管理模板-控制面板-个性化依次启用红色 ...
- 阅读器也能个性化?屏保加密换字体,掌阅一个都不少
使用电子阅读器读书,护眼.轻便,又可以沉浸在书本当中免受很多外界的打扰,然而作为一款数码设备来讲,又十分的缺乏个性化,那么今天就来一步步教你如何把手中的iReader电子书阅读器,变的更加个性化. 首 ...
- 学生用计算机怎么关屏,电脑自带锁屏使用方法
要想使用电脑自带的锁屏功能就要先给电脑设置管理员密码.设置方法:点击开始菜单按钮!然后点击控制面板.在控制面板里面点击用户账户 然后在用户账户里面选择administrative .这个是管理员账户, ...
- 液晶屏 -- 驱动板 -- 屏线 -- 高压条 -- LVDS接口知识
1.液晶屏 先说液晶屏,只要不是太特殊的笔记本,绝大多数都是LVDS接口的,极少是TTL的,这个看液晶屏的针脚可以大致判断出来(注意是看液晶屏上的接口,不是已经引出的屏线),LVDS的一般是14.20 ...
- MStar 方案屏参配置
转载自网络.还是下载pdf看着舒服 http://download.csdn.net/detail/u012587637/9776574 [义 屏类型结构体定义 PanelType ] 文档位置 : ...
- 带口罩的你,还能等到 iPhone 的屏下指纹吗?
来源|极客公园 作者|在野 疫情常态化的今天,当屏下指纹成为苹果用户最羡慕安卓用户的功能之一,苹果会否作出改变? 近日,天风国际郭明錤在报告中表示,苹果有望在明年使用光学屏下指纹.并且他判断从 202 ...
- 「SAP技术」SE16和SE16N修改后台表数据方法
SAP中直接修改表.视图的Tcode有SE16N和SM30. 一 . SE16N界面输入&SAP_EDIT 其中使用SE16N修改表需要先输入命令&SAP_EDIT,回车左下角显示激活 ...
- ABAP源码--当前及可用库存查询
*& REPORT ZCOK_MM_RINVINQ12. * System : ******** ERP项目 * Module : MM * ...
最新文章
- 统计内存使用率shell
- JavaScript 'Pig latin is cool'=='igPay atinlay siay oolcay'
- UI控件篇——UIPageControl及其自定义
- 冯诺依曼体系下 计算机主机不包括,计算机组装第一张测试
- java控制台通讯录
- 一张图了解CAS单点登录的流程
- 2021年苹果手机绕ID解锁教程-附使用工具
- Max Script|控制摄像机
- 证明 总偏差平方和 = 回归平方和 + 残差平方和
- 安卓手机版php服务器地址,Almp——安卓系统上搭建本地php服务器环境
- 怎么禁用笔记本的键盘
- compileflow流程引擎使用
- C语言班级财务管理系统
- 前端 sqllite sql.js
- Nos项目 ChannelInfo添加SKIP和FAV的图标
- Codeforce 1251 E. Voting (贪心,思维)
- mybatis防止sql注入原理
- 浪潮存储新建池、创建卷提示I/O组内存不足、I/O空间位置不足解决方法
- 建设大数据平台,从“治理”数据谈起
- 推荐4款不足1M的冷门工具
热门文章
- 一维数据二维化的办法汇总(一)
- Android王者荣耀模拟金牌,荣耀战区修改方法 轻松获得省级金牌银牌
- 异常记录 之 nested exception is java.lang.NoClassDefFoundError: com/lowagie/text/pdf/PdfContentByte
- Ajax 前后端数据交互
- 聊一聊数学中的基本定理(三)——代数基本定理
- 超级全面-深拷贝与浅拷贝的实现方式
- 6-2 输出月份英文名 (10 分)
- ARM中大小端转换和按字节反转
- html文标题党,教你成为微信公众号推文标题党
- 记一下网络电台收集网址