OO方式实现ALV: cl_salv_table
这里总结最近用cl_salv_table实现ALV遇到问题和解决办法
FORM set_alv2 .
DATA: lv_syrepid TYPE syrepid.
lv_syrepid = sy-cprog.
cl_salv_table=>factory(
EXPORTING
list_display = abap_false
r_container = cl_gui_container=>screen0
IMPORTING
r_salv_table = gr_alv
CHANGING t_table = gt_doc ). “传输需要显示的内表 gr_functions = gr_alv->get_functions( ). "获取常用的ALV功能按钮 DATA lv_icon TYPE string.
lv_icon = icon_refresh.
gr_functions->add_function( "添加自定义按钮
EXPORTING
name = 'DOWNLOAD'
icon = '@M9@'
text = '下载文档'
tooltip = '下载文档'
position = if_salv_c_function_position=>right_of_salv_functions ). "往右边排 gr_functions->add_function(
EXPORTING
name = 'SELECT_ALL'
icon = '@4B@'
text = '全选'
tooltip = '全选'
position = if_salv_c_function_position=>left_of_salv_functions ). "往右边排 gr_functions->add_function(
EXPORTING
name = 'DESELECT_ALL'
icon = '@4D@'
text = '取消全选'
tooltip = '取消全选'
position = if_salv_c_function_position=>left_of_salv_functions ). "往右边排 gr_functions->set_all( abap_true ). ”设置所有alv按钮(自带的+自定义的)
"=====获取事件对象
DATA: gr_event TYPE REF TO cl_salv_events_table.
gr_event = gr_alv->get_event( ). "=====事件注册
DATA: gr_handle_event TYPE REF TO cl_handle_events.
CREATE OBJECT gr_handle_event.
SET HANDLER gr_handle_event->on_user_command FOR gr_event.
SET HANDLER gr_handle_event->on_checkbox FOR gr_event.
DATA: gr_column_list TYPE REF TO cl_salv_column_list. gr_columns = gr_alv->get_columns( ). "获取列的class
gr_column = gr_columns->get_column('ACTION_NO'). "获取该列
gr_column->set_short_text('需求号'). "调用修改列名称的方法
gr_columns->set_optimize( abap_true ). "调用设置列最优化设置方法这边用到列实例是gr_colums不是gr_colum gr_column = gr_columns->get_column('FLAG'). gr_column->set_short_text('选择').
gr_columnt ?= gr_column. "这边很重要
gr_columnt->set_cell_type( ). "设置选择列为checkbox,6代表checkbox gr_display = gr_alv->get_display_settings( ). "alv设置
gr_display->set_list_header('需求号&文档编号报表'). "alv抬头设置
gr_alv->display( )."调用实例方法显示表报 "调用显示alv方法展示ALV报表
ENDFORM. " SET_ALV2
下面是是事件的class的定义
CLASS cl_handle_events DEFINITION.
PUBLIC SECTION.
METHODS: on_user_command FOR EVENT added_function OF cl_salv_events_table
IMPORTING e_salv_function,
on_checkbox FOR EVENT link_click OF cl_salv_events_table
IMPORTING row column. ENDCLASS. CLASS cl_handle_events IMPLEMENTATION.
METHOD on_user_command.
PERFORM handle_user_command USING e_salv_function.
ENDMETHOD.
METHOD on_checkbox.
PERFORM handle_clickbox USING row column.
ENDMETHOD.
ENDCLASS.
事件的方法定义
FORM handle_user_command USING p_function TYPE salv_de_function. CASE p_function.
WHEN 'DOWNLOAD'.
PERFORM down_doc.
WHEN 'DESELECT_ALL'.
gs_doc-flag = ' '.
MODIFY gt_doc FROM gs_doc TRANSPORTING flag WHERE flag = 'X'.
WHEN 'SELECT_ALL'.
gs_doc-flag = 'X'.
MODIFY gt_doc FROM gs_doc TRANSPORTING flag WHERE flag = ' '. ENDCASE.
gr_alv->refresh( ).
ENDFORM.
OO方式实现ALV: cl_salv_table的更多相关文章
- OO方式下,ALV TREE和ALV GRID的不同之处
作为大部分报表程序的基础,ALV GRID差不多是每个ABAP开发者必须了解和掌握的内容,因此网上也不乏相关资料,而ALV TREE的应用相对较少,中文资料也就比较少见了.实际上,ALV TREE和A ...
- SAP ALV显示并打印(非OO方式)
*&---------------------------------------------------------------------* *& Report Z_SD_CPF ...
- 用OO方式写键盘字母小游戏
<html> <head> <title>0.0</title> <script> window.onload=functi ...
- HttpWeb服务器之--用OO方式写
虽然写的不是很好,但 最终解释权以及版权归13东倍所有! package com.web; import java.io.IOException; public class Test { public ...
- ALV详解:OO SALV
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- ALV详解:OO ALV
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- ABAP-ALV-如何去掉OO方法中的ALV的标准按钮
SAP在做报表开发中,不同公司对报表的风格往往各异,为此经常在使用OO方法做ALV报表中需要去掉自带的工具栏而自行添加一些工具按钮,下面将简单介绍一些其实现过程与原理: 步骤一: DATA : gt_ ...
- ALV双击单元格事件处理
*激发双击事件 FORM f_alv_user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield. "先引 ...
- ALV详解:Function ALV(一)
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
随机推荐
- Mysql Errors
Mysql Errors Table of Contents 1. ERROR 1044 1.1. 42000 2. ERROR 1045 2.1. 28000 2.1.1. 无登录权限 2.1.2. ...
- 前端单元测试,以及给现有的vue项目添加jest + Vue Test Utils的配置
文章原址:https://www.cnblogs.com/yalong/p/11714393.html 背景介绍: 以前写的公共组件,后来需要添加一些功能,添加了好几次,每次修改我都要测试好几遍保证以 ...
- linux简单命令9--yum安装软件
+
- 九十一:CMS系统之cms用户模型定义
数据库信息 DEBUG = TrueSQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:123456@127.0.0.1:3306/test'SQLALCH ...
- Python统计分析可视化库seaborn(相关性图,变量分布图,箱线图等等)
Visualization of seaborn seaborn[1]是一个建立在matplot之上,可用于制作丰富和非常具有吸引力统计图形的Python库.Seaborn库旨在将可视化作为探索和理 ...
- Paper Mark
BigCowPeking的CSDN博客 https://blog.csdn.net/wfei101/article/category/7120809 Low Rank Structure of Lea ...
- 如何用markdown绘制flow流程图
- IntelliJ IDEA入门之常用配置以及问题解决(持续更新中)
软件版本: IntelliJ IDEA 2019.1.1(Ultimate Edition) 运行环境: JDK1.8, Tomcat8.0, Maven3.6 我们在学习新的无论是jar包, 框架, ...
- eclipse上新建Maven项目报错及解决
Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of ...
- 深度学习之目标检测:非极大值抑制源码解析(nms)
目标检测:nms源码解析 原理:选定一个阈值,例如为0.3,然后将所有3个窗口(bounding box)按照得分由高到低排序.选中得分最高的窗口,遍历计算剩余的2窗口与该窗口的IOU,如果IOU大于 ...