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,并以超链接形式标明文章原始出处,否则将 ...
随机推荐
- python下载服务器
大佬们,你们还在为传输文件时利用U盘插拔而苦恼吗,还在为设置文件共享而苦恼吗?别苦恼了,教你一秒实现文件的传输. 首先我们都要有python环境,这个肯定有. 下面就是一秒,在你要传的文件的目录下输入 ...
- easyUI之Layout(布局)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- SmartTest__自动随机填充表单数据
下载地址https://addons.mozilla.org/zh-CN/firefox/addon/smarttesttool/ 安装完成后可以在工具栏看见 目前只包含两个功能 测试使用
- 日志文件---log4j.properties
### direct log messages to stdout ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.a ...
- Linux 查看 MySQL的版本信息
Linux 查看 MySQL的版本信息 如何查看某台 Linux 主机上的 安装的 MySQL版本信息? 使用如下命令,查看 MySQL的版本信息: mysql -V 或者 mysql --versi ...
- 用curl指令访问api-server
可以直接用curl指令访问api-server,一种是将kubeconfig中所包含的证书抠出来作为参数给curl指令使用.这种方法操作起来比较复杂.还要一种很简单的方法: 首先执行 kubectl ...
- JavaScript(6)—— 返回特征数字
案例要求 根据业务情况,要把核心的东西变成一个模块便于复用,慢慢沉淀后,能够更快更高效地编程. 业务核心算法: /* 数字检测 @return 返回2,能被3和7整除 返回1,能够被3整除 返回0,不 ...
- php screw加密与破解
一.破解工具之php-screw-brute 1.项目地址 https://github.com/securifybv/php-screw-brute 2.项目介绍 此脚本可以恢复/爆破php scr ...
- 【C/C++开发】C语言 DLL(动态链接库)中申请动态内存释放的问题
参考:首先,声明一点,凡是使用malloc之类命令动态申请的内存,必须进行释放操作,否则就会发生内存泄漏问题. DLL中申请的内存释放,如果没有做过,很可能会认为是直接在调用程序中释放就可以了,其实不 ...
- Pairs of Numbers
#include<stdio.h> //we have defined the necessary header files here for this problem. //If add ...