#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快速模板相关推荐

  1. ABAP - OO ALV基本实现步骤

    ABAP - OO ALV基本实现步骤 新建程序 定义屏幕 PBO实现 PAI实现 完整代码 新建程序 使用T-code:SE38 新建Report: ZOOALV 为新建的Report分配一个pac ...

  2. ABAP ALV LVC模板

    模板包含选择屏幕.ALV.菜单栏事件.打印程序内容 ******************************************************************** * 事务代 ...

  3. abap 添加alv上的工具栏的按钮_Excel里的置顶功能——快速访问工具栏

    100万职场人都在看 后台回复礼包领 199元职场干货 大家好,我是小可~ 今天跟大家分享一个提高Excel操作效率的小技巧 自定义你的快速访问工具栏 设置后的效果▼▼▼ 也就是把你最经常用到的两三个 ...

  4. ABAP学习----ALV注意事项

    2018年/8月/1日. 到今天为止,学习ABAP大概快一个月了,我知道一个月,对于任何一门计算机语言来说,都只能说才了解,更何况是在自学,没有视频的情况下.ABAP语言相对其他语言来说,较为封闭,因 ...

  5. 快速模板匹配算法+度量公式要求+旋转坐标公式

    模板图像快速可靠匹配技术研究–董 晶 --------------------------------- Chapter1 加速算法 目录 积分图像 基于快速傅里叶变换的L2范数模板匹配算法 基于正交 ...

  6. abap开发alv篇

    abap 报表开发之alv(刚接触abap,所以用到的都是最基本的配置): 在start-of-selection中调用了两个函数: start-of-selection. perform frm_d ...

  7. 【ABAP】ALV可编辑数据更新

    这两天收到用户的一个关于ALV Report的问题反馈,具体是这样的,该ALV是可编辑的,可进行增加.删除.复制及编辑功能,用户删除了几行数据之后直接点击保存按钮,保存完成之后,被删除的几行又还原出来 ...

  8. ABAP在ALV工具栏显示一个计时器

    其实就是调用一个类,刷新不断ALV界面,下面是来自Sariel的一段代码: *&-------------------------------------------------------- ...

  9. ABAP 关于ALV布局保存选项的讲解

    关于ALV布局保存选项: 1:I_SAVE = SPACE. 布局不能被保存 2:I_SAVE = 'U'.              仅自定义的布局可以被保存 3:I_SAVE = 'X'.     ...

最新文章

  1. 微软压力测试工具 web application stress
  2. Eclipse生成SSH传输密钥并实现GitHub的SSH代码提交
  3. vivo X Fold屏幕规格揭晓:搭载2K/120Hz E5折叠屏幕
  4. Qt拖放操作和打印操作
  5. C# 对称算法,加密解密类
  6. html选择时间区间控件,Html5添加用户选择一个日期时间范围的日期选择器插件教程...
  7. UML大作业【小型超市管理系统】
  8. linux md5加密文件,linux md5 加密字符串和文件方法
  9. 边境的悍匪—机器学习实战:第十五章 使用CNN和RNN处理序列
  10. 期刊影响因子的中外算法差别很大
  11. PDF文件不能编辑,有什么办法能够解决?
  12. 初入Shell编程,了解规范与变量
  13. 数据分析实战(一百零一):项目分析思路 —— 用户增长实践经验分享
  14. 无偏性 VS 一致性
  15. 处理火狐浏览器地址栏点击出现 百度/58同城/爱淘宝 链接
  16. 原始socket实现局域网ARP欺骗
  17. 华为手机设置微信气泡
  18. Unnamed System Edition v4.0
  19. 写一个程序输入一个国家的国家名,输出该国的首都名。
  20. 神策数据付力力:新一代的营销数据平台

热门文章

  1. 日本服务器线路有什么区别?
  2. L - 非常可乐——HDU-1495(bfs->优化bfs->数论)
  3. 高数【积分-不定积分】--猴博士爱讲课
  4. 向着第二层 第一阶段第二十四天
  5. 【定位原理揭秘第二期】GPS定位实现原理解析
  6. open函数r,r+,w,w+,a,a+的区别
  7. 《机器学习实战》源码和数据集的下载
  8. [COI2012] TRAMPOLIN
  9. 什么时候需要做读写分离?
  10. 混合灰狼和布谷鸟搜索优化算法(Matlab完整代码实现)