ABAP ALV LVC模板
模板包含选择屏幕、ALV、菜单栏事件、打印程序内容
********************************************************************
* 事务代码: *
* 程序名称:ZDEMO_SEELE01 *
* 使用变式: *
* 设 计 人:SEELE *
* 设计时间: *
* 程序类型: REPORT *
* 应用类型: MM *
* 描 述: *
*(修改日志)--------------------------------------------------------*
* *
* 日志号 修改人 修改时间 修改说明 *
* ---- ------ ------ ----------- *
* 001 SEELE 创建报表 *
********************************************************************
REPORT zdemo_seele01.*------------------------------------------------------------------------*
* 声明选择屏幕、图标等用到的表和类型池
*------------------------------------------------------------------------*
TYPE-POOLS: slis.
TABLES: ekko,sscrfields.*-----------------------------------------------------------------------*
* 声明自定义的数据类型
*-----------------------------------------------------------------------*
TYPES: BEGIN OF ty_alv,ebeln TYPE ekko~ebeln,bukrs TYPE ekko~bukrs,butxt TYPE t001~butxt,bstyp TYPE ekko~bstyp,sel TYPE c,END OF ty_alv.*------------------------------------------------------------------------*
* 声明ALV显示过程中用到的数据对象
*------------------------------------------------------------------------*
DATA: gt_fieldcat TYPE lvc_t_fcat,gs_fieldcat TYPE lvc_s_fcat,gs_layout TYPE lvc_s_layo.*ALV回调函数
CONSTANTS: gc_callback_satus TYPE slis_formname VALUE 'FRM_USER_STATUS', " 设置自定义菜单栏常量gc_callback_user_command TYPE slis_formname VALUE 'FRM_USER_COMMAND'. " 设置自定义菜单按钮事件* ALV报表
DATA: gs_alv TYPE ty_alv,gt_alv TYPE TABLE OF ty_alv.* Smartforms
DATA: tmp_control_parameters TYPE ssfctrlop,fm_name TYPE rs38l_fnam.*-----------------------------------------------------------------------*
* INITIALIZATION
*-----------------------------------------------------------------------*
INITIALIZATION.
* 选择屏幕SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE TEXT-001.SELECT-OPTIONS s_matnr FOR zqmt_qylist-matnr.SELECTION-SCREEN END OF BLOCK blk.* ALV格式初始化PERFORM layout_init.PERFORM fieldcat_init_all.*-----------------------------------------------------------------------*
* START-OF-SELECTION
*-----------------------------------------------------------------------*
START-OF-SELECTION.*获取数据PERFORM frm_get_data.*-----------------------------------------------------------------------*
* END-OF-SELECTION
*-----------------------------------------------------------------------*
END-OF-SELECTION.* 展示ALVPERFORM frm_display_alv.*-----------------------------------------------------------------------*
* FORM子例程区
*-----------------------------------------------------------------------*
* 获取数据
FORM frm_get_data.ENDFORM.* 设置layout
FORM frm_set_layout. "SET LAYOUTgs_layout-cwidth_opt = 'X'. "设置为最适合的布局gs_layout-zebra = 'X'. "斑马线gs_layout-sel_mode = 'A'. "选择模式gs_layout-box_fname = 'SEL'. "选择字段
ENDFORM.* 设置field
FORM frm_field. "USE FIELDREFRESH: gt_fieldcat.CLEAR: gs_fieldcat.PERFORM frm_set_field USING 0 'XUHAO' TEXT-a01 '' 'X' '' 'C' '' '' '' '' '' ''.PERFORM frm_set_field USING 1 'EQUNR' TEXT-a02 '' 'X' '' 'C' '' '' '' 'EQUNR' 'EQUI' ''.PERFORM frm_set_field USING 2 'EQKTX' TEXT-a03 '' '' '' 'C' '' '' '' 'EQKTX' 'EQKT' ''.PERFORM frm_set_field USING 3 'EQTYP' TEXT-a04 '' '' '' 'C' '' '' '' 'EQTYP' 'EQUI' ''.PERFORM frm_set_field USING 4 'SWERK' TEXT-a06 '' '' '' 'C' '' '' '' 'SWERK' 'ILOA' ''.PERFORM frm_set_field USING 5 'TYPBZ' TEXT-a07 '' '' '' 'C' '' '' '' 'TYPBZ' 'EQUI' ''.PERFORM frm_set_field USING 6 'TXT30' TEXT-a08 '' '' '' 'C' '' '' '' 'TXT30' 'TJ30T' ''.ENDFORM.FORM frm_set_field USING i_col_pos TYPE any "SET FIELDi_fieldname TYPE anyi_coltext TYPE anyi_qfieldname TYPE anyi_key TYPE anyi_checkbox TYPE anyi_just TYPE anyi_emphasize TYPE anyi_datatype TYPE anyi_inttype TYPE anyi_ref_field TYPE anyi_ref_table TYPE anyi_edit TYPE any.gs_fieldcat-col_pos = i_col_pos.gs_fieldcat-fieldname = i_fieldname.gs_fieldcat-coltext = i_coltext.gs_fieldcat-qfieldname = i_qfieldname.gs_fieldcat-key = i_key.gs_fieldcat-checkbox = i_checkbox.gs_fieldcat-just = i_just.gs_fieldcat-emphasize = i_emphasize.gs_fieldcat-datatype = i_datatype.gs_fieldcat-inttype = i_inttype.gs_fieldcat-ref_field = i_ref_field.gs_fieldcat-ref_table = i_ref_table.gs_fieldcat-edit = i_edit.APPEND gs_fieldcat TO gt_fieldcat.CLEAR gs_fieldcat.ENDFORM.FORM frm_display_alv.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'EXPORTINGi_callback_program = sy-repidi_callback_pf_status_set = 'FRM_USER_STATUS'i_callback_user_command = 'FRM_USER_COMMAND'
* it_events = gv_eventsis_layout_lvc = gs_layoutit_fieldcat_lvc = gt_fieldcati_save = 'A'TABLESt_outtab = gt_dataEXCEPTIONSprogram_error = 1OTHERS = 2.IF sy-subrc NE 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.ENDFORM.FORM frm_user_status USING pt_extab TYPE slis_t_extab. "GUISET PF-STATUS 'STATUS_1000' EXCLUDING pt_extab.
ENDFORM.FORM frm_user_command USING i_ucomm LIKE sy-ucomm "user_commandi_selfield TYPE slis_selfield.DATA: lo_grid TYPE REF TO cl_gui_alv_grid.CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'IMPORTINGe_grid = lo_grid.CALL METHOD lo_grid->check_changed_data. "将更新后的数据传到alv所对应的内表i_selfield-refresh = 'X'. "刷新数据CASE i_ucomm.WHEN 'PRINT'.READ TABLE gt_data INTO gs_data WITH KEY sel = 'X'. "CHECK SELIF sy-subrc NE 0.MESSAGE s003(zpm01) DISPLAY LIKE 'E'.RETURN.ELSE.CLEAR:gs_tab,gt_tab.LOOP AT gt_data INTO gs_data WHERE sel = 'X'.MOVE-CORRESPONDING gs_data TO gs_tab.APPEND gs_tab TO gt_tab.ENDLOOP.PERFORM frm_print.ENDIF.ENDCASE.ENDFORM.FORM frm_print.DATA: ls_control_parameters TYPE ssfctrlop,ls_output_options TYPE ssfcompop,ls_outopt TYPE ssfcresop,ls_output_info TYPE ssfcrescl.CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'EXPORTINGformname = 'ZPMF_WORKORDER01'IMPORTINGfm_name = lv_name01EXCEPTIONSno_form = 1no_function_module = 2OTHERS = 3.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.CALL FUNCTION 'SSF_OPEN'EXPORTINGcontrol_parameters = ls_control_parametersoutput_options = ls_output_optionsIMPORTINGjob_output_options = ls_outoptEXCEPTIONSformatting_error = 1internal_error = 2send_error = 3user_canceled = 4OTHERS = 5.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.RETURN.ENDIF.ls_control_parameters-no_open = 'X'.ls_control_parameters-no_close = 'X'.LOOP AT gt_sel INTO gw_alv.CALL FUNCTION ls_pm-sfnameEXPORTINGcontrol_parameters = ls_control_parametersoutput_options = ls_output_optionsgs_head = ls_pmIMPORTINGjob_output_info = ls_output_infoTABLESgt_item = lt_pmiEXCEPTIONSformatting_error = 1internal_error = 2send_error = 3user_canceled = 4OTHERS = 5.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.ENDLOOP.CALL FUNCTION 'SSF_CLOSE'IMPORTINGjob_output_info = ls_output_infoEXCEPTIONSformatting_error = 1internal_error = 2send_error = 3OTHERS = 4.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.
ENDFORM.
英文版模板
*&---------------------------------------------------------------------*
*& Report ZCNBS01
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZCNBS01.************************************************************************************
* PROGRAM ID : Z**R_** *
* PROGRAM TITLE : *** Report *
* AUTHOR : ***_SEELE *
* SUPPLIER : *
* DATE : 25/07/2022 *
* DEVELOPMENT ID : DEV*** *
*
* CHANGE REQUEST (CTS) : . *
* DESCRIPTION : DESC *
* *
* *
* *
* *
* *
* *
*======================================================================
* CHANGE HISTORY LOG *
*----------------------------------------------------------------------------------*
* MOD. NO.| DATE | NAME | CORRECTION NUMBER | CHANGE REFERENCE # *
*----------------------------------------------------------------------------------*
* MOD-001 |DD/MM/YYYY| XXXXXXXXXXXXXX | XXXXXXXXXX | XXXXXXXXXX *
* *
* DESCRIPTION: *
*----------------------------------------------------------------------------------**------------------------------------------------------------------------*
* Declare selection screen's table and type-pool
*------------------------------------------------------------------------*
TYPE-POOLS: slis.
TABLES: ekko,sscrfields.*-----------------------------------------------------------------------*
* Declare custome data type
*-----------------------------------------------------------------------*
TYPES: BEGIN OF ty_alv,ebeln TYPE ekko~ebeln,bukrs TYPE ekko~bukrs,butxt TYPE t001~butxt,bstyp TYPE ekko~bstyp,sel TYPE c,END OF ty_alv.*------------------------------------------------------------------------*
* Declare alv data object
*------------------------------------------------------------------------*
DATA: gt_fieldcat TYPE lvc_t_fcat,gs_fieldcat TYPE lvc_s_fcat,gs_layout TYPE lvc_s_layo.*ALV Event
CONSTANTS: gc_callback_satus TYPE slis_formname VALUE 'FRM_USER_STATUS', " 设置自定义菜单栏常量gc_callback_user_command TYPE slis_formname VALUE 'FRM_USER_COMMAND'. " 设置自定义菜单按钮事件* ALV report table and work area
DATA: gs_alv TYPE ty_alv,gt_alv TYPE TABLE OF ty_alv.* Smartforms
DATA: tmp_control_parameters TYPE ssfctrlop,fm_name TYPE rs38l_fnam.*-----------------------------------------------------------------------*
* INITIALIZATION
*-----------------------------------------------------------------------*
INITIALIZATION.
* Selection screenSELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE TEXT-001.SELECT-OPTIONS s_matnr FOR zqmt_qylist-matnr.SELECTION-SCREEN END OF BLOCK blk.* ALV format initialization格式初始化PERFORM layout_init.PERFORM fieldcat_init_all.*-----------------------------------------------------------------------*
* START-OF-SELECTION
*-----------------------------------------------------------------------*
START-OF-SELECTION.*get dataPERFORM frm_get_data.*-----------------------------------------------------------------------*
* END-OF-SELECTION
*-----------------------------------------------------------------------*
END-OF-SELECTION.* diaplay ALVPERFORM frm_display_alv.*-----------------------------------------------------------------------*
* frm_get_data
*-----------------------------------------------------------------------*
* 获取数据
FORM frm_get_data.ENDFORM.* set layout
FORM frm_set_layout. "SET LAYOUTgs_layout-cwidth_opt = 'X'. "Set to the most suitable layoutgs_layout-zebra = 'X'. "zebra displaygs_layout-sel_mode = 'A'. "Select modegs_layout-box_fname = 'SEL'. "Select box fieldname
ENDFORM.* 设置field
FORM frm_field. "USE FIELDREFRESH: gt_fieldcat.CLEAR: gs_fieldcat.PERFORM frm_set_field USING 0 'XUHAO' TEXT-a01 '' 'X' '' 'C' '' '' '' '' '' ''.PERFORM frm_set_field USING 1 'EQUNR' TEXT-a02 '' 'X' '' 'C' '' '' '' 'EQUNR' 'EQUI' ''.PERFORM frm_set_field USING 2 'EQKTX' TEXT-a03 '' '' '' 'C' '' '' '' 'EQKTX' 'EQKT' ''.PERFORM frm_set_field USING 3 'EQTYP' TEXT-a04 '' '' '' 'C' '' '' '' 'EQTYP' 'EQUI' ''.PERFORM frm_set_field USING 4 'SWERK' TEXT-a06 '' '' '' 'C' '' '' '' 'SWERK' 'ILOA' ''.PERFORM frm_set_field USING 5 'TYPBZ' TEXT-a07 '' '' '' 'C' '' '' '' 'TYPBZ' 'EQUI' ''.PERFORM frm_set_field USING 6 'TXT30' TEXT-a08 '' '' '' 'C' '' '' '' 'TXT30' 'TJ30T' ''.ENDFORM.FORM frm_set_field USING i_col_pos TYPE any "SET FIELDi_fieldname TYPE anyi_coltext TYPE anyi_qfieldname TYPE anyi_key TYPE anyi_checkbox TYPE anyi_just TYPE anyi_emphasize TYPE anyi_datatype TYPE anyi_inttype TYPE anyi_ref_field TYPE anyi_ref_table TYPE anyi_edit TYPE any.gs_fieldcat-col_pos = i_col_pos.gs_fieldcat-fieldname = i_fieldname.gs_fieldcat-coltext = i_coltext.gs_fieldcat-qfieldname = i_qfieldname.gs_fieldcat-key = i_key.gs_fieldcat-checkbox = i_checkbox.gs_fieldcat-just = i_just.gs_fieldcat-emphasize = i_emphasize.gs_fieldcat-datatype = i_datatype.gs_fieldcat-inttype = i_inttype.gs_fieldcat-ref_field = i_ref_field.gs_fieldcat-ref_table = i_ref_table.gs_fieldcat-edit = i_edit.APPEND gs_fieldcat TO gt_fieldcat.CLEAR gs_fieldcat.ENDFORM.FORM frm_display_alv.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'EXPORTINGi_callback_program = sy-repidi_callback_pf_status_set = 'FRM_USER_STATUS'i_callback_user_command = 'FRM_USER_COMMAND'
* it_events = gv_eventsis_layout_lvc = gs_layoutit_fieldcat_lvc = gt_fieldcati_save = 'A'TABLESt_outtab = gt_dataEXCEPTIONSprogram_error = 1OTHERS = 2.IF sy-subrc NE 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.ENDFORM.FORM frm_user_status USING pt_extab TYPE slis_t_extab. "GUISET PF-STATUS 'STATUS_1000' EXCLUDING pt_extab.
ENDFORM.FORM frm_user_command USING i_ucomm LIKE sy-ucomm "user_commandi_selfield TYPE slis_selfield.DATA: lo_grid TYPE REF TO cl_gui_alv_grid.CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'IMPORTINGe_grid = lo_grid.CALL METHOD lo_grid->check_changed_data. "Transfer the updated data to the internal table corresponding to ALVi_selfield-refresh = 'X'. "Refresh dataCASE i_ucomm.WHEN 'PRINT'.READ TABLE gt_data INTO gs_data WITH KEY sel = 'X'. "CHECK SELIF sy-subrc NE 0.MESSAGE s003(zpm01) DISPLAY LIKE 'E'.RETURN.ELSE.CLEAR:gs_tab,gt_tab.LOOP AT gt_data INTO gs_data WHERE sel = 'X'.MOVE-CORRESPONDING gs_data TO gs_tab.APPEND gs_tab TO gt_tab.ENDLOOP.PERFORM frm_print.ENDIF.ENDCASE.ENDFORM.FORM frm_print.DATA: ls_control_parameters TYPE ssfctrlop,ls_output_options TYPE ssfcompop,ls_outopt TYPE ssfcresop,ls_output_info TYPE ssfcrescl.CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'EXPORTINGformname = 'ZPMF_WORKORDER01'IMPORTINGfm_name = lv_name01EXCEPTIONSno_form = 1no_function_module = 2OTHERS = 3.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.CALL FUNCTION 'SSF_OPEN'EXPORTINGcontrol_parameters = ls_control_parametersoutput_options = ls_output_optionsIMPORTINGjob_output_options = ls_outoptEXCEPTIONSformatting_error = 1internal_error = 2send_error = 3user_canceled = 4OTHERS = 5.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.RETURN.ENDIF.ls_control_parameters-no_open = 'X'.ls_control_parameters-no_close = 'X'.LOOP AT gt_sel INTO gw_alv.CALL FUNCTION ls_pm-sfnameEXPORTINGcontrol_parameters = ls_control_parametersoutput_options = ls_output_optionsgs_head = ls_pmIMPORTINGjob_output_info = ls_output_infoTABLESgt_item = lt_pmiEXCEPTIONSformatting_error = 1internal_error = 2send_error = 3user_canceled = 4OTHERS = 5.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.ENDLOOP.CALL FUNCTION 'SSF_CLOSE'IMPORTINGjob_output_info = ls_output_infoEXCEPTIONSformatting_error = 1internal_error = 2send_error = 3OTHERS = 4.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.
ENDFORM.
ABAP ALV LVC模板相关推荐
- ABAP ALV(LVC)下拉框或者F4搜索帮助
先上结果图: 代码: REPORT ZDCH_09_TEST2. ******************************************************************* ...
- ABAP ALV LVC三种选择框设置方式
REUSE_ALV_GRID_DISPLAY_LVC有三种方式设置选择框 第一种:fieldcat上设置checkbox 1. fieldcat和layout声明 2.定义宏 也可以不定义宏来做,反正 ...
- # ABAP 1. ALV快速模板
#1 ALV快速模板 提示: 不了解我可以点这里看看哟. 文章目录 #1 ALV快速模板 前言 一.普通ALV 二.OOALV 总结 前言 大部分时候,我们的需求最常见的就是开发报表 如果只是简单的报 ...
- SAP ABAP EXCEL 下载模板并导入(数据批导)
SAP ABAP EXCEL 下载模板并导入(数据批导) 文章目录 SAP ABAP EXCEL 下载模板并导入(数据批导) 前言 上传 EXCEL 模板 下载 EXCEL 模板 定义屏幕 初始化设置 ...
- ABAP ALV 总结
ABAP ALV 总结整理 目录 一.ALV简介 1.简介 2.ALV_GRID介绍 3.其它描述 二.开发ALV的基本流程 三.ALV相关开发细节 1.标准ALV与对象ALV的共同开发细节 2.标准 ...
- ABAP ALV 总结整理
ABAP ALV 总结整理 目录 一.ALV简介 1.简介 2.ALV_GRID介绍 3.其它描述 二.开发ALV的基本流程 三.ALV相关开发细节 1.标准ALV与对象ALV的共同开发细节 2 ...
- ABAP ALV检查单元格更新数据
ABAP ALV检查单元格更新数据 将ALV单元格设置为可输入后,通常我们需要对单元格输入的值做一个检查,一般来说用循环内表的方法可以实现上述操作,不过如果ALV中有大量数据,而我们只更新了少量的单元 ...
- 77 行代码实现 ABAP ALV 中的双击事件处理试读版
零基础 ABAP 学习教程系列文章的目录 ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍 ABAP 标准培训教程 BC400 学习笔记之二 ...
- 77 行代码实现 ABAP ALV 中的双击事件处理
我们在 ALV 开发专题的第二步骤里,为 ALV 输出的数据行,增添了颜色显示的功能: ALV 开发专题 27 行代码开发一个最简单的 SAP ALV 报表 给 ABAP ALV 报表的数据行增添颜色 ...
最新文章
- 深度学习中的欠拟合和过拟合简介
- Nature指数2021亚太区排名:7所中国高校挺进前10!看看有没有你的母校?
- Spring Cloud构建微服务架构:消息驱动的微服务(消费分区)【Dalston版】
- [Dubbo开发]配置简单的生产者和消费者
- miui12怎么自定义开机动画_MIUI12正式官宣,5天后发布!网友:发布是发布,12月才能更新?...
- php地理位置辐射范围,基于路网距离的城市辐射范围确定方法
- Django ORM
- 奥鹏17计算机应用基础离线,奥鹏《计算机应用基础》离线
- 孔夫子告诉你:编程到底能教会你什么!
- Android ListView下拉刷新时卡的问题解决小技巧
- 算法笔记_172:历届试题 波动数列(Java)
- 在没有密码提示的情况下在Ubuntu上安装MySQL
- 数据库缓存技术(转)
- 多版本Python共存的配置和使用
- paip.输入法编程---增加码表类型
- JavaScript url 编码转换
- ps滑动鼠标放大缩小
- 第三方支付龙头拉卡拉IPO过会
- golang通过浏览器操作服务器中文件
- 洛谷 P4246 [SHOI2008]堵塞的交通 线段树
热门文章
- Python读取PPT,PPT PPTX PPTM PPS PPSM PPSX
- vmware虚拟机镜像制作成QCOW2
- 视频教程-微信公众平台开发入门-微信开发
- 遇到问题--python--爬虫--urllib的使用协程没有并发的效果
- 网站流量统计(免费的)
- 像素画,治愈系超萌!看了这个,我都心痒了
- 黑苹果使用小技巧之按键设置
- Android Studio运行app启动模拟器一直卡在“Wating for target device to come online”的解决办法
- Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程
- qemu毒液漏洞分析(2015.9)