这里总结最近用cl_salv_table实现ALV遇到问题和解决办法

  1. FORM set_alv2 .
  2. DATA: lv_syrepid TYPE syrepid.
  3. lv_syrepid = sy-cprog.
  4. cl_salv_table=>factory(
  5. EXPORTING
  6. list_display = abap_false
  7. r_container = cl_gui_container=>screen0
  8. IMPORTING
  9. r_salv_table = gr_alv
  10. CHANGING t_table = gt_doc ). “传输需要显示的内表
  11.  
  12. gr_functions = gr_alv->get_functions( ). "获取常用的ALV功能按钮
  13.  
  14. DATA lv_icon TYPE string.
  15. lv_icon = icon_refresh.
  16. gr_functions->add_function( "添加自定义按钮
  17. EXPORTING
  18. name = 'DOWNLOAD'
  19. icon = '@M9@'
  20. text = '下载文档'
  21. tooltip = '下载文档'
  22. position = if_salv_c_function_position=>right_of_salv_functions ). "往右边排
  23.  
  24. gr_functions->add_function(
  25. EXPORTING
  26. name = 'SELECT_ALL'
  27. icon = '@4B@'
  28. text = '全选'
  29. tooltip = '全选'
  30. position = if_salv_c_function_position=>left_of_salv_functions ). "往右边排
  31.  
  32. gr_functions->add_function(
  33. EXPORTING
  34. name = 'DESELECT_ALL'
  35. icon = '@4D@'
  36. text = '取消全选'
  37. tooltip = '取消全选'
  38. position = if_salv_c_function_position=>left_of_salv_functions ). "往右边排
  39.  
  40. gr_functions->set_all( abap_true ). ”设置所有alv按钮(自带的+自定义的)
  41. "=====获取事件对象
  42. DATA: gr_event TYPE REF TO cl_salv_events_table.
  43. gr_event = gr_alv->get_event( ).
  44.  
  45. "=====事件注册
  46. DATA: gr_handle_event TYPE REF TO cl_handle_events.
  47. CREATE OBJECT gr_handle_event.
  48. SET HANDLER gr_handle_event->on_user_command FOR gr_event.
  49. SET HANDLER gr_handle_event->on_checkbox FOR gr_event.
  50. DATA: gr_column_list TYPE REF TO cl_salv_column_list.
  51.  
  52. gr_columns = gr_alv->get_columns( ). "获取列的class
  53. gr_column = gr_columns->get_column('ACTION_NO'). "获取该列
  54. gr_column->set_short_text('需求号').        "调用修改列名称的方法
  55. gr_columns->set_optimize( abap_true ).      "调用设置列最优化设置方法这边用到列实例是gr_colums不是gr_colum
  56.  
  57. gr_column = gr_columns->get_column('FLAG').
  58.  
  59. gr_column->set_short_text('选择').
  60. gr_columnt ?= gr_column. "这边很重要
  61. gr_columnt->set_cell_type( ).          "设置选择列为checkbox,6代表checkbox
  62.  
  63. gr_display = gr_alv->get_display_settings( ). "alv设置
  64. gr_display->set_list_header('需求号&文档编号报表'). "alv抬头设置
  65. gr_alv->display( )."调用实例方法显示表报        "调用显示alv方法展示ALV报表
  66. ENDFORM. " SET_ALV2
  1. 下面是是事件的class的定义
    CLASS cl_handle_events DEFINITION.
  2. PUBLIC SECTION.
  3. METHODS: on_user_command FOR EVENT added_function OF cl_salv_events_table
  4. IMPORTING e_salv_function,
  5. on_checkbox FOR EVENT link_click OF cl_salv_events_table
  6. IMPORTING row column.
  7.  
  8. ENDCLASS.
  9.  
  10. CLASS cl_handle_events IMPLEMENTATION.
  11. METHOD on_user_command.
  12. PERFORM handle_user_command USING e_salv_function.
  13. ENDMETHOD.
  14. METHOD on_checkbox.
  15. PERFORM handle_clickbox USING row column.
  16. ENDMETHOD.
  17. ENDCLASS.
  1. 事件的方法定义
    FORM handle_user_command USING p_function TYPE salv_de_function.
  2.  
  3. CASE p_function.
  4. WHEN 'DOWNLOAD'.
  5. PERFORM down_doc.
  6. WHEN 'DESELECT_ALL'.
  7. gs_doc-flag = ' '.
  8. MODIFY gt_doc FROM gs_doc TRANSPORTING flag WHERE flag = 'X'.
  9. WHEN 'SELECT_ALL'.
  10. gs_doc-flag = 'X'.
  11. MODIFY gt_doc FROM gs_doc TRANSPORTING flag WHERE flag = ' '.
  12.  
  13. ENDCASE.
  14. gr_alv->refresh( ).
  15. 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. 转 CentOS7使用firewalld打开关闭防火墙与端口

    http://blog.csdn.net/huxu981598436/article/details/54864260 开启端口命令 输入firewall-cmd --query-port=6379/ ...

  2. Tanimoto Coefficient

    Tanimoto Coefficient The Tanimoto coefficient between two points, a and b, with k dimensions is calc ...

  3. avast关闭DeepScreen

    在“设置”-“防病毒”-去掉“启用 DeepScreen”.

  4. PJzhang:python基础进阶的10个疗程-three

    猫宁!!! 参考:北京理工大学-python程序语言设计 第3节:基本数据类型 默写代码的重要性. 保留字一定要全部都会默写,不能有错. pow(x,y),计算x的y次方,整数没有大小限制 整数进制 ...

  5. 【DSP开发】DSP程序优化

    此文是在http://blog.csdn.net/guanchanghui/article/details/1181851基础上,通过自己的学习理解修改而来.暂且算作是自己的原创吧.如有侵权,联系,立 ...

  6. SpringMVC 零配置 无web.xml

    对SpringMVC启动流程的讲解 https://www.cnblogs.com/beiyan/p/5942741.html 与SpringMVC的整合 https://hanqunfeng.ite ...

  7. JAVA实验报告及第七周总结

    JAVA第六周作业 实验报告五 第一题 1.设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法. 继承该抽象类定义三角型.矩形.圆. 分别创建一个三角形.矩形.圆存对象,将各类图 ...

  8. EMR日常操作

    1/ 数据root密码修改后emr配置修改: 2/ 添加s3访问 S3:hadoop-aws-2.8.5.jarjar -tfv hadoop-aws-2.8.5.jar |grep S3FileSy ...

  9. [转帖]服务器备份工具:Amanda,Bakula,Clonezilla,Rsnapshot,Mondo Rescue

    服务器备份工具:Amanda,Bakula,Clonezilla,Rsnapshot,Mondo Rescue https://ywnz.com/linuxyffq/5270.html 改天试用一下. ...

  10. 记一次Sqoop抽数据异常

    1. 环境 Hadoop Sqoop awsEMR 2.8.5 1.4.7 5.26.0 2.错误描述 在使用Sqoop抽取MySQL数据时,使用hdfs作为缓存,s3作为hive的存储地址,命令如下 ...