这里总结最近用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. input上传指定类型的文件

    1. 谷歌–上传文件夹 添加属性webkitdirectory <input type = "file" webkitdirectory> 2. 上传文件–限制类型 添 ...

  2. Java中AWT、Swing与SWT三大GUI技术的原理与效率差异

    Java中AWT.Swing与SWT三大GUI技术的原理与效率差异 转 https://blog.csdn.net/weixin_37703598/article/details/81843810   ...

  3. java创建和解析json对象

    最近工作遇到了 json 解析的相关需求,整理下 JSONObject 相关操作. 文中使用的例子都是基于阿里巴巴的产品 FastJSON ,涉及到的包有: import com.alibaba.fa ...

  4. ScrollView-基本设置

    一: 掌握两点: 1. ScrollView必须有一个确定的高度才能正常工作,因为它实际上所做的就是将一系列不确定高度的子组件装进一个确定高度的容器(通过滚动操作).要给一个ScrollView确定一 ...

  5. python之pip使用技巧

    pip 镜像临时使用:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider永久:直接在user目录中创建一个pip目录:C: ...

  6. mac编译openJDK8

    买了<深入理解Java虚拟机> 周志明著这本书一直没有看,我们的程序都用JVM在跑,所以学习java必须掌握JVM,才能理解我们对象到底干嘛了.   1.为什么要编译JDK 想要一探JDK ...

  7. nginx 代理 registry docker certificate is valid for k8s, not

    1.配置SSL证书及nginx反向代理docker registry 搭建私有CA,初始化CA环境,在/etc/pki/CA/下建立证书索引数据库文件index.txt和序列号文件serial,并为证 ...

  8. java实验题目

    1. 打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个“水仙花数”. 实验源码: public class number1 { publi ...

  9. windows下,给golang编译的exe添加一个图标

    通过go build生成的exe文件,通常是一个默认的图标,发给别人的时候,总觉得像病毒,下面我们来给他加一个好看的图标,让他看起来正经一些. 1.找到一个喜欢的图片. 2.通过工具或是在线工具生成. ...

  10. mybatis报错无法扫描到xml文件

    错误:java.io.IOException: Could not find resource com/xxx/xxxMapper.xml 原因:target目录下没有***.xml文件 解决方法:在 ...