当前位置:网站首页>ABAP ALV LVC template
ABAP ALV LVC template
2022-07-08 00:27:00 【Seele_ one thousand and eighteen】
The template contains a selection screen 、ALV、 Menu bar Events 、 Print program content
********************************************************************
* Transaction code : *
* Program name :ZDEMO_SEELE01 *
* Use variant : *
* set up meter people :SEELE *
* Design time : *
* Program type : REPORT *
* The application type : MM *
* Sketch Statement : *
*( Modification log )--------------------------------------------------------*
* *
* Log number Modifier Modification time Modification Description *
* ---- ------ ------ ----------- *
* 001 SEELE Create report *
********************************************************************
REPORT zdemo_seele01.
*------------------------------------------------------------------------*
* Declaration selection screen 、 Icons and other tables and type pools
*------------------------------------------------------------------------*
TYPE-POOLS: slis.
TABLES: ekko,sscrfields.
*-----------------------------------------------------------------------*
* Declare custom data types
*-----------------------------------------------------------------------*
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.
*------------------------------------------------------------------------*
* Statement ALV Data objects used in the display process
*------------------------------------------------------------------------*
DATA: gt_fieldcat TYPE lvc_t_fcat,
gs_fieldcat TYPE lvc_s_fcat,
gs_layout TYPE lvc_s_layo.
*ALV Callback function
CONSTANTS: gc_callback_satus TYPE slis_formname VALUE 'FRM_USER_STATUS', " Set custom menu bar constants
gc_callback_user_command TYPE slis_formname VALUE 'FRM_USER_COMMAND'. " Set custom menu button events
* ALV report form
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.
* Select screen
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 Format initialization
PERFORM layout_init.
PERFORM fieldcat_init_all.
*-----------------------------------------------------------------------*
* START-OF-SELECTION
*-----------------------------------------------------------------------*
START-OF-SELECTION.
* get data
PERFORM frm_get_data.
*-----------------------------------------------------------------------*
* END-OF-SELECTION
*-----------------------------------------------------------------------*
END-OF-SELECTION.
* Exhibition ALV
PERFORM frm_display_alv.
*-----------------------------------------------------------------------*
* FORM Subroutine area
*-----------------------------------------------------------------------*
* get data
FORM frm_get_data.
ENDFORM.
* Set up layout
FORM frm_set_layout. "SET LAYOUT
gs_layout-cwidth_opt = 'X'. " Set to the most suitable layout
gs_layout-zebra = 'X'. " zebra crossing
gs_layout-sel_mode = 'A'. " Choice mode
gs_layout-box_fname = 'SEL'. " Selection field
ENDFORM.
* Set up field
FORM frm_field. "USE FIELD
REFRESH: 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 FIELD
i_fieldname TYPE any
i_coltext TYPE any
i_qfieldname TYPE any
i_key TYPE any
i_checkbox TYPE any
i_just TYPE any
i_emphasize TYPE any
i_datatype TYPE any
i_inttype TYPE any
i_ref_field TYPE any
i_ref_table TYPE any
i_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'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'FRM_USER_STATUS'
i_callback_user_command = 'FRM_USER_COMMAND'
* it_events = gv_events
is_layout_lvc = gs_layout
it_fieldcat_lvc = gt_fieldcat
i_save = 'A'
TABLES
t_outtab = gt_data
EXCEPTIONS
program_error = 1
OTHERS = 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. "GUI
SET PF-STATUS 'STATUS_1000' EXCLUDING pt_extab.
ENDFORM.
FORM frm_user_command USING i_ucomm LIKE sy-ucomm "user_command
i_selfield TYPE slis_selfield.
DATA: lo_grid TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = lo_grid.
CALL METHOD lo_grid->check_changed_data. " Send the updated data to alv Corresponding inner table
i_selfield-refresh = 'X'. " The refresh data
CASE i_ucomm.
WHEN 'PRINT'.
READ TABLE gt_data INTO gs_data WITH KEY sel = 'X'. "CHECK SEL
IF 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'
EXPORTING
formname = 'ZPMF_WORKORDER01'
IMPORTING
fm_name = lv_name01
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 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'
EXPORTING
control_parameters = ls_control_parameters
output_options = ls_output_options
IMPORTING
job_output_options = ls_outopt
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 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-sfname
EXPORTING
control_parameters = ls_control_parameters
output_options = ls_output_options
gs_head = ls_pm
IMPORTING
job_output_info = ls_output_info
TABLES
gt_item = lt_pmi
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 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'
IMPORTING
job_output_info = ls_output_info
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
OTHERS = 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.
边栏推荐
- 接口测试要测试什么?
- "An excellent programmer is worth five ordinary programmers", and the gap lies in these seven key points
- Sqlite数据库存储目录结构邻接表的实现2-目录树的构建
- Set up personal network disk with nextcloud
- [C language] objective questions - knowledge points
- Common selectors are
- 深潜Kotlin协程(二十三 完结篇):SharedFlow 和 StateFlow
- After going to ByteDance, I learned that there are so many test engineers with an annual salary of 40W?
- Introduction knowledge system of Web front-end engineers
- 攻防世界Web进阶区unserialize3题解
猜你喜欢
Fully automated processing of monthly card shortage data and output of card shortage personnel information
关于组织2021-2022全国青少年电子信息智能创新大赛西南赛区(四川)复赛的通知
How to learn a new technology (programming language)
【史上最详细】信贷中逾期天数统计说明
3 years of experience, can't you get 20K for the interview and test post? Such a hole?
Two small problems in creating user registration interface
[programming questions] [scratch Level 2] March 2019 garbage classification
全自动化处理每月缺卡数据,输出缺卡人员信息
SQL knowledge summary 004: Postgres terminal command summary
Relevant methods of sorting arrays in JS (if you want to understand arrays, it's enough to read this article)
随机推荐
new和delete的底层原理以及模板
应用实践 | 数仓体系效率全面提升!同程数科基于 Apache Doris 的数据仓库建设
华为交换机S5735S-L24T4S-QA2无法telnet远程访问
哪个券商公司开户佣金低又安全,又靠谱
How can CSDN indent the first line of a paragraph by 2 characters?
从Starfish OS持续对SFO的通缩消耗,长远看SFO的价值
每日刷题记录 (十六)
去了字节跳动,才知道年薪 40w 的测试工程师有这么多?
华泰证券官方网站开户安全吗?
Coindesk comments on the decentralization process of the wave field: let people see the future of the Internet
Qt不同类之间建立信号槽,并传递参数
他们齐聚 2022 ECUG Con,只为「中国技术力量」
Is it safe to open an account on the official website of Huatai Securities?
Usage of limit and offset (Reprint)
paddle入门-使用LeNet在MNIST实现图像分类方法二
数据库查询——第几高的数据?
【编程题】【Scratch二级】2019.09 绘制雪花图案
【编程题】【Scratch二级】2019.12 绘制十个正方形
52歲的周鴻禕,還年輕嗎?
[programming problem] [scratch Level 2] March 2019 draw a square spiral