目录
ALV
内容:
Fanction开发流程:
(1)声明变量
(2)定义内表
(3)读取数据
(4)ALV格式控制
(5)定义事件
(6)显示ALV
(7)用户事件
GUI状态:
DEBUG:
选择屏幕:
1、基本元素
多值选择屏幕:select-options
单值选择屏幕:parameters
框架结构:SELECTION-SCREEN
文本元素
2、选择屏幕的使用
编辑
ALV
内容:
报表输出,丰富的交互功能。是一个显示列表的灵活的工具,它提供了基本功能的列表操作,也可以通过自定义来进行增强。
LIST型:与WRITE输出相近,只是多了许多功能按钮。
GRIT型:类似EXCEL,也是有许多功能按钮,。
实现方式:传统的Call Function:面向过程
面向对象的编程
组成部分:工具栏,标题栏(前两项可省略),网格控制器。
工具栏
标题栏:总揽信息
网格控制器:筛选出的数据
Fanction开发流程:
(1)声明变量
TYPE-POOLS:SLIS 【现在可以不用了】
布局属性Layout
列表栏属性Fieldcat
(2)定义内表
存放自定义数据文件的数据,以及在ALV中显示
(3)读取数据
数据放在内表
(4)ALV格式控制
建立显示格式(layout)和显示字段清单(Field Catalogs)
fieldcat
(5)定义事件
SE37:查看函数 |
可有可无。事件用于控制不同的样式,共有17个。
(6)显示ALV
调用alv fanction module
(7)用户事件
定义user按键处理事件
GUI状态:
DEBUG:
设置断点
选择屏幕:
注意: 尽管有一个名为“屏幕绘制器”的工具用于设计屏幕,但此处不使用此工具。而是根据 ABAP 代码中的参数声明生成选择屏幕。
1、基本元素
多值选择屏幕:select-options
复杂选择: SELECT-OPTIONS name FOR data_object.
name为选择选项的名称
data_object是一个预定义变量,或者数据库表的字段
1、常用于参照一数据库字段来建立,要在程序开始用TABLES声明表名
2、其定义对象命名长度不能超过8位
3、定义的屏幕元素在程序中当做内表来用,内表的结构比较特殊
名称 | 参考值 | 描述 |
SIGN | I或者E | I:包括,E:排除 |
OPTION | EQ,NE,CP,NP, GE,LT,LE,GT | EQ(等于),NE(不等于) NP(排除参考格式) LT(小于),LE(小于或者等于) CP(包含),NP(不包含) GT(大于),GE(大于或者等于) BT(范围),NB(排除范围) |
LOW | 维护项目-前 | |
HIGH | 维护项目-后 |
把输入的数据导入到一个内表中,以日期为例:
DATA:time TYPE d. time = s_rq-low. "s_rq为定义的选择屏幕IF s_rq-high IS NOT INITIAL.WHILE time <= s_rq-high.gs_out-rq = time.APPEND gs_out TO gt_out.time = time + 1.ENDWHILE.ELSE.LOOP AT s_rq[] INTO DATA(ls_rq).gs_out-rq = ls_rq-low.APPEND gs_out TO gt_out.ENDLOOP.ENDIF.
多值屏幕扩展语法:
- MEMORY ID pid:将SELECT-OPTIONS分配参数名并存储在SAP内存,参数名长度不能超过三位。
- NO-DISPLAY:将SELECT-OPTIONS设置为隐藏,不会在屏幕上输出。
- LOWER CASE:如果输入小写,则将在回车或者执行时候继续保持小写
- OBLIGATORY:限制该SELECT-OPTIONS为必须输入的项目,执行中系统会提示。
- NO-EXTENSION:限制该SELECT-OPTIONS只能输入一行数据,输入多行按钮(上图最右边按钮)被隐藏。
- NO INTERVALS:只能输入单值,不能输入范围
- VISIBLE LENGTH vlen:定义所显示数据的长度。
- MATCHCODE OBJECT :指定SE11搜索帮助
单值选择屏幕:parameters
单值输入: PARAMETERS 名称 LIKE/TYPE 类型.
1、输入变量的定义方法与普通变量相同
2、输入变量名不得超过8个字符长。
3、使用DEFAULT附加而非VALUE附加指定缺省值
4、PARAMETERS定义后不会产生内表,可作为变量在程序中运用
单值屏幕扩展语法:
- MEMORY ID mid:将PARAMETERS存储在SAP内存,参数名长度不能超过三位
- NO-DISPLAY:将PARAMETERS设置为隐藏,不会的屏幕上输出
- LOWER CASE:如果输入小写,则将在回车或者执行时候继续保持小写
- OBLIGATORY:限制该PARAMETERS为必填,否则会提示输入
- AS CHECKBOX:创建CHECKBOX对象
- RADIO BUTTON GROUP radi:创建(RADIO)单选框
- VISIBLE LENGTH vlen:定义显示长度
- USER-COMMAND ucom:功能码,只能分配给CHECKBOX或者LISTBOX或者RADIOBUTTON,当选择以上控件的时候,程序调用AT SELECTION-SCREEN事件,通过功能码控制屏幕其他元素的属性
- AS LISTBOX VISIBLE LENGTH vlen:创建一个下拉框,并指定长度
- MATCHCODE OBJECT :指定SE11的搜索帮助
DEFAULT:默认值
框架结构:SELECTION-SCREEN
SELECT-SCREEN语句:
用于创建屏幕的框架结构,主要包括屏幕元素的创建、子屏幕的创建等
1.SELECTION-SCREEN BEGIN OF BLOCK block.
SELECTION-SCREEN END OF BLOCK.
该语法在屏幕中定义了一个框,其扩展语法包括:
WITH FRAME:创建一个框架
TITLE title:创建一个带标题的框架。
NO INTERVALS:所创建的框架中限制SELECT只有一个输入项。
2.SELECTION-SCREEN BEGIN OF SCREEN src.
SELECTION-SCREEN END OF SCREEN src.
用于定义一个INCLUDE SUREEN,可通过CALL方法在Report程序中引用
CALL屏幕窗体时加入STARTING AT ... ENDING AT ...参数
可以将所定义屏幕窗体作为一个新的对话框窗体来引用,并指定期创建的具体大小及位置
文本元素
文本符号(Text Symbols):
用于实现自定义文本及符号。开发人员可按需求定义相关文本或符号,该文本使用对象为SELECTION-SCREEN所定义的对象。
路径:
在ABAP编辑器中:
转到→文本元素→文本符号
进行维护。可使用菜单
转到→翻译
进行翻译
2、选择屏幕的使用
1、SELECTION-SCREEN BEGIN OF LINE. ....END OF LINE.
让Begin of line 与End of line之间的部分位于同一行。
2、SELECTION-SCREEN BEGIN OF BLOCK. ....END OF LINE.
让Begin of line 与End of line之间的部分位于同一行。
SELECTION-SCREEN POSITION XX.
将后面的第一个Screen element定位在这一行的XX位置,最大值为83。
SELECTION-SCREEN COMMENT XX(Y) TEXT-XXX FOR FIELD
在当前行的指定列位置处输出一段文本
SELECTION-SCREEN SKIP 1.
跳过一行。类似于用WRITE写Report时的SKIP 1.也可以跳过多行。
SELECTION-SCREEN FUNCTION KEY 1. 最多五个