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,并以超链接形式标明文章原始出处,否则将 ...
随机推荐
- 转 CentOS7使用firewalld打开关闭防火墙与端口
http://blog.csdn.net/huxu981598436/article/details/54864260 开启端口命令 输入firewall-cmd --query-port=6379/ ...
- Tanimoto Coefficient
Tanimoto Coefficient The Tanimoto coefficient between two points, a and b, with k dimensions is calc ...
- avast关闭DeepScreen
在“设置”-“防病毒”-去掉“启用 DeepScreen”.
- PJzhang:python基础进阶的10个疗程-three
猫宁!!! 参考:北京理工大学-python程序语言设计 第3节:基本数据类型 默写代码的重要性. 保留字一定要全部都会默写,不能有错. pow(x,y),计算x的y次方,整数没有大小限制 整数进制 ...
- 【DSP开发】DSP程序优化
此文是在http://blog.csdn.net/guanchanghui/article/details/1181851基础上,通过自己的学习理解修改而来.暂且算作是自己的原创吧.如有侵权,联系,立 ...
- SpringMVC 零配置 无web.xml
对SpringMVC启动流程的讲解 https://www.cnblogs.com/beiyan/p/5942741.html 与SpringMVC的整合 https://hanqunfeng.ite ...
- JAVA实验报告及第七周总结
JAVA第六周作业 实验报告五 第一题 1.设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法. 继承该抽象类定义三角型.矩形.圆. 分别创建一个三角形.矩形.圆存对象,将各类图 ...
- EMR日常操作
1/ 数据root密码修改后emr配置修改: 2/ 添加s3访问 S3:hadoop-aws-2.8.5.jarjar -tfv hadoop-aws-2.8.5.jar |grep S3FileSy ...
- [转帖]服务器备份工具:Amanda,Bakula,Clonezilla,Rsnapshot,Mondo Rescue
服务器备份工具:Amanda,Bakula,Clonezilla,Rsnapshot,Mondo Rescue https://ywnz.com/linuxyffq/5270.html 改天试用一下. ...
- 记一次Sqoop抽数据异常
1. 环境 Hadoop Sqoop awsEMR 2.8.5 1.4.7 5.26.0 2.错误描述 在使用Sqoop抽取MySQL数据时,使用hdfs作为缓存,s3作为hive的存储地址,命令如下 ...