# ABAP 1. ALV快速模板
#1 ALV快速模板
提示:
不了解我可以点这里看看哟.
文章目录
- #1 ALV快速模板
- 前言
- 一、普通ALV
- 二、OOALV
- 总结
前言
大部分时候,我们的需求最常见的就是开发报表
如果只是简单的报表还好,有的报表是层层嵌套屏幕,每次重头开始略有点费劲,
所以就有了快速模板,CV大法,然后再处理业务逻辑。
一、普通ALV
业务和用户只想看看数据没什么操作,5min
REPORT YYTEST001.DATA : gt_ekpo TYPE TABLE OF ekpo .DATA : gr_table TYPE REF TO cl_salv_table ,gr_sorts TYPE REF TO cl_salv_sorts , " Sorts – CL_SALV_SORTSgr_agg TYPE REF TO cl_salv_aggregations , " Aggregations – CL_SALV_AGGREGATIONSgr_functions TYPE REF TO cl_salv_functions , " Tool bargr_columns TYPE REF TO cl_salv_columns_table , " Columns – CL_SALV_COLUMNS_TABLE and CL_SALV_COLUMN_TABLEgr_column TYPE REF TO cl_salv_column_table ,lw_color TYPE lvc_s_colo.START-OF-SELECTION ." 读取后处理数据 SELECT *INTO TABLE gt_ekpo FROM ekpo UP TO 100 rows .cl_salv_table=>factory( IMPORTING r_salv_table = gr_table CHANGING t_table = gt_ekpo )." tool bargr_functions = gr_table->get_functions( ).gr_functions->set_all( abap_true )."Columns – CL_SALV_COLUMNS_TABLE and CL_SALV_COLUMN_TABLE
* gr_columns = gr_table->get_columns( ).
* gr_column ?= gr_columns->get_column( 'ZMRQNO' ).
* gr_column->set_long_text( '测试文本' ).
* gr_column->set_medium_text( '测试文本' ).
* gr_column->set_short_text( '测试文本' )."整列不显示gr_columns = gr_table->get_columns( ).gr_column ?= gr_columns->get_column( 'MANDT' ).CALL METHOD gr_column->set_visibleEXPORTINGvalue = if_salv_c_bool_sap=>false."排序gr_sorts = gr_table->get_sorts( ).gr_sorts->add_sort( columnname = 'EBELN' ).* Aggregations – CL_SALV_AGGREGATIONS" 汇总一列gr_agg = gr_table->get_aggregations( ).gr_agg->add_aggregation( 'MENGE' ).gr_table->display( ).
另外还有种相对low一点的模板。
这种的好处就是方便业务经常变化,比如和用户沟通后需求变来变去,比如一会要加个联动,
一会要加个按钮,这个就比较方便经常的修改。
REPORT yytest002.*&--------------------------------------*
*& 功能说明:
*& 创建人:
*& 日期
*&
*& 开发顾问 请求 业务顾问 时间 修改内容
*&
*&--------------------------------------*
INCLUDE yytest002_top .
INCLUDE yytest002_sel .
INCLUDE yytest002_main .
INCLUDE yytest002_frm .*&---------------------------------------------------------------------*
*& 包含 YYTEST002_TOP
*&---------------------------------------------------------------------*
"""""""""""""""""""""""TABLE"""""""""""""""""""""""""""""""""""
TYPE-POOLS : slis .
TABLES : sscrfields ."""""""""""""""""""""""Type Define"""""""""""""""""""""""""""""
TYPES : BEGIN OF ty_alv ,sel TYPE char1 ,END OF ty_alv .
"""""""""""""""""""""""Inner Table"""""""""""""""""""""""""""""
DATA : gt_alv TYPE TABLE OF ty_alv ."""""""""""""""""""""""Global Value""""""""""""""""""""""""""""
DATA : gw_alv TYPE ty_alv .""""""""""""""""""""""" ALV """""""""""""""""""""""""""""""""""
DATA : gw_fieldcat TYPE slis_fieldcat_alv,gt_fieldcat TYPE slis_t_fieldcat_alv,gw_layout TYPE slis_layout_alv."""""""""""""""""""""""Define Macro"""""""""""""""""""""""""""""""""
DEFINE add_fieldcat_alv .CLEAR : gw_fieldcat .gw_fieldcat-fieldname = &1 .gw_fieldcat-seltext_l = &2 .gw_fieldcat-outputlen = &3 .gw_fieldcat-hotspot = &4 .APPEND gw_fieldcat TO gt_fieldcat .END-OF-DEFINITION.*&---------------------------------------------------------------------*
*& 包含 YYTEST002_SEL
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001 .SELECT-OPTIONS :PARAMETERS :SELECTION-SCREEN END OF BLOCK b1 .*&---------------------------------------------------------------------*
*& 包含 YYTEST002_MAIN
*&---------------------------------------------------------------------**----------------------------------------------------------------------*
* Initialization
*----------------------------------------------------------------------*
INITIALIZATION.*----------------------------------------------------------------------*
* At Selection Screen
*----------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.AT SELECTION-SCREEN .*----------------------------------------------------------------------*
* Start Of Selection
*----------------------------------------------------------------------*
START-OF-SELECTION.PERFORM frm_get_data .PERFORM frm_set_layout .PERFORM frm_set_field .PERFORM frm_alv_display .*----------------------------------------------------------------------*
* End Of Selection
*----------------------------------------------------------------------*
END-OF-SELECTION .*&---------------------------------------------------------------------*
*& 包含 YYTEST002_FRM
*&---------------------------------------------------------------------*FORM frm_get_data .ENDFORM.FORM frm_set_layout .gw_layout-box_fieldname = 'SEL'. " 选择模式gw_layout-colwidth_optimize = 'X'. " 自动调整列宽gw_layout-zebra = 'X'. " 表格斑马线gw_layout-edit = 'X'. " 可编辑gw_layout-info_fieldname = 'CLR'.
ENDFORM.FORM frm_set_field .CLEAR : gt_fieldcat .add_fieldcat_alv '' TEXT-002 '10' 'X' .
ENDFORM.FORM frm_alv_display .CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGi_callback_program = sy-repidis_layout = gw_layoutit_fieldcat = gt_fieldcati_save = 'X'i_callback_pf_status_set = 'FRM_STATE'i_callback_user_command = 'FRM_USER_COMMAND'TABLESt_outtab = gt_alvEXCEPTIONSprogram_error = 1OTHERS = 2.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.
ENDFORM.FORM frm_state USING rt_extab TYPE slis_t_extab.SET PF-STATUS 'STANDARD'.
ENDFORM.FORM frm_user_command USING r_ucomm LIKE sy-ucommrs_selfield TYPE slis_selfield.READ TABLE gt_alv INTO gw_alv INDEX rs_selfield-tabindex.CHECK sy-subrc = 0.CASE r_ucomm.WHEN '&IC1'.WHEN 'PRT'.ENDCASE.ENDFORM.
二、OOALV
在有些时候,我们会遇到平台类报表需求,比如上下各一屏幕,还有联动关系,这时候我们就需要用OOALV了。模板可以用这个直接套。
原作者来自: 这里.
有空的时候我再改进一波
代码如下:
REPORT yytest003.*&--------------------------------------*
*& 功能说明:
*& 创建人:
*& 日期
*&
*& 开发顾问 请求 业务顾问 时间 修改内容
*&
*&--------------------------------------*
INCLUDE yytest003_top .INCLUDE yytest003_sel .INCLUDE yytest003_main .INCLUDE yytest003_class .INCLUDE yytest003_pbo .INCLUDE yytest003_pai .INCLUDE yytest003_frm .*&---------------------------------------------------------------------*
*& 包含 YYTEST003_TOP
*&---------------------------------------------------------------------*"""""""""""""""""""""""TABLE"""""""""""""""""""""""""""""""""""
TYPE-POOLS : icon .
TABLES : t001 ."""""""""""""""""""""""Type Define"""""""""""""""""""""""""""""
TYPES : BEGIN OF ty_item ,rollname TYPE dd04t-rollname,ddlanguage TYPE dd04t-ddlanguage,as4local TYPE dd04t-as4local,as4vers TYPE dd04t-as4vers,ddtext TYPE dd04t-ddtext,reptext TYPE dd04t-reptext,scrtext_s TYPE dd04t-scrtext_s,scrtext_m TYPE dd04t-scrtext_m,scrtext_l TYPE dd04t-scrtext_l.
TYPES END OF ty_item ."""""""""""""""""""""""Inner Table"""""""""""""""""""""""""""""
DATA gt_item TYPE TABLE OF ty_item ."""""""""""""""""""""""Global Value""""""""""""""""""""""""""""
DATA : ok_code LIKE sy-ucomm,stbl TYPE lvc_s_stbl, "鼠标游标位置gv_code TYPE sy-tcode."""""""""""""""""""""""Class """"""""""""""""""""""""""""""""""
CLASS lcl_event_receiver DEFINITION DEFERRED.
DATA: event_receiver TYPE REF TO lcl_event_receiver.""""""""""""""""""""""" ALV """""""""""""""""""""""""""""""""""
DATA: gt_fieldcat TYPE lvc_t_fcat,gs_layout TYPE lvc_s_layo,gs_variant TYPE disvariant,gt_t_f4 TYPE lvc_t_f4,gt_selcell TYPE lvc_t_cell,it_toolbar_excluding TYPE ui_functions.DATA alv_grid TYPE REF TO cl_gui_alv_grid.
DATA gs_parent TYPE REF TO cl_gui_custom_container . "定义容器
DATA gt_select TYPE lvc_t_cell . "
DATA gt_selrow TYPE lvc_t_row . """"""""""""""""""""""""Define Macro"""""""""""""""""""""""""""""""""*&---------------------------------------------------------------------*
*& 包含 YYTEST003_SEL
*&---------------------------------------------------------------------*SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.SELECTION-SCREEN SKIP 1 .
PARAMETERS : p_mail AS CHECKBOX .
SELECTION-SCREEN END OF BLOCK b1 .*&---------------------------------------------------------------------*
*& 包含 YYTEST003_MAIN
*&---------------------------------------------------------------------**----------------------------------------------------------------------*
* Initialization
*----------------------------------------------------------------------*
INITIALIZATION.stbl-row = 'X'.stbl-col = 'X'.*----------------------------------------------------------------------*
* At Selection Screen
*----------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.AT SELECTION-SCREEN .*----------------------------------------------------------------------*
* Start Of Selection
*----------------------------------------------------------------------*
START-OF-SELECTION.PERFORM frm_get_data.IF gt_item[] IS NOT INITIAL .CALL SCREEN 9000.ENDIF.
*----------------------------------------------------------------------*
* End Of Selection
*----------------------------------------------------------------------*
END-OF-SELECTION .*&---------------------------------------------------------------------*
*& 包含 YYTEST003_CLASS
*&---------------------------------------------------------------------**&---------------------------------------------------------------------*
*& Class LCL_EVENT_RECEIVER
*&---------------------------------------------------------------------*
* Text
*----------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.PUBLIC SECTION.METHODS handle_double_click FOR EVENT double_click OF cl_gui_alv_grid "定义类中的方法---双击IMPORTING e_row e_column es_row_no. "" "METHODS handle_onf4 FOR EVENT onf4 OF cl_gui_alv_grid "定义类中的方法---F4帮助IMPORTING e_fieldname es_row_no er_event_data . ""METHODS handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid "定义类中的方法---ALV状态栏按钮IMPORTING e_object e_interactive . ""METHODS handle_user_command FOR EVENT user_command OF cl_gui_alv_grid "定义类中的方法---按钮触发方法IMPORTING e_ucomm . ""METHODS handle_data_changed FOR EVENT data_changed OF cl_gui_alv_grid "定义类中的方法---数据修改时的方法IMPORTING er_data_changed e_onf4 e_onf4_before e_onf4_after e_ucomm. "METHODS handle_data_changed_finished FOR EVENT data_changed_finished OF cl_gui_alv_gridIMPORTING e_modified et_good_cells.
ENDCLASS. "LCL_EVENT_RECEIVERCLASS lcl_event_receiver IMPLEMENTATION.METHOD handle_double_click.MESSAGE '双击' TYPE 'S'. " e_row e_column es_row_noCALL METHOD alv_grid->get_selected_cellsIMPORTINGet_cell = GT_SELCELL.ENDMETHOD. "HANDLE_DOUBLE_CLICK双击后触发该段代码,可接T-CODE跳转等功能METHOD handle_onf4.DATA: ls_modi TYPE lvc_s_modi,lt_ret_tab TYPE TABLE OF ddshretval.IF e_fieldname = 'REPTEXT'.READ TABLE gt_item INDEX es_row_no-row_id ASSIGNING FIELD-SYMBOL(<fs_item>).
* CHECK sy-subrc = 0.IF sy-subrc = 0..CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'EXPORTINGretfield = 'DDTEXT'value_org = 'S'TABLESvalue_tab = gt_itemreturn_tab = lt_ret_tab.IF sy-subrc = 0.READ TABLE lt_ret_tab INDEX 1 ASSIGNING FIELD-SYMBOL(<fs_ret>).IF sy-subrc = 0.<fs_item>-REPTEXT = <fs_ret>-FIELDVAL .<fs_item>-SCRTEXT_S = <fs_ret>-FIELDVAL .<fs_item>-SCRTEXT_M = <fs_ret>-FIELDVAL .<fs_item>-SCRTEXT_L = <fs_ret>-FIELDVAL .ENDIF.ENDIF.er_event_data->m_event_handled = 'X'.CALL METHOD alv_grid->refresh_table_displayEXPORTINGis_stable = stbl.ENDIF .ENDIF .ENDMETHOD. "需在ALV中调用触发一般与filedcat中的 f4availabl 参数同用METHOD handle_toolbar. "在ALV状态栏增加按钮,一般是汇总按钮,新增后的按钮可触发HANDLE_USER_COMMAND方法DATA: ls_toolbar TYPE stb_button.CLEAR ls_toolbar.MOVE 3 TO ls_toolbar-butn_type. "分隔符APPEND ls_toolbar TO e_object->mt_toolbar.CLEAR ls_toolbar.MOVE 'ADD' TO ls_toolbar-function. "功能码MOVE icon_insert_row TO ls_toolbar-icon. "图标MOVE '插入行' TO ls_toolbar-quickinfo.MOVE '插入行' TO ls_toolbar-text. "显示名称MOVE ' ' TO ls_toolbar-disabled.APPEND ls_toolbar TO e_object->mt_toolbar.CLEAR ls_toolbar.MOVE 'DEL' TO ls_toolbar-function. "功能码MOVE icon_delete_row TO ls_toolbar-icon. "图标MOVE '刪除行' TO ls_toolbar-quickinfo.MOVE '刪除行' TO ls_toolbar-text. "显示名称MOVE ' ' TO ls_toolbar-disabled.APPEND ls_toolbar TO e_object->mt_toolbar.ENDMETHOD. "在ALV状态栏增加按钮,一般是汇总按钮METHOD handle_user_command.CASE e_ucomm.WHEN 'ADD'.APPEND INITIAL LINE TO gt_item .WHEN 'DEL'.CALL METHOD alv_grid->get_selected_rowsIMPORTINGet_index_rows = gt_selrow.LOOP AT gt_selrow INTO DATA(gs_selrow).DELETE gt_item[] INDEX gs_selrow-index .ENDLOOP .WHEN OTHERS.ENDCASE.CALL METHOD alv_grid->refresh_table_displayEXPORTINGis_stable = stbl.ENDMETHOD. "一般与HANDLE_TOOLBAR同用METHOD handle_data_changed. "er_data_changed e_onf4 e_onf4_before e_onf4_after e_ucomm.
"用途在于检查这行是否能修改,数据是否合法LOOP AT er_data_changed->mt_good_cells ASSIGNING FIELD-SYMBOL(<ls_good>).ENDLOOP .ENDMETHOD. "数据修改后触发,一般用在数据联动修改如数量字段修改,同时联动修改金额字段METHOD handle_data_changed_finished."用途在于修改后的数据联动,DATA: ls_et_good_cell TYPE lvc_s_modi.LOOP AT et_good_cells INTO ls_et_good_cell.READ TABLE gt_item ASSIGNING FIELD-SYMBOL(<fs_item>) INDEX ls_et_good_cell-row_id.IF sy-subrc = '0'.IF ls_et_good_cell-fieldname = 'SCRTEXT_L'.<fs_item>-SCRTEXT_M = <fs_item>-SCRTEXT_L .<fs_item>-SCRTEXT_S = <fs_item>-SCRTEXT_L .ENDIF.ENDIF.ENDLOOP.CALL METHOD alv_grid->refresh_table_displayEXPORTINGis_stable = stbl.ENDMETHOD.ENDCLASS. "LCL_EVENT_RECEIVER IMPLEMENTATION*&---------------------------------------------------------------------*
*& 包含 YYTEST003_PBO
*&---------------------------------------------------------------------*MODULE status_9000 OUTPUT.SET PF-STATUS 'STANDARD'.SET TITLEBAR '9000'.DATA(gv_frist) = 'X' . "判断是不是第一次运行,自添加按钮需要刷新才能显示PERFORM frm_display_alv.IF gv_frist = 'X'.CALL METHOD alv_grid->refresh_table_display "增加按钮需要刷新才会显示出来,否则无法显示。EXPORTINGis_stable = stbl.gv_frist = '0' ."判断是否为第一次,为第一次则刷新ENDIF.
ENDMODULE.*&---------------------------------------------------------------------*
*& 包含 YYTEST003_PAI
*&---------------------------------------------------------------------*
MODULE user_command_9000 INPUT.gv_code = ok_code .CASE ok_code.WHEN 'BACK'.CLEAR: gt_item.LEAVE TO SCREEN 0.WHEN 'EXIT'.LEAVE PROGRAM.WHEN 'CANCEL'.CLEAR: gt_item.LEAVE TO SCREEN 0.ENDCASE.
ENDMODULE.*&---------------------------------------------------------------------*
*& 包含 YYTEST003_FRM
*&---------------------------------------------------------------------*
FORM frm_display_alv .CLEAR: gt_fieldcat,gs_layout,it_toolbar_excluding.gs_variant-report = sy-repid.gs_variant-handle = '0001'.IF alv_grid IS INITIAL .
******实例化 容器CREATE OBJECT gs_parentEXPORTINGcontainer_name = 'ALV'. " 界面中的一个CUNSTOMER CONTROL控件 用于存放类对象。"使用这个控件把名称赋值给CONTAINER_NAME******将alv植入到容器中CREATE OBJECT alv_gridEXPORTINGi_parent = gs_parent.PERFORM prepare_field_catalog CHANGING gt_fieldcat.PERFORM prepare_layout CHANGING gs_layout.PERFORM toolbar_excluding_item CHANGING it_toolbar_excluding. "ALV按钮排除CALL METHOD alv_grid->set_table_for_first_displayEXPORTINGis_layout = gs_layouti_save = 'A'i_default = 'X'is_variant = gs_variantit_toolbar_excluding = it_toolbar_excludingCHANGINGit_outtab = gt_itemit_fieldcatalog = gt_fieldcat.CREATE OBJECT event_receiver. "创建事件SET HANDLER event_receiver->handle_double_click FOR alv_grid. "双击事件SET HANDLER event_receiver->handle_onf4 FOR alv_grid. "F4帮助事件SET HANDLER event_receiver->handle_toolbar FOR alv_grid. "ALV状态栏SET HANDLER event_receiver->handle_user_command FOR alv_grid. "按钮事件SET HANDLER event_receiver->handle_data_changed FOR alv_grid. "修改事件SET HANDLER event_receiver->handle_data_changed_finished FOR alv_grid. "数据修改后触发事件gt_t_f4 = VALUE #( BASE gt_t_f4 ( fieldname = 'REPTEXT' register = 'X' getbefore = 'X' chngeafter = 'X' ) ) .CALL METHOD alv_grid->register_f4_for_fields "注册F4帮助事件EXPORTINGit_f4 = gt_t_f4.CALL METHOD alv_grid->register_edit_event "注册编辑事件,否则不会触发更新事件EXPORTINGi_event_id = cl_gui_alv_grid=>mc_evt_modified.CALL METHOD alv_grid->set_frontend_layoutEXPORTINGis_layout = gs_layout.CALL METHOD cl_gui_control=>set_focusEXPORTINGcontrol = alv_grid.CALL METHOD cl_gui_cfw=>flush.ELSE.CALL METHOD alv_grid->set_frontend_layoutEXPORTINGis_layout = gs_layout.CALL METHOD alv_grid->refresh_table_displayEXPORTINGis_stable = stbl.ENDIF.
ENDFORM.*&---------------------------------------------------------------------*
*& Form PREPARE_FIELD_CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GT_FIELDCAT text
*----------------------------------------------------------------------*
FORM prepare_field_catalog CHANGING p_gt_fieldcat TYPE lvc_t_fcat.DATA ls_fcat TYPE lvc_s_fcat.DEFINE set_fcat.CLEAR ls_fcat.ls_fcat-fieldname = &1. "字段ls_fcat-coltext = &9. "描述ls_fcat-key = &3. "主键ls_fcat-edit = &4. "可编辑ls_fcat-ref_table = &5. "参考表ls_fcat-ref_field = &6. "参考字段ls_fcat-icon = &7. "以圖標輸出
* ls_fcat-NO_ZERO = &8. "前导0ls_fcat-outputlen = &2. "列的字符宽度ls_fcat-f4availabl = &8.APPEND ls_fcat TO p_gt_fieldcat.END-OF-DEFINITION.set_fcat 'ROLLNAME ' '' '' '' 'DD04T' 'ROLLNAME ' '' '' ''.set_fcat 'DDLANGUAGE' '' '' '' 'DD04T' 'DDLANGUAGE' '' '' ''.set_fcat 'AS4LOCAL ' '' '' '' 'DD04T' 'AS4LOCAL ' '' '' ''.set_fcat 'AS4VERS ' '' '' '' 'DD04T' 'AS4VERS ' '' '' ''.set_fcat 'DDTEXT ' '' '' '' 'DD04T' 'DDTEXT ' '' '' ''.set_fcat 'REPTEXT ' '' '' '' 'DD04T' 'REPTEXT ' '' 'X' ''.set_fcat 'SCRTEXT_S ' '' '' '' 'DD04T' 'SCRTEXT_S ' '' '' ''.set_fcat 'SCRTEXT_M ' '' '' '' 'DD04T' 'SCRTEXT_M ' '' '' ''.set_fcat 'SCRTEXT_L ' '' '' 'X' 'DD04T' 'SCRTEXT_L ' '' '' ''.ENDFORM.*&---------------------------------------------------------------------*
*& Form PREPARE_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM prepare_layout CHANGING p_gs_layout TYPE lvc_s_layo.p_gs_layout-zebra = 'X'. "斑馬紋顯示p_gs_layout-sel_mode = 'A'. "選擇模式p_gs_layout-cwidth_opt = 'X'. "最佳列寬
ENDFORM.FORM toolbar_excluding_item CHANGING pt_exclude TYPE ui_functions.DATA ls_exclude TYPE ui_func.ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row.APPEND ls_exclude TO pt_exclude.ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.APPEND ls_exclude TO pt_exclude.ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.APPEND ls_exclude TO pt_exclude.ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.APPEND ls_exclude TO pt_exclude.ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy.APPEND ls_exclude TO pt_exclude.ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste_new_row.APPEND ls_exclude TO pt_exclude.ls_exclude = cl_gui_alv_grid=>mc_fc_loc_move_row.APPEND ls_exclude TO pt_exclude.ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste.APPEND ls_exclude TO pt_exclude.ls_exclude = cl_gui_alv_grid=>mc_fc_loc_cut.APPEND ls_exclude TO pt_exclude.ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo.APPEND ls_exclude TO pt_exclude.
ENDFORM.*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_get_data .SELECT * FROM dd04t INTO TABLE gt_item UP TO 30 ROWS WHERE rollname LIKE 'Z%' AND ddlanguage = '1'.ENDFORM.
总结
每个人都有自己习惯的模板,并不是说非要用这个,正所谓”天下武功唯快不破“,有这么多有趣的东西值得我们去研究,模板不过是为了加快进度和节约无效的时间。
如果这个对你节约时间有那么一点点的帮助,那就太棒啦。
# ABAP 1. ALV快速模板相关推荐
- ABAP - OO ALV基本实现步骤
ABAP - OO ALV基本实现步骤 新建程序 定义屏幕 PBO实现 PAI实现 完整代码 新建程序 使用T-code:SE38 新建Report: ZOOALV 为新建的Report分配一个pac ...
- ABAP ALV LVC模板
模板包含选择屏幕.ALV.菜单栏事件.打印程序内容 ******************************************************************** * 事务代 ...
- abap 添加alv上的工具栏的按钮_Excel里的置顶功能——快速访问工具栏
100万职场人都在看 后台回复礼包领 199元职场干货 大家好,我是小可~ 今天跟大家分享一个提高Excel操作效率的小技巧 自定义你的快速访问工具栏 设置后的效果▼▼▼ 也就是把你最经常用到的两三个 ...
- ABAP学习----ALV注意事项
2018年/8月/1日. 到今天为止,学习ABAP大概快一个月了,我知道一个月,对于任何一门计算机语言来说,都只能说才了解,更何况是在自学,没有视频的情况下.ABAP语言相对其他语言来说,较为封闭,因 ...
- 快速模板匹配算法+度量公式要求+旋转坐标公式
模板图像快速可靠匹配技术研究–董 晶 --------------------------------- Chapter1 加速算法 目录 积分图像 基于快速傅里叶变换的L2范数模板匹配算法 基于正交 ...
- abap开发alv篇
abap 报表开发之alv(刚接触abap,所以用到的都是最基本的配置): 在start-of-selection中调用了两个函数: start-of-selection. perform frm_d ...
- 【ABAP】ALV可编辑数据更新
这两天收到用户的一个关于ALV Report的问题反馈,具体是这样的,该ALV是可编辑的,可进行增加.删除.复制及编辑功能,用户删除了几行数据之后直接点击保存按钮,保存完成之后,被删除的几行又还原出来 ...
- ABAP在ALV工具栏显示一个计时器
其实就是调用一个类,刷新不断ALV界面,下面是来自Sariel的一段代码: *&-------------------------------------------------------- ...
- ABAP 关于ALV布局保存选项的讲解
关于ALV布局保存选项: 1:I_SAVE = SPACE. 布局不能被保存 2:I_SAVE = 'U'. 仅自定义的布局可以被保存 3:I_SAVE = 'X'. ...
最新文章
- 微软压力测试工具 web application stress
- Eclipse生成SSH传输密钥并实现GitHub的SSH代码提交
- vivo X Fold屏幕规格揭晓:搭载2K/120Hz E5折叠屏幕
- Qt拖放操作和打印操作
- C# 对称算法,加密解密类
- html选择时间区间控件,Html5添加用户选择一个日期时间范围的日期选择器插件教程...
- UML大作业【小型超市管理系统】
- linux md5加密文件,linux md5 加密字符串和文件方法
- 边境的悍匪—机器学习实战:第十五章 使用CNN和RNN处理序列
- 期刊影响因子的中外算法差别很大
- PDF文件不能编辑,有什么办法能够解决?
- 初入Shell编程,了解规范与变量
- 数据分析实战(一百零一):项目分析思路 —— 用户增长实践经验分享
- 无偏性 VS 一致性
- 处理火狐浏览器地址栏点击出现 百度/58同城/爱淘宝 链接
- 原始socket实现局域网ARP欺骗
- 华为手机设置微信气泡
- Unnamed System Edition v4.0
- 写一个程序输入一个国家的国家名,输出该国的首都名。
- 神策数据付力力:新一代的营销数据平台