当前位置:网站首页>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.
边栏推荐
- 80%的人答错,苹果logo上的叶子到底朝左还是朝右?
- How to learn a new technology (programming language)
- [question de programmation] [scratch niveau 2] oiseaux volants en décembre 2019
- 2022-07-07:原本数组中都是大于0、小于等于k的数字,是一个单调不减的数组, 其中可能有相等的数字,总体趋势是递增的。 但是其中有些位置的数被替换成了0,我们需要求出所有的把0替换的方案数量:
- LeetCode刷题
- QT establish signal slots between different classes and transfer parameters
- Is 35 really a career crisis? No, my skills are accumulating, and the more I eat, the better
- Summary of weidongshan phase II course content
- 玩轉Sonar
- Database query - what is the highest data?
猜你喜欢
Smart regulation enters the market, where will meituan and other Internet service platforms go
Reptile practice (VIII): reptile expression pack
51与蓝牙模块通讯,51驱动蓝牙APP点灯
Set up personal network disk with nextcloud
Service Mesh介绍,Istio概述
测试流程不完善,又遇到不积极的开发怎么办?
玩轉Sonar
[programming problem] [scratch Level 2] 2019.09 make bat Challenge Game
深潜Kotlin协程(二十二):Flow的处理
【编程题】【Scratch二级】2019.12 绘制十个正方形
随机推荐
面试题详解:用Redis实现分布式锁的血泪史
STM32F1與STM32CubeIDE編程實例-旋轉編碼器驅動
QT establish signal slots between different classes and transfer parameters
搭建ADG过程中复制报错 RMAN-03009 ORA-03113
SQL knowledge summary 004: Postgres terminal command summary
[programming problem] [scratch Level 2] December 2019 flying birds
How to measure whether the product is "just needed, high frequency, pain points"
3 years of experience, can't you get 20K for the interview and test post? Such a hole?
全自动化处理每月缺卡数据,输出缺卡人员信息
[the most detailed in history] statistical description of overdue days in credit
从服务器到云托管,到底经历了什么?
Su embedded training - Day3
Tools for debugging makefiles - tool for debugging makefiles
[研发人员必备]paddle 如何制作自己的数据集,并显示。
LeetCode刷题
DNS 系列(一):为什么更新了 DNS 记录不生效?
玩转Sonar
Introduction knowledge system of Web front-end engineers
5G NR 系统消息
在网页中打开展示pdf文件