转载 ABAP-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_callback_top_of_page = 'TOP_OF_PAGE' ALV输出表头设置(function实现) i_grid_settings = wl_lvc_s_glay 打印表头设置 it_sort = sortable[] 排序设置
i_save ='X' I_SAVE 参数有四个可选值 分别是 空(两个功能都关闭,只能选择更改不能保存)
X(只保留缺省默认的)
U(只保留特定用户功能)
A(缺省默认和特定用户都可以) TABLES t_outtab = ig_out EXCEPTIONS program_error = 1 OTHERS = 2.
二、Fieldcat属性
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 = ‘CX10’. 带有颜色的高亮列(其中X=(1-7) 颜色同format)
(格式:格式:C+X(颜色:1~7)X(是否加深1/0 1深0浅)X(是否反色1/0-1字0底纹)) 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… 定义数据类型
三、Layout属性
data: layout type slis_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 = 'X' 设置斑马纹 f2code = '&ETA'. 设置触发弹出详细信息窗口的功能码,这里是双击 no_vline 这个用来设置列间隔线 detail_initial_lines DETAILS时显示字段为空的字段 detail_popup 是否弹出详细信息窗口 detail_titlebar 设置弹出窗口的标题栏 totals_text totals_only group_change_edit header_text
key_hotspot 设置主键的热点,用于鼠标事件
box_fieldname 设置选择按钮,选中时赋值为"X"
confirmation_prompt 设置退出时,显示提示框
四、sort排序
data: gt_sortable type slis_t_sortinfo_alv with header line. it_sort = sortable[] 属性 (排序) Sortable-Fieldname = '字段名'. 按某个字段进行排序 Sortable-spos = '1'. . 多个字段排序时,设置排序的先后顺序 Sortable-Up = 'X'. 升序排列 Sortable-Down = 'X'. 降序排列 Sortable-Subtot = 'X'. 进行“小计”
五、Filter过滤
DATA GT_FILTER TYPE SLIS_T_FILTRE_ALV. DATA GS_FILTER TYPE SLIS_FILTRE_ALV. IT-FILTER = GT_FILTER. PERFORM BUILD_FILTER. FORM BUILD_FILTER. CLEAR GS_FILTER. GS_FILTER-fieldname = 'sex'.设置筛选字段 GS_FILTER-sign0 = 'E'.设置E/I GS_FILTER-optio = 'EQ'.设置EQ/NE GS_FILTER-VALUF = ''.设置低值 GS_FILTER-VALUT = ''.设置高值 APPEND GS_FILTER TO GT_FILTER. ENDFORM.
六、表头设置
"——利用OO实现
i_callback_html_top_of_page = 'ALV_TOP_OF_PAGE' form alv_top_of_page using cl_dd type ref to cl_dd_document. "——利用function ALV 实现 I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE' ALV输出表头设置 FORM TOP_OF_PAGE.
DATA: LT_LISTHEADER TYPE SLIS_T_LISTHEADER. DATA:LS_LISTHEADER TYPE SLIS_LISTHEADER. LS_LISTHEADER-TYP = 'H'. LS_LISTHEADER-INFO = '表头描述文本'. APPEND LS_LISTHEADER TO LT_LISTHEADER . LS_LISTHEADER-TYP = 'S'. LS_LISTHEADER-KEY = '字段名称或描述'. LS_LISTHEADER-INFO = '字段值'. APPEND LS_LISTHEADER TO LT_LISTHEADER . LS_LISTHEADER-TYP = 'A'. LS_LISTHEADER-INFO = '结尾斜体'. APPEND LS_LISTHEADER TO LT_LISTHEADER . CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING IT_LIST_COMMENTARY = LT_LISTHEADER ENDFORM.
七、按钮
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. 系统按钮功能码: 功能代码: 函数文本: 图标名称: &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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示