面向对象(OO)的ALV
Posted HARU_ちゃん
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象(OO)的ALV相关的知识,希望对你有一定的参考价值。
1 START-OF-SELECTION. 2 * Selection Screen 3 SELECTION-SCREEN BEGIN OF BLOCK 1. 4 SELECT-OPTIONS: so_pob FOR farr_d_defitem-pob_id. 5 SELECT-OPTIONS: so_con FOR farr_d_defitem-contract_id. 6 PARAMETERS: 7 p_test_r AS CHECKBOX DEFAULT \'X\', 8 p_new_li AS CHECKBOX DEFAULT \'\'. 9 SELECTION-SCREEN END OF BLOCK 1. 10 11 *&---------------------------------------------------------------------* 12 *& END-OF-SELECTION 13 *&---------------------------------------------------------------------* 14 END-OF-SELECTION. 15 * In case of new lines no select is needed 16 IF p_new_li IS INITIAL. 17 * Select FARR_D_DEFITEM direct in output and changtab lt_ZFARR_D_DEFITEM 18 SELECT * FROM farr_d_defitem INTO CORRESPONDING FIELDS OF TABLE lt_zfarr_d_defitem 19 WHERE pob_id IN so_pob 20 AND contract_id IN so_con. 21 22 * Select original table lines in memory table 23 SELECT * FROM farr_d_defitem INTO CORRESPONDING FIELDS OF TABLE lt_farr_d_defitem_org 24 WHERE pob_id IN so_pob 25 AND contract_id IN so_con. 26 ENDIF. 27 28 IF lt_zfarr_d_defitem IS INITIAL. 29 total_num = \'0\'. 30 ELSE. 31 DESCRIBE TABLE lt_farr_d_defitem LINES total_num. 32 ENDIF. 33 34 *MESSAGE: \'make sure the contract is consistence with RAI and Sales order as needed\' TYPE \'I\'. 35 MESSAGE: \'Change all lines you like to change, mark the lines you need to change and press save\' TYPE \'S\'. 36 37 CALL SCREEN 999. 38 39 INCLUDE z_oo_test_james_status_0999o01. 40 41 INCLUDE z_oo_test_james_prepare_fief01.
1 PROCESS BEFORE OUTPUT. 2 MODULE ini_alv. 3 MODULE STATUS_0999. 4 5 * 6 PROCESS AFTER INPUT. 7 MODULE USER_COMMAND_0999.
1 &---------------------------------------------------------------------* 2 *& Module INI_ALV OUTPUT 3 *&---------------------------------------------------------------------* 4 * text 5 *----------------------------------------------------------------------* 6 MODULE ini_alv OUTPUT. 7 8 lw_layout-zebra = abap_true. 9 lw_layout-cwidth_opt = abap_true. 10 lw_layout-sel_mode = \'D\'. 11 12 IF go_container is INITIAL. 13 create OBJECT go_container 14 EXPORTING 15 container_name = \'CUS\'. " Name of the Screen CustCtrl 16 17 CREATE OBJECT go_alv_grid 18 EXPORTING 19 i_parent = go_container . " Parent Container 20 21 * CREATE OBJECT go_alv_toolbar 22 * EXPORTING 23 * IO_ALV_GRID = go_alv_grid 24 25 lw_layout-edit = abap_false. 26 lw_layout-zebra = abap_true. 27 * lw_layout-stylefname = \'CT\'. 28 ls_variant-report = \'ZFARR965\'. 29 30 PERFORM prepare_fieldcatalog. "make chekbox for insert and delete 31 32 * CALL METHOD go_alv_grid->set_toolbar_interactive. 33 CALL METHOD go_alv_grid->set_table_for_first_display 34 EXPORTING 35 i_structure_name = \'ZFARR_D_DEFITEM\' 36 is_layout = lw_layout 37 i_default = abap_true 38 i_save = \'A\' 39 * is_variant = ls_variant 40 CHANGING 41 it_fieldcatalog = gs_fieldcatalog 42 it_outtab = lt_zFARR_D_DEFITEM. " Output Table 43 * Set editable cells to ready for input initially 44 CALL METHOD go_alv_grid->set_ready_for_input 45 EXPORTING 46 i_ready_for_input = 1. 47 48 ELSE. 49 CALL METHOD go_alv_grid->refresh_table_display. 50 ENDIF. 51 52 ENDMODULE.
1 ***INCLUDE Z_OO_TEST_JAMES_STATUS_0999O01. 2 *----------------------------------------------------------------------* 3 *&---------------------------------------------------------------------* 4 *& Module STATUS_0999 OUTPUT 5 *&---------------------------------------------------------------------* 6 * text 7 *----------------------------------------------------------------------* 8 MODULE status_0999 OUTPUT. 9 SET PF-STATUS \'STATUS_999\'. 10 SET TITLEBAR \'TITLE_999\'. 11 ENDMODULE.
1 *&---------------------------------------------------------------------* 2 *& Module USER_COMMAND_0999 INPUT 3 *&---------------------------------------------------------------------* 4 * text 5 *----------------------------------------------------------------------* 6 MODULE user_command_0999 INPUT. 7 DATA ok_code TYPE ok_code. 8 CASE ok_code. 9 WHEN \'BACK\' OR \'EXIT\' OR \'CANCEL\'. 10 * leave PROGRAM. 11 LEAVE to SCREEN 0. 12 WHEN \'SAVE\'. 13 * PERFORM updat_FARR_D_DEFITEM_db. 14 WHEN OTHERS. 15 ENDCASE. 16 ENDMODULE.
1 *----------------------------------------------------------------------* 2 ***INCLUDE Z_OO_TEST_JAMES_STATUS_0999O01. 3 *----------------------------------------------------------------------* 4 *&---------------------------------------------------------------------* 5 *& Module STATUS_0999 OUTPUT 6 *&---------------------------------------------------------------------* 7 * text 8 *----------------------------------------------------------------------* 9 MODULE status_0999 OUTPUT. 10 SET PF-STATUS \'STATUS_999\'. 11 SET TITLEBAR \'TITLE_999\'. 12 ENDMODULE.
1 ----------------------------------------------------------------------* 2 ***INCLUDE Z_OO_TEST_JAMES_PREPARE_FIEF01. 3 *----------------------------------------------------------------------* 4 *&---------------------------------------------------------------------* 5 *& Form PREPARE_FIELDCATALOG 6 *&---------------------------------------------------------------------* 7 * text 8 *----------------------------------------------------------------------* 9 * --> p1 text 10 * <-- p2 text 11 *----------------------------------------------------------------------* 12 FORM prepare_fieldcatalog . 13 * Making feildcat 14 CLEAR gv_fcat. 15 gv_fcat-fieldname = \'DELETE_LINE\'."fieldname 16 gv_fcat-tabname = \'ZFARR_D_DEFITEM\'."tabname 17 gv_fcat-checkbox = \'X\'. 18 gv_fcat-coltext = \'Delete line\'##NO_TEXT . 19 INSERT gv_fcat INTO TABLE gs_fieldcatalog. 20 21 CLEAR gv_fcat. 22 gv_fcat-fieldname = \'NEW_LINE\'."fieldname 23 gv_fcat-tabname = \'ZFARR_D_DEFITEM\'."tabname 24 gv_fcat-checkbox = \'X\'. 25 gv_fcat-coltext = \'Insert line\'##NO_TEXT . 26 INSERT gv_fcat INTO TABLE gs_fieldcatalog. 27 28 CLEAR gv_fcat. 29 gv_fcat-fieldname = \'CHANGE_USER\'."fieldname 30 gv_fcat-tabname = \'ZFARR_D_DEFITEM\'."tabname 31 gv_fcat-no_out = \'X\'. 32 INSERT gv_fcat INTO TABLE gs_fieldcatalog. 33 34 CLEAR gv_fcat. 35 gv_fcat-fieldname = \'CHANGE_TIME\'."fieldname 36 gv_fcat-tabname = \'ZFARR_D_DEFITEM\'."tabname 37 gv_fcat-no_out = \'X\'. 38 INSERT gv_fcat INTO TABLE gs_fieldcatalog. 39 40 CLEAR gv_fcat. 41 gv_fcat-fieldname = \'CHANGE_DAT\'."fieldname 42 gv_fcat-tabname = \'ZFARR_D_DEFITEM\'."tabname 43 gv_fcat-no_out = \'X\'. 44 INSERT gv_fcat INTO TABLE gs_fieldcatalog. 45 46 CLEAR gv_fcat. 47 gv_fcat-fieldname = \'VERSION\'."fieldname 48 gv_fcat-tabname = \'ZFARR_D_DEFITEM\'."tabname 49 gv_fcat-no_out = \'X\'. 50 INSERT gv_fcat INTO TABLE gs_fieldcatalog. 51 52 ENDFORM.
1 *&---------------------------------------------------------------------* 2 *& Report Z_OO_TEST_JAMES 3 *&---------------------------------------------------------------------* 4 *&* (TEST FOR JAMES )Report to DISPLAY 5 *&---------------------------------------------------------------------* 6 REPORT Z_OO_TEST_JAMES. 7 8 TABLES: 9 farr_d_defitem. 10 *&---------------------------------------------------------------------* 11 *& DATA DEFINITION 12 *&---------------------------------------------------------------------* 13 DATA: 14 lt_farr_d_defitem TYPE SORTED TABLE OF farr_d_defitem 15 WITH UNIQUE KEY RECON_KEY POB_ID CONDITION_TYPE DEFERRAL_CAT, 16 ls_farr_d_defitem TYPE farr_d_defitem , 17 lt_zfarr_d_defitem TYPE STANDARD TABLE OF zfarr_d_defitem, 18 lt_farr_d_defitem_org TYPE STANDARD TABLE OF farr_d_defitem, 19 ls_farr_d_defitem_org TYPE farr_d_defitem. 20 21 * ALV 22 TYPE-POOLS: 23 slis. 24 *Class definition for ALV toolbar 25 *CLASS: lcl_alv_toolbar DEFINITION DEFERRED. 26 27 *Screen fields 28 DATA: 29 total_num TYPE i. 30 31 * OO DEFINITION 32 DATA: 33 go_container TYPE REF TO cl_gui_custom_container, 34 * go_alv_toolbar TYPE REF TO lcl_alv_toolbar, "Alv toolbar 35 go_alv_grid TYPE REF TO cl_gui_alv_grid. 36 37 * Workareas 38 DATA lt_fieldcat TYPE lvc_t_fcat. 39 DATA: 40 lw_fieldcat LIKE LINE OF lt_fieldcat, 41 lw_layout TYPE lvc_s_layo, 42 gs_fieldcatalog TYPE lvc_s_fcat OCCURS 0, 43 gv_fcat LIKE LINE OF gs_fieldcatalog. 44 45 DATA: ls_variant TYPE disvariant.
以上是关于面向对象(OO)的ALV的主要内容,如果未能解决你的问题,请参考以下文章