1、 ALV详细字段介绍 ALV常用参数的详细描述 调用功能模块: CALL FUNCTION \'REUSE_ALV_GRID_DISPLAY\' EXPORTING i_interface_check = \'\' 接口一致性检查 i_callback_program = sy-repid 当前程序名 is_layout = layout 输出样式 it_fieldcat
2、 = 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\' A
3、LV输出表头设置 i_grid_settings = wl_lvc_s_glay 打印表头设置 it_sort = sortable[] 排序设置 TABLES t_outtab = ig_out EXCEPTIONS program_error = 1 OTHERS = 2. 常用属性:(赋值’’中内容必须为大写) 1. Fieldcat
4、 data: fieldcat type slis_t_fieldcat_alv with header line. it_fieldcat = fieldcat[] 属性 (用来定义表单中的各个列的相关信息) Fieldcat-col_pos = n. 输出列 Fieldcat-tabname = ‘FIELDNAME’. 对应的内表字段名 Fieldcat-seltext_s/m/l = ‘列名’. 输出列文本(_s:短文本 _l:长文本) Fieldcat-emphasize
5、 ‘CX10’. 带有颜色的高亮列(其中X=(1-7)颜色同format) Fieldcat-hotspot = ‘X’. 作为热点显示,可触发鼠标触发事件 Fieldcat-currency = ‘CURRKEY’. 表 TCURX 中的货币名称 Fieldcat-quantity(3) 计量单位 Fieldcat-qfieldname = '数量' 参考计量单位的字段名称 Fieldcat-round = n. 四舍五入至小数位数下n 位 Fi
6、eldcat-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-n
7、o_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’. 该字段为技术字段 Fieldc
8、at-outputlen = n 列的字符宽度为n Fieldcat-decimals_out = n 能控制小数点的位数为n Fieldcat-datatype = C,I,N… 定义数据类型 2. SORT data: sortable type slis_t_sortinfo_alv with header line. it_sort = sortable[] 属性 (排序) Sortable-Fieldname 字段名 Up 升序排列
9、 Down 降序排列 Subtot 3. Layout data: layout type slis_layout_alv . is_layout = layout 属性 (用于定义ALV表单的相关格式、属性) info_fieldname = 'LINE_COLOR'. 设置特殊行颜色(将LINE_COLOR增加到内表字段,写'CX10'到特殊行的LINE_COLOR, X为颜色值) colwidth_optimize = ‘X’
10、 优化列宽设置 no_colhead = 'X'. 不显示列名 no_vline = 'X'. 不显示列间竖线 zebra = 'X' 可选行颜色,如果设置了,出现了间隔色带 f2code = '&ETA'. 设置触发弹出详细信息窗口的功能码,这里是双击 detail_initial_lines detail_popup 是否弹出详细信息窗口 detail_titlebar 设置弹出窗口的标题栏 to
11、tals_text totals_only group_change_edit header_text 4.按钮 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_exta
12、b TYPE slis_t_extab. FORM user_command USING ucomm LIKE sy-ucomm selfield TYPE slis_selfield. 功能代码: 函数文本: 图标名称: &ETA 细节 ICON_SELECT_DETAIL &EB9 调用报告... ICON_TABLE_SETTINGS &REFR
13、ESH 刷新 ICON_REFRESH &ALL 全部选择 ICON_SELECT_ALL &SAL 取消全选 ICON_DESELECT_ALL &OUP 按升序排列 ICON_SORT_UP &ODN 按降序排列 IC
14、ON_SORT_DOWN &ILT 设置过滤器 ICON_FILTER &UMC 总计 ICON_SUM &SUM 小计... ICON_INTERMEDIATE_SUM &RNT_PREV 打印预览 ICON_LAYOUT_CONTROL &VEXCEL
15、Microsoft Excel ICON_XLS &AQW 字处理... ICON_WORD_PROCESSING %PC 本地文件 ... ICON_EXPORT %SL 邮件收件人 ICON_MAIL &ABC ABC 分析 ICON_ABC &GRAPH
16、 图形 ICON_GRAPHICS &OL0 更改布局... ICON_ALV_VARIANTS &OAD 选择格式... ICON_ALV_VARIANT_CHOOSE &AVE 保存格式... ICON_ALV_VARIANT_SAVE &INFO 信息
17、 ICON_INFORMATION 1. ALV表头设置 i_callback_html_top_of_page = 'ALV_TOP_OF_PAGE' form top_of_page using cl_dd type ref to cl_dd_document. 语法同HTML fomat ALV_GRID介绍 一.ALV介绍 The ALV Grid Control (ALV = SAP List Viewer)是一个显示列表的灵活的工具,它提供了基本功能的列表操作,也可以通过自定义来进行增强,因此可以允许你可以在大型的应用程序中使用
18、 SAP提示: 在SAP的开发项目中,ALV GRID也可以作为修改和创建数据的一种工具,然而,目前这个功能只在实验计划中使用,还没有向客户发布. 下面是一个ALV GRID的图片: 它包括3大部分,工具栏,标题,用于显示数据的网格控制器.如果有必要,用户可以隐藏标题和工具栏. ALV家族包含3中ALV工具:简易的,两层ALV,分等级连续的列表和树形结构的ALV. 二.ALV GRID CONTROL (ALV网格控制器) ALV GRID CONTROL使用了控制器技术以实现艺术性的屏幕显示,象所有的控制器一样,ALV GRID CONTR
19、OL通过系统中的一个全局的类提供了方法,以响应它的动作. 使用了ABAP的对象以后,列表是通过ALV的一个实例(INSTANCE)来显示的,程序员可以使用ABAP对象的事件管理. 三.ALV GRID CONTROL 实例 ALV GRID实例的定义,参照CL_GUI_ALV_GRID类 data ALV_GRID1 type ref to cl_gui_alv_grid. ALV GRID继承结构: ALV_GRID介绍(1) 四、ALV GRID相关的几个控制结构 1.字段目录 [Field catalog]
20、字段目录是用来控制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 A
21、LV 控制: 参考的当前单位的字段名称 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 控制:
22、输出作为符号 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 控制: 为输出
23、编辑掩码 格式 24 EMPHASIZE ALV 控制: 带有颜色的高亮列 列的颜色 25 FIX_COLUMN ALV 控制: 固定列 26 DO_SUM ALV 控制: 总计列值 X\',合计 27 NO_SUM ALV 控制: 没有总计列值 X\' ,没有合计 28 NO_OUT ALV 控制: 列没有输出 X\' ,隐藏此列 29 TECH ALV 控制: 技术字段 X\'.也是隐藏,但是有点不一样 30 OUTPUTLEN ALV 控制: 列的字符宽度 输出的长度 31 CONVEXIT 转换例程 32 SELTEXT ALV 控制: 对话功能的列
24、标识符 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 控制: 价值是补充/补
25、充接口的选择标准 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_HND
26、L 自然数 热点连接的句柄 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
27、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 控制: 输出字符长度
28、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
29、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 I
30、NDX_ROUND 自然数 94 INDX_DECML 自然数 95 GET_STYLE 字符字段长度 1 96 MARK 字符字段长度 1 ALV_GRID介绍(2) 2.布局控制[layout] 布局是用来控制整个ALV的一个布局,比如ALV的标题,是否可编辑,行颜色,列颜色. 参照ALV的控制结构[LVC_S_LAYO],以后的例子我将详细介绍如何设置行颜色和列颜色. 详细的结构说明 字段名 描述 Value range CWIDTH_OPT 最优化宽度 SPACE, \'X\' SMALLTITLE 小标题,如果设置了这个字
31、段,则标题与列标题大小一样 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 选择模式 SP
32、ACE, \'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 没
33、有总计 SPACE, \'X\' NUMC_TOTAL 可以对NUMC字段进行合计 SPACE, \'X\' TOTALS_BEF 总计输出在第一行,小计在新的值之前 SPACE, \'X\' STYLEFNAME 设置单元格,比如PUSHBUTTON 最长30个字符 ALV_GRID介绍(3) 3.打印和排序,过滤控制 打印的参数控制请参考结构[LVC_S_PRNT] 排序的参数控制请参考结构[LVC_S_SORT] 过滤的参数控制请参考结构[LVC_S_FILT] 这里不再一一解释,进入中文版本,里面应该也有解释的,虽然一些不是很清楚.
34、 五.编写简单的ALV程序. 首先这里就不详细介绍DIALOG的用法了. OO的ALV GRID必须存在于一个容器当中,就是FUNCTION的ALV,其实也是一样的,底层也是使用CL_GUI_ALV_GRID这个类的. 首先ALV的显示需要有几个先决条件. 1,字段目录,这个是必须的,如果没有这个参数,参考一个数据字典也是可以的,就是参数I_STRUCTURE_NAME. 2.存放数据的内表,最好内表的结构和字段目录是一致的,否则可能会出现一些无法预知的错误,当然你说我非要不一样,那也不一定会出现错误.我建议是最好一样的. 这2个
35、是必须的,布局的话,应该是可以不设置的,使用默认的就可以了. 第一步:创建个SCREEN,在屏幕上创建个容器,CONTAINER.定义变量. DATA: WCL_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER, WCL_ALV TYPE REF TO CL_GUI_ALV_GRID . *--- 存放字段目录的内表 DATA gt_fieldcat TYPE lvc_t_fcat . *--- 布局结构 DATA gs_layout TYPE lvc_s_layo . *--
36、声明需要显示的内表(以SFLIGHT为例) DATA BEGIN OF gt_list OCCURS 0 . INCLUDE STRUCTURE SFLIGHT . DATA END OF gt_list . 第二步: 创建ALV这个对象,它的父组件是那个容器. 在PBO中写入如下代码: PROCESS BEFORE OUTPUT . MODULE display_alv . 创建DISPLAY_ALV的MODULE后,写下如下代码: MODULE display_alv OUTPUT .
37、 PERFORM display_alv . ENDMODULE . 在FORM DISPLAY_ALV中,判断ALV实例是否存在,如果不存在,则创建: IF WCL_ALV IS INITIAL . CREATE OBJECT: WCL_CONTAINER EXPORTING CONTAINER_NAME = \'ALV_CON\'. CREATE OBJECT WCL_ALV EXPORTING I_PARENT = WCL_CONTAINER.
38、 "准备获取字段目录 PERFORM prepare_field_catalog CHANGING gt_fieldcat . "设置布局 PERFORM prepare_layout CHANGING gs_layout . "显示ALV CALL METHOD gr_alvgrid->set_table_for_first_display EXPORTING * I_BUFFER_ACTIVE = * I_CONSISTENCY_CHECK = *
39、 I_STRUCTURE_NAME = * IS_VARIANT = * I_SAVE = * I_DEFAULT = \'X\' is_layout = gs_layout * IS_PRINT = * IT_SPECIAL_GROUPS = * IT_TOOLBAR_EXCLUDING = * IT_HYPERLINK = CHANGING it_outtab = gt_list[] it_fieldcatalog = gt_fieldcat
40、 * IT_SORT = * IT_FILTER = EXCEPTIONS invalid_parameter_combination = 1 program_error = 2 too_many_lines = 3 OTHERS = 4 . ELSE. *----刷新ALV CALL METHOD gr_alvgrid->refresh_table_display * EXPORTING * IS_STABLE = * I_SO
41、FT_REFRESH = EXCEPTIONS finished = 1 OTHERS = 2 . IF sy-subrc <> 0. *--异常处理 ENDIF. ENDIF . 方法"set_table_for_first_display"的参数说明 ------------------------------------------------------------------------------ |I_BUFFER_ACTIVE | 如果方法调用是静态的,可
42、以设置这个标记, | | 这表示,如果每次显示ALV都是相同的字段目录. | | 既然这样,那么字段目录会被放到一个特殊的缓存里, | | 这样加速了ALV的显示 ----------------------------------------------------------------------
43、 |I_STRUCTURE_NAME | 输出数据参考的数据字典的结构名,例如\'SFLIGHT\'. | | 如果指定了这个参数,字段目录会自动生成,下面的参数 | | IT_FIELDCATALOG不需要传值. ------------------------------------------------------------------------------ |IS_VARIANT | 决定布局显示的变式 ---------------
44、 |I_SAVE | 决定用户是否可以保存变式: | | 'X' 只能保存全局变式 | | 'U' 只能保存特定变式 | | 'A' 都可以保存 | | SPACE 不可以保存变式 ----------------------------------------
45、 |I_DEFAULT | 决定用户是否可以定义默认的布局: | | 'X' 可以定义默认布局,这个参数是默认的 | | SPACE 不可以定义默认布局 ------------------------------------------------------------------------------ |IS_LAYOUT | 布局参数,传递布局控制的一些信息 --
46、 |IS_PRINT | 后台打印属性的参数 ------------------------------------------------------------------------------ |IT_SPECIAL_GROUPS | 如果在字段目录中,一些字段通过SP_GROUP被分组在一起. | | 我们就必须为这些组传递一个组的文本内表进去
47、 ------------------------------------------------------------------------------ |IT_TOOLBAR_EXCLUDING| 需要隐藏的标准的按钮的内表 ------------------------------------------------------------------------------ |IT_HYPERLINK | 为每个句柄分配了超连接的内表, | | LVC_S_HYPE中的HREF存放了超连接的地址, |
48、 | HANDLE指定了句柄,使用这些句柄,你可以在GRID中使用超连接 ------------------------------------------------------------------------------ |IT_ALV_GRAPHICS | 比较复杂,没有用过,意思好象是可以在图表中显示ALV. ------------------------------------------------------------------------------ |IT_OUTTAB | 输出
49、数据存放的内表,数据都是存放在这个内表里 ------------------------------------------------------------------------------ |IT_FIELDCATALOG | 字段目录 ------------------------------------------------------------------------------ |IT_SORT | 排序的标准 ----------------------------------------------------
50、 |IT_FILTER | 过滤的标准 ------------------------------------------------------------------------------ 方法"REFRESH_TABLE_DISPLAY"的参数说明 ------------------------------------------------------------------------------ IS_STABLE 刷新的稳定性,有2个参数,一个是行,一个是列
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818