ALV中的fieldcat常用以及大全.docx
《ALV中的fieldcat常用以及大全.docx》由会员分享,可在线阅读,更多相关《ALV中的fieldcat常用以及大全.docx(38页珍藏版)》请在冰豆网上搜索。
![ALV中的fieldcat常用以及大全.docx](https://file1.bdocx.com/fileroot1/2023-2/7/4ae4c46c-bb5f-44c4-85b7-516888107766/4ae4c46c-bb5f-44c4-85b7-5168881077661.gif)
ALV中的fieldcat常用以及大全
字段目录是用来控制ALV显示的网格中每个字段的属性的,比如字段的顺序,对齐方式,可编辑状态,颜色,等等.常用的字段如下:
row_pos:
默认值为0,可选值为1、2、3,既最大分3级别显示
fieldname字段的名字(内表中定义的字段名)
ref_field(ALV控制:
内部表字段的参考字段名称)参考的数据字典的字段名,配合ref_tabname一起使用,一般用来使单元格生成F4帮助
ref_table(ALV控制:
内部表字段的参考表名称)参考数据字典的表名,配合ref_fieldname使用
fieldnameALV控制:
内部表字段的字段名称TABNAMELVC标签名称
Cfieldnamecurrencyunitfieldname值为当前输出内表中的货币单位字段的字段名称
CtabnameCfieldname字段值对应的输出内表
Qfieldname计量单位字段名,例如如值EA对应的字段名
QtabnameQfieldname对应的输出内表名
COLTEXTALV控制:
列标题
key字段是否为关键字(X或空)
checkbox复选框形式(X或空)
ICON作为图标输出,在ALV输出内表中的字段内容必须是有效的图标名称,图标名称和ID存在数据字典中ICON表中。
OUTPUTLENALV控制:
列的字符宽度
edit当前列可编辑
emphasize设置列的颜色。
取值格式C(1-7)(0-1)(0-1)当有字段的edit属性生效时,会与该参数值想冲突。
edit_mask同write语句中的editmask格式是一样的,一般用来格式化时间和日期等
col_pos字段的位置
no_out当前列隐藏输出
just对齐方式(取值为R,L,C)
lzero输出前导零(X或空),仅NUMC类型字段有效
no_zero如果取值为零,则为空,既不输出零。
do_sum对当前列输出时自动求和
scrtext_l字段的文本描述,输出时候显示。
长描述
scrtext_m字段的文本描述,输出时候显示。
中描述
scrtext_s字段的文本描述,输出时候显示。
短描述
lowercase是否允许小写字母(X)
decimals输出小数点后面位数
hotspot当前列设置为热点敏感、单机响应
fix_column固定列,不随滚动条滚动(必须在左边才生效)
Key_sel这个参数只和设置了key的字段相关,和key一起使用,可以交互式的隐藏设置为KEY的字段(alv_list有效)
tech技术字段,设置’X’后,该字段不会显示,也不能输出,如同MANDT字段一样的效果
symbol作为Symbol符号输出,在ALV输出内表中的字段值可以是ABAP名称,如SYM_FILLED_SQUARE(常量,不能使用引号),也可以是ID,如’%’,并且在报表中要使用include语句.参考程序:
RSTXSYMB
no_sign不输出正负号+、-
reptext_ddic与数据元素的主标题类似
ddictxt可选值为S,M,L,指定列标题为长描述,中描述,还是短描述,该值定义后,列标题的显示内容将固定.
以上fieldcat参数对于REUSE_ALV_LIST_DISPLAY和REUSE_ALV_GRID_DISPLAY生效。
以下来自
ALV常用参数的详细描述
调用功能模块:
CALLFUNCTION\'REUSE_ALV_GRID_DISPLAY\'
EXPORTING
i_structure_name='SPFLI'//输出表的结构
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.
常用属性:
(赋值’’中内容必须为大写)
1.Fieldcat
data:
fieldcattypeslis_t_fieldcat_alvwithheaderline.
it_fieldcat=fieldcat[]
属性
(用来定义表单中的各个列的相关信息)
Fieldcat-col_pos=n.输出列
Fieldcat-tabname=‘FIELDNAME’.对应的内表字段名
Fieldcat-seltext_s/m/l=‘列名’.输出列文本
(_s:
短文本
_l:
长文本)
Fieldcat-emphasize=‘CX10’.带有颜色的高亮列
(其中X=(1-7)
颜色同format)
Fieldcat-hotspot=‘X’.作为热点显示
可触发鼠标触发事件
Fieldcat-currency=‘CURRKEY’.表TCURX中的货币名称
Fieldcat-quantity(3)计量单位
Fieldcat-qfieldname参考计量单位的字段名称
Fieldcat-round=n.四舍五入至小数位数下n位
Fieldcat-exponent=n.浮点数的幂指数为n
Fieldcat-key=‘X’.关键字段
Fieldcat-icon=‘X’.作为图标输出
Fieldcat-symbol=‘X’.输出作为符号
Fieldcat-checkbox=‘X’.作为复选框输出
Fieldcat-just=SPACE,\'R\',\'L\',\'C\'.对齐方式
Fieldcat-lzero=‘X’.输出前导零
Fieldcat-no_sign=‘X’.输出抑制符号
Fieldcat-no_zero=‘X’.为输出隐藏零
Fieldcat-edit_mask=SPACE,mask..输出为mask的模式
Fieldcat-fix_column=‘X’.固定列
Fieldcat-do_sum=‘X’.总计列值总和
Fieldcat-no_out=‘X’.列不输出
Fieldcat-tech=‘X’.该字段为技术字段
Fieldcat-outputlen=n列的字符宽度为n
Fieldcat-decimals_out=n能控制小数点的位数为n
Fieldcat-datatype=C,I,N…定义数据类型
2.SORT
data:
sortabletypeslis_t_sortinfo_alvwithheaderline.
it_sort=sortable[]属性(排序)
Sortable-Fieldname字段名
Up升序排列
Down降序排列
Subtot
3.Layout
data:
layouttypeslis_layout_alv.
is_layout=layout
属性(用于定义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_initial_lines
detail_popup是否弹出详细信息窗口
detail_titlebar设置弹出窗口的标题栏
totals_text
totals_only
group_change_edit
header_text
4.按钮
DATA:
i_eventsTYPEslis_t_eventWITHHEADERLINE.
事件:
it_events=i_events[]
i_callback_pf_status_set=\'PF_STATUS_SET\'
i_callback_user_command=\'USER_COMMAND\'
出口程序触发事件对应子程序:
FORMPF_STATUS_SETUSINGrt_extabTYPEslis_t_extab.
FORMuser_commandUSINGucommLIKEsy-ucommselfieldTYPEslis_selfield.
功能代码:
函数文本:
图标名称:
&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
&VEXCELMicrosoftExcelICON_XLS
&AQW字处理...ICON_WORD_PROCESSING
%PC本地文件...ICON_EXPORT
%SL邮件收件人ICON_MAIL
&ABCABC分析ICON_ABC
&GRAPH图形ICON_GRAPHICS
&OL0更改布局...ICON_ALV_VARIANTS
&OAD选择格式...ICON_ALV_VARIANT_CHOOSE
&AVE保存格式...ICON_ALV_VARIANT_SAVE
&INFO信息ICON_INFORMATION
1.ALV表头设置
i_callback_html_top_of_page=\'ALV_TOP_OF_PAGE\'
formtop_of_pageusingcl_ddtypereftocl_dd_document.
语法同HTMLfomat
ALV_GRID介绍
一.ALV介绍
TheALVGridControl(ALV=SAPListViewer)是一个显示列表的灵活的工具,它提供了基本功能的列表操作,也可以通过自定义来进行增强,因此可以允许你可以在大型的应用程序中使用.
SAP提示:
在SAP的开发项目中,ALVGRID也可以作为修改和创建数据的一种工具,然而,目前这个功能只在实验计划中使用,还没有向客户发布.
下面是一个ALVGRID的图片:
它包括3大部分,工具栏,标题,用于显示数据的网格控制器.如果有必要,用户可以隐藏标题和工具栏.
ALV家族包含3中ALV工具:
简易的,两层ALV,分等级连续的列表和树形结构的ALV.
二.ALVGRIDCONTROL(ALV网格控制器)
ALVGRIDCONTROL使用了控制器技术以实现艺术性的屏幕显示,象所有的控制器一样,ALVGRIDCONTROL通过系统中的一个全局的类提供了方法,以响应它的动作.
使用了ABAP的对象以后,列表是通过ALV的一个实例(INSTANCE)来显示的,程序员可以使用ABAP对象的事件管理.
三.ALVGRIDCONTROL实例
ALVGRID实例的定义,参照CL_GUI_ALV_GRID类
dataALV_GRID1typereftocl_gui_alv_grid.
ALVGRID继承结构:
ALV_GRID介绍二
(1)
四、ALVGRID相关的几个控制结构
1.字段目录[Fieldcatalog]
字段目录是用来控制ALV显示的网格中每个字段的属性的,比如字段的顺序,对齐方式,可编辑状态,颜色,等等.
常用的控制字段如下:
(下面的示例将说明这些字段的使用,参考STRUCTURELVC_S_FCAT)
2ROW_POSALV控制:
输出行(内部使用)
3COL_POSALV控制:
输出列列的位置,第几列,例如1,2,…..
4FIELDNAMEALV控制:
内部表字段的字段名称字段名称
5TABNAMELVC标签名称表名,如果是内表,是1
6CURRENCYALV控制:
货币单位
7CFIELDNAMEALV控制:
参考的当前单位的字段名称
8QUANTITYALV控制:
计量单位
9QFIELDNAMEALV控制:
参考计量单位的字段名称
10IFIELDNAMEALV控制:
内部表字段的字段名称
11ROUNDALV控制:
ROUND值
12EXPONENTALV控制:
流动表示的指数
13KEYALV控制:
关键字段关键字段,前面变蓝色
14KEY_SELALV控制:
可以被隐藏的关键列可以被隐藏的关键列
15ICONALV控制:
作为图标输出此列作为图标输出
16SYMBOLALV控制:
输出作为符号
17CHECKBOXALV控制:
作为复选框输出复选框输出
18JUSTALV控制:
对齐对齐方式:
\'R\':
rightjustified
\'L\':
leftjustified
\'C\':
centered
19LZEROALV控制:
输出前导零X\'
20NO_SIGNALV控制:
输出抑制符号X\',不输出符号
21NO_ZEROALV控制:
为输出隐藏零X\',隐藏0
22NO_CONVEXTALV控制:
不考虑输出的转换退出
23EDIT_MASKALV控制:
为输出编辑掩码格式
24EMPHASIZEALV控制:
带有颜色的高亮列列的颜色
25FIX_COLUMNALV控制:
固定列
26DO_SUMALV控制:
总计列值X\',合计
ALV_GRID介绍二
(2)
27NO_SUMALV控制:
没有总计列值X\',没有合计
28NO_OUTALV控制:
列没有输出X\',隐藏此列
29TECHALV控制:
技术字段X\'.也是隐藏,但是有点不一样
30OUTPUTLENALV控制:
列的字符宽度输出的长度
31CONVEXIT转换例程
32SELTEXTALV控制:
对话功能的列标识符
33TOOLTIPALV控制:
列抬头的工具提示
34ROLLNAMEALV控制:
F1帮助的数据元素
35DATATYPEABAP字典中的数据类型ABAP字典中的数据类型
36INTTYPEABAP数据类型(C,D,N,...)ABAP数据类型(C,D,N,...)
37INTLEN以字节计的内部长度内容的长度
38LOWERCASE允许/不允许小写字母X\'允许大小写
39REPTEXT标题
40HIER_LEVELALV控制:
内部使用
41REPREPALV控制:
价值是补充/补充接口的选择标准
42DOMNAME定义域名
43SP_GROUP组代码
44HOTSPOTALV控制:
单击敏感X\',下面出现下划线,响应单击
45DFIELDNAMEALV控制:
数据库中列组的字段名称
46COL_IDALV控制:
列ID
47F4AVAILABL字段有输入帮助吗X\'.此列有搜索帮助
48AUTO_VALUEALV控制:
自动复制值
49CHECKTABLE表名
50VALEXI固定值存在
51WEB_FIELDALV控制:
内部表字段的字段名称
52HREF_HNDL自然数热点连接的句柄
53STYLEALV控制:
样式下面有例子会介绍,比如PUSHBUTTION
54STYLE2ALV控制:
样式
55STYLE3ALV控制:
样式
56STYLE4ALV控制:
样式
57DRDN_HNDL自然数下拉的句柄
58DRDN_FIELDALV控制:
内部表字段的字段名称下拉的字段
59NO_MERGING字符字段长度1相同的值不合并
60H_FTYPEALV树控制:
功能类型(总计,平均,最大.最小,...)
61COL_OPT可选列优化的条目
62NO_INIT_CH字符字段长度1
63DRDN_ALIAS字符字段长度1
64REF_FIELDALV控制:
内部表字段的参考字段名称
65REF_TABLEALV控制:
内部表字段的参考表名称
66TXT_FIELDALV控制:
内部表字段的字段名称
67ROUNDFIELDALV控制:
带有ROUND说明的字段名称
68DECIMALS_OALV控制:
输出小数位的编号
69DECMLFIELDALV控制:
带有DECIMALS说明的字段名称
70DD_OUTLENALV控制:
输出字符长度
71DECIMALS小数点后的位数设置小数的位数
72COLTEXTALV控制:
列标题列标题
73SCRTEXT_L长字段标签
74SCRTEXT_M中字段标签
75SCRTEXT_S短字段标签
76COLDDICTXTALV控制:
确定DDIC文本参考
77SELDDICTXTALV控制:
确定DDIC文本参考
78TIPDDICTXTALV控制:
确定DDIC文本参考
79EDITALV控制:
准备输入输出状态.\'X\'可输入
80TECH_COLALV控制:
内部使用
81TECH_FORMALV控制:
内部使用
82TECH_COMPALV控制:
内部使用
83HIER_CPOSALV控制:
层次列位置
84H_COL_KEY树控制:
列名称/项目名称
85H_SELECT标识是否可以选择树控制中的列
86DD_ROLL数据元素(语义域)
87DRAGDROPIDALV控制:
拖&放处理拖放对象
88MAC字符字段长度1
89INDX_FIELD自然数
90INDX_CFIEL自然数
91INDX_QFIEL自然数
92INDX_IFIEL自然数
93INDX_ROUND自然数
94INDX_DECML自然数
95GET_STYLE字符字段长度1
96MARK字符字段长度1
ALV_GRID介绍二(3)
2.布局控制[layout]
布局是用来控制整个ALV的一个布局,比如ALV的标题,是否可编辑,行颜色,列颜色.
参照ALV的控制结构[LVC_S_LAYO],以后的例子我将详细介绍如何设置行颜色和列颜色.
详细的结构说明
字段名描述Valuerange
CWIDTH_OPT最优化宽度SPACE,\'X\'
SMALLTITLE小标题,如果设置了这个字段,
则标题与列标题大小一样SPACE,\'X\'
GRID_TITLE标题,在网格和工具条之间最长70个字符
NO_HEADERS如果被设置,列标题隐藏SPACE,\'X\'
NO_HGRIDLN隐藏水平线SPACE,\'X\'
NO_MERGING禁用单元格合并SPACE,\'X\'
NO_ROWMARK(如果被设置,选择列在选择模式---这是网上摘抄话.)---------禁用系统自带的行选择'X'
为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例外作为LEDSPACE,\'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个字符
ALV_GRID介绍二(4)
3.打印和排序,过滤控制
打印的参数控制请参考结构[LVC_S_PRNT]
排序的参数控制请参考结构[LVC_S_SORT]
过滤的参数控制请参考结构[LVC_S_FILT]
这里不再一一解释,进入中文版本,里面应该也有解释的,虽然一些不是很清楚.
五.编写简单的ALV程序.
首先这里就不详细介绍DIALOG的用法了.
OO的ALVGRID必须存在于一个容器当中,就是FUNCTION的ALV,其实也是一样的,底层也是使用CL_GUI_ALV_GRID这个类的.
首先ALV的显示需要有几个先决条件.
1,字段目录,这个是必须的,如果没有这个参数,参考一个数据字典也是