这里总结最近用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的更多相关文章

  1. OO方式下,ALV TREE和ALV GRID的不同之处

    作为大部分报表程序的基础,ALV GRID差不多是每个ABAP开发者必须了解和掌握的内容,因此网上也不乏相关资料,而ALV TREE的应用相对较少,中文资料也就比较少见了.实际上,ALV TREE和A ...

  2. SAP ALV显示并打印(非OO方式)

    *&---------------------------------------------------------------------* *& Report  Z_SD_CPF ...

  3. 用OO方式写键盘字母小游戏

    <html>  <head>   <title>0.0</title>   <script>    window.onload=functi ...

  4. HttpWeb服务器之--用OO方式写

    虽然写的不是很好,但 最终解释权以及版权归13东倍所有! package com.web; import java.io.IOException; public class Test { public ...

  5. ALV详解:OO SALV

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  6. ALV详解:OO ALV

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  7. ABAP-ALV-如何去掉OO方法中的ALV的标准按钮

    SAP在做报表开发中,不同公司对报表的风格往往各异,为此经常在使用OO方法做ALV报表中需要去掉自带的工具栏而自行添加一些工具按钮,下面将简单介绍一些其实现过程与原理: 步骤一: DATA : gt_ ...

  8. ALV双击单元格事件处理

    *激发双击事件 FORM f_alv_user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield. "先引 ...

  9. ALV详解:Function ALV(一)

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

随机推荐

  1. 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. ...

  2. 前端单元测试,以及给现有的vue项目添加jest + Vue Test Utils的配置

    文章原址:https://www.cnblogs.com/yalong/p/11714393.html 背景介绍: 以前写的公共组件,后来需要添加一些功能,添加了好几次,每次修改我都要测试好几遍保证以 ...

  3. linux简单命令9--yum安装软件

    +

  4. 九十一:CMS系统之cms用户模型定义

    数据库信息 DEBUG = TrueSQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:123456@127.0.0.1:3306/test'SQLALCH ...

  5. Python统计分析可视化库seaborn(相关性图,变量分布图,箱线图等等)

    Visualization of seaborn  seaborn[1]是一个建立在matplot之上,可用于制作丰富和非常具有吸引力统计图形的Python库.Seaborn库旨在将可视化作为探索和理 ...

  6. Paper Mark

    BigCowPeking的CSDN博客 https://blog.csdn.net/wfei101/article/category/7120809 Low Rank Structure of Lea ...

  7. 如何用markdown绘制flow流程图

  8. IntelliJ IDEA入门之常用配置以及问题解决(持续更新中)

    软件版本: IntelliJ IDEA 2019.1.1(Ultimate Edition) 运行环境: JDK1.8, Tomcat8.0, Maven3.6 我们在学习新的无论是jar包, 框架, ...

  9. eclipse上新建Maven项目报错及解决

    Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of ...

  10. 深度学习之目标检测:非极大值抑制源码解析(nms)

    目标检测:nms源码解析 原理:选定一个阈值,例如为0.3,然后将所有3个窗口(bounding box)按照得分由高到低排序.选中得分最高的窗口,遍历计算剩余的2窗口与该窗口的IOU,如果IOU大于 ...