1、ALV快捷工具栏功能说明(如下图)
细节按钮,你首先必须选中列表中的一行,然后点击它的话,就会弹出一个窗口,显示选中行的细节内容。(另外:你双击你要选择的行,也可以显示细节)
按升序排列,首先选中一列,然后再点击它,就可以看到该列是按照升序重新排列。
按降序排列,首先选中一列,然后再点击它,就可以看到该列是按照降序重新排列。
设置过滤器,通过设置它可以达到筛选的目的,以列名称作为筛选的筛选标准,填入过滤器相应的标准值,然后就可以筛选出满足自己条件的记录。
打印预览,点击它之后,就可以预览一下将要打印内容的布局情况。
Microsoft Excel,调用MS的Excel到当前ALV的列表显示区域。(前提:必须安装了MS的Excel)
字处理,字处理的相关设置。
本地文件,将当前表单存储到本地机器上,有几种供选择的存储格式。
邮件收件人,给系统内用户发邮件
图形,点击它可以根据表单情况绘制相关图表。
更改布局,点击它可以对表单中的列项目排列次序的互换,删减等。
选择布局,从以及保存的布局中选择自己满意的布局。
保存布局,对于自己满意的布局,可以通过点击它来将布局保存起来。
2、类型SLIS_FIELDCAT_ALV常用参数说明
(用来定义表单中的各个列的相关信息)
(赋值’’中内容必须为大写)
fieldname 对应内表中哪个字段,必须
Intlen 表示可以筛选的长度,如果不输得话有可能在筛选的时候显示不够 长
emphasize(4) 带有颜色的高亮列
col_pos = n. 输出列在ALV中的位置索引值
tabname = ‘FIELDNAME’. 对应的内表字段名(标签名称)
seltext_s/m/l = ‘列名’. 输出列文本(_s:短文本 _l:长文本)必须
emphasize = ‘CX10’. 带有颜色的高亮列(其中X=(1-7)颜色同format)
hotspot = ‘X’. 作为热点显示可触发鼠标触发事件
currency = ‘CURRKEY’. 表 TCURX 中的货币名称
quantity(3) 计量单位
qfieldname 参考计量单位的字段名称
round = n. 四舍五入至小数位数下n 位
exponent = n. 浮点数的幂指数为n
key = ‘X’. 关键字段
icon = ‘X’. 作为图标输出
symbol = ‘X’. 输出作为符号
checkbox = ‘X’. 作为复选框输出
just = SPACE, \'R\', \'L\', \'C\'. 对齐方式
lzero = ‘X’. 输出前导零
no_sign = ‘X’. 输出抑制符号
no_zero = ‘X’. 为输出隐藏零
edit_mask = SPACE, mask.. 输出为mask的模式(为输出编辑掩码)
fix_column = ‘X’. 固定列
do_sum = ‘X’. 总计列值总和
no_out = ‘X’. 列不输出
tech = ‘X’. 该字段为技术字段
outputlen = n 列的字符宽度为n
decimals_out = n 能控制小数点的位数为n
datatype = C,I,N… 定义数据类型
3、类型SLIS_T_SORTINFO_ALV常用参数说明
(排序)
Fieldname 字段名
Up 升序排列
Down 降序排列
Subtot
4、类型SLIS_LAYOUT_ALV常用参数说明
(用于定义ALV表单的相关格式、属性)
info_fieldname = \'LINE_COLOR\'. 设置特殊行颜色
(将LINE_COLOR增加到内表字段,写\'CX10\'到特殊行的LINE_COLOR, X为颜色值)
colwidth_optimize = ‘X’. 优化列宽设置
no_colhead = \'X\'. 不显示列名
no_vline = \'X\'. 不显示列间竖线
zebra
f2code = \'&ETA\'. 设置触发弹出详细信息窗口的功能码,这里是双击
no_vline 这个用来设置列间隔线
detail_popup 是否弹出详细信息窗口
detail_titlebar 设置弹出窗口的标题栏
5、类型SLIS_T_EVENT常用参数说明
DATA: i_events TYPE slis_t_event WITH HEADER LINE.
事件:
it_events = i_events[]
i_callback_pf_status_set = \'PF_STATUS_SET\'
i_callback_user_command = \'USER_COMMAND\'
出口程序触发事件对应子程序:
FORM PF_STATUS_SET USING rt_extab TYPE slis_t_extab.
FORM user_command USING ucomm LIKE sy-ucomm selfield TYPE slis_selfield.
ALV标准按钮对应的函数功能码如下:
功能代码: 函数文本: 图标名称:
&ETA 细节 ICON_SELECT_DETAIL
&EB9 调用报告... ICON_TABLE_SETTINGS
&REFRESH 刷新 ICON_REFRESH
&ALL 全部选择 ICON_SELECT_ALL
&SAL 取消全选 ICON_DESELECT_ALL
&OUP 按升序排列 ICON_SORT_UP
&ODN 按降序排列 ICON_SORT_DOWN
&ILT 设置过滤器 ICON_FILTER
&UMC 总计 ICON_SUM
&SUM 小计... ICON_INTERMEDIATE_SUM
&RNT_PREV 打印预览 ICON_LAYOUT_CONTROL
&VEXCEL Microsoft Excel ICON_XLS
&AQW 字处理... ICON_WORD_PROCESSING
%PC 本地文件 ... ICON_EXPORT
%SL 邮件收件人 ICON_MAIL
&ABC ABC 分析 ICON_ABC
&GRAPH 图形 ICON_GRAPHICS
&OL0 更改布局... ICON_ALV_VARIANTS
&OAD 选择格式... ICON_ALV_VARIANT_CHOOSE
&AVE 保存格式... ICON_ALV_VARIANT_SAVE
&INFO 信息 ICON_INFORMATION
6、结构LVC_S_FCAT参数说明(清单观察器控制的字段目录)
1.字段目录 [Field catalog]
字段目录是用来控制ALV显示的网格中每个字段的属性的,比如字段的顺序,对齐方式,可编辑状态,颜色,等等.
常用的控制字段如下:(下面的示例将说明这些字段的使用,参考STRUCTURE LVC_S_FCAT)
2 ROW_POS ALV 控制: 输出行 (内部使用)
3 COL_POS ALV 控制: 输出列 列的位置,第几列,例如1,2,…..
4 FIELDNAME ALV 控制: 内部表字段的字段名称 字段名称
5 TABNAME LVC 标签名称 表名,如果是内表,是1
6 CURRENCY ALV 控制: 货币单位
7 CFIELDNAME ALV 控制: 参考的当前单位的字段名称
8 QUANTITY ALV 控制: 计量单位
9 QFIELDNAME ALV 控制: 参考计量单位的字段名称
10 IFIELDNAME ALV 控制: 内部表字段的字段名称
11 ROUND ALV 控制: ROUND 值
12 EXPONENT ALV 控制:流动表示的指数
13 KEY ALV 控制: 关键字段 关键字段,前面变蓝色
14 KEY_SEL ALV 控制: 可以被隐藏的关键列 可以被隐藏的关键列
15 ICON ALV 控制: 作为图标输出 此列作为图标输出
16 SYMBOL ALV 控制: 输出作为符号
17 CHECKBOX ALV 控制: 作为复选框输出 复选框输出
18 JUST ALV 控制: 对齐 对齐方式:
\'R\': right justified
\'L\': left justified
\'C\': centered
19 LZERO ALV 控制: 输出前导零 X\'
20 NO_SIGN ALV 控制:输出抑制符号 X\',不输出符号
21 NO_ZERO ALV 控制: 为输出隐藏零 X\',隐藏0
22 NO_CONVEXT ALV 控制: 不考虑输出的转换退出
23 EDIT_MASK ALV 控制: 为输出编辑掩码 格式
24 EMPHASIZE ALV 控制: 带有颜色的高亮列 列的颜色
25 FIX_COLUMN ALV 控制: 固定列
26 DO_SUM ALV 控制: 总计列值 X\',合计
ALV_GRID介绍二(2)
27 NO_SUM ALV 控制: 没有总计列值 X\' ,没有合计
28 NO_OUT ALV 控制: 列没有输出 X\' ,隐藏此列
29 TECH ALV 控制: 技术字段 X\'.也是隐藏,但是有点不一样
30 OUTPUTLEN ALV 控制: 列的字符宽度 输出的长度
31 CONVEXIT 转换例程
32 SELTEXT ALV 控制: 对话功能的列标识符
33 TOOLTIP ALV 控制: 列抬头的工具提示
34 ROLLNAME ALV 控制: F1 帮助的数据元素
35 DATATYPE ABAP 字典中的数据类型 ABAP 字典中的数据类型
36 INTTYPE ABAP 数据类型(C,D,N,...) ABAP 数据类型(C,D,N,...)
37 INTLEN 以字节计的内部长度 内容的长度
38 LOWERCASE 允许/不允许小写字母 X\' 允许大小写
39 REPTEXT 标题
40 HIER_LEVEL ALV 控制: 内部使用
41 REPREP ALV 控制: 价值是补充/补充接口的选择标准
42 DOMNAME 定义域名
43 SP_GROUP 组代码
44 HOTSPOT ALV 控制: 单击敏感 X\',下面出现下划线,响应单击
45 DFIELDNAME ALV 控制: 数据库中列组的字段名称
46 COL_ID ALV 控制: 列 ID
47 F4AVAILABL 字段有输入帮助吗 X\'.此列有搜索帮助
48 AUTO_VALUE ALV 控制: 自动复制值
49 CHECKTABLE 表名
50 VALEXI 固定值存在
51 WEB_FIELD ALV 控制: 内部表字段的字段名称
52 HREF_HNDL 自然数 热点连接的句柄
53 STYLE ALV 控制: 样式 下面有例子会介绍,比如PUSHBUTTION
54 STYLE2 ALV 控制: 样式
55 STYLE3 ALV 控制: 样式
56 STYLE4 ALV 控制: 样式
57 DRDN_HNDL 自然数 下拉的句柄
58 DRDN_FIELD ALV 控制: 内部表字段的字段名称 下拉的字段
59 NO_MERGING 字符字段长度 1 相同的值不合并
60 H_FTYPE ALV 树控制: 功能类型 (总计,平均,最大.最小, ...)
61 COL_OPT 可选列优化的条目
62 NO_INIT_CH 字符字段长度 1
63 DRDN_ALIAS 字符字段长度 1
64 REF_FIELD ALV 控制: 内部表字段的参考字段名称
65 REF_TABLE ALV 控制: 内部表字段的参考表名称
66 TXT_FIELD ALV 控制: 内部表字段的字段名称
67 ROUNDFIELD ALV 控制: 带有 ROUND 说明的字段名称
68 DECIMALS_O ALV 控制: 输出小数位的编号
69 DECMLFIELD ALV 控制: 带有 DECIMALS 说明的字段名称
70 DD_OUTLEN ALV 控制: 输出字符长度
71 DECIMALS 小数点后的位数 设置小数的位数
72 COLTEXT ALV 控制: 列标题 列标题
73 SCRTEXT_L 长字段标签
74 SCRTEXT_M 中字段标签
75 SCRTEXT_S 短字段标签
76 COLDDICTXT ALV 控制: 确定 DDIC 文本参考
77 SELDDICTXT ALV 控制: 确定 DDIC 文本参考
78 TIPDDICTXT ALV 控制: 确定 DDIC 文本参考
79 EDIT ALV 控制: 准备输入 输出状态.\'X\'可输入
80 TECH_COL ALV 控制: 内部使用
81 TECH_FORM ALV 控制: 内部使用
82 TECH_COMP ALV 控制: 内部使用
83 HIER_CPOS ALV 控制: 层次列位置
84 H_COL_KEY 树控制: 列名称/项目名称
85 H_SELECT 标识是否可以选择树控制中的列
86 DD_ROLL 数据元素 (语义域)
87 DRAGDROPID ALV 控制: 拖&放处理拖放对象
88 MAC 字符字段长度 1
89 INDX_FIELD 自然数
90 INDX_CFIEL 自然数
91 INDX_QFIEL 自然数
92 INDX_IFIEL 自然数
93 INDX_ROUND 自然数
94 INDX_DECML 自然数
95 GET_STYLE 字符字段长度 1
96 MARK 字符字段长度 1
7、结构LVC_S_LAYO参数说明(ALV 控制: 布局结构)
布局是用来控制整个ALV的一个布局,比如ALV的标题,是否可编辑,行颜色,列颜色。参照ALV的控制结构[LVC_S_LAYO],以后的例子我将详细介绍如何设置行颜色和列颜色.
详细的结构说明
字段名 描述 Value range
CWIDTH_OPT 最优化宽度 SPACE, \'X\'
SMALLTITLE 小标题,如果设置了这个字段,
则标题与列标题大小一样 SPACE, \'X\'
GRID_TITLE 标题,在网格和工具条之间 最长70个字符
NO_HEADERS 如果被设置,列标题隐藏 SPACE, \'X\'
NO_HGRIDLN 隐藏水平线 SPACE, \'X\'
NO_MERGING 禁用单元格合并 SPACE, \'X\'
NO_ROWMARK 如果被设置,选择列在选择模式
为D和A的时候隐藏 SPACE, \'X\'
NO_TOOLBAR 隐藏工具条 SPACE, \'X\'
NO_VGRIDLN 隐藏垂直线 SPACE, \'X\'
SEL_MODE 选择模式 SPACE, \'A\', \'B\', \'C\', \'D\'
EXCP_CONDS 合计例外 SPACE, \'X\'
EXCP_FNAME 字段名称带有例外编码 最长30个字符
EXCP_LED 例外作为 LED SPACE, \'X\'
EXCP_ROLLN 例外文档的数据元素 SPACE, \'X\'
CTAB_FNAME 带有复杂单元格颜色编码的字段名称 最长30个字符
INFO_FNAME 带有简单行彩色代码的字段名称 最长30个字符
ZEBRA 可选行颜色,如果设置了,出现了间隔色带 SPACE, \'X\'
NO_TOTLINE 没有总计 SPACE, \'X\'
NUMC_TOTAL 可以对NUMC字段进行合计 SPACE, \'X\'
TOTALS_BEF 总计输出在第一行,小计在新的值之前 SPACE, \'X\'
STYLEFNAME 设置单元格,比如PUSHBUTTON 最长30个字符
8、打印的参数控制请参考结构 [LVC_S_PRNT]
9、排序的参数控制请参考结构[LVC_S_SORT]
10、过滤的参数控制请参考结构[LVC_S_FILT]
11、'REUSE_ALV_GRID_DISPLAY'函数常用参数
CALL FUNCTION \'REUSE_ALV_GRID_DISPLAY\'
EXPORTING
i_interface_check = \'\' 接口一致性检查
i_callback_program = sy-repid 当前程序名
is_layout = layout 输出样式
it_fieldcat = fieldcat[] 字段定义描述表
i_callback_pf_status_set = \'PF_STATUS_SET\' 触发事件调用子程序
i_callback_user_command = \'USER_COMMAND\' 鼠标事件操作子程序
it_events = i_events[] 出口程序触发事件
i_callback_html_top_of_page = \'ALV_TOP_OF_PAGE\' ALV输出表头设置
i_grid_settings = wl_lvc_s_glay 打印表头设置
it_sort = sortable[] 排序设置
TABLES
t_outtab = ig_out
EXCEPTIONS
program_error = 1
OTHERS = 2.
12、'REUSE_ALV_LIST_DISPLAY'函数常用参数
13、方法"set_table_for_first_display"的参数说明
_BUFFER_ACTIVE 如果方法调用是静态的,可以设置这个标记,这表示,如果每次显示ALV都是
相同的字段目录.既然这样,那么字段目录会被放到一个特殊的缓存里,
这样加速了ALV的显示
I_STRUCTURE_NAME 输出数据参考的数据字典的结构名,例如\'SFLIGHT\'.如果指定了这个参数,字段
目录会自动生成,下面的参数IT_FIELDCATALOG不需要传值.
IS_VARIANT 决定布局显示的变式
I_SAVE 决定用户是否可以保存变式:
\'X\' 只能保存全局变式
\'U\' 只能保存特定变式
\'A\' 都可以保存
SPACE 不可以保存变式
I_DEFAULT 决定用户是否可以定义默认的布局:
\'X\' 可以定义默认布局,这个参数是默认的
SPACE 不可以定义默认布局
IS_LAYOUT 布局参数,传递布局控制的一些信息
IS_PRINT 后台打印属性的参数
IT_SPECIAL_GROUPS 如果在字段目录中,一些字段通过SP_GROUP被分组在一起.我们就必须为这些
组传递一个组的文本内表进去
IT_TOOLBAR_EXCLUDING 需要隐藏的标准的按钮的内表
IT_HYPERLINK 为每个句柄分配了超连接的内表,LVC_S_HYPE中的HREF存放了超连接的地址,
HANDLE指定了句柄,使用这些句柄,你可以在GRID中使用超连接
IT_ALV_GRAPHICS 比较复杂,没有用过,意思好象是可以在图表中显示ALV.
IT_OUTTAB 输出数据存放的内表,数据都是存放在这个内表里
IT_FIELDCATALOG 字段目录
IT_SORT 排序的标准
IT_FILTER 过滤的标准
14、方法"REFRESH_TABLE_DISPLAY"的参数说明
IS_STABLE 刷新的稳定性,有2个参数,一个是行,一个是列.如果设置了相应的值,
那么对应的行,或者列,在刷新的时候,将会保持稳定,就是滚动条保持不动.
I_SOFT_REFRESH 这个参数只是在异常情况下被使用,如果设置了这个参数,任何创建的合计,
任何排序次序,任何为了显示数据而设置的过滤都将保持不变.这个是非常
有意义的.例如:当然你没有修改数据内表里的数据而想刷新ALV,仅仅只是
改变一下布局和字段目录.