面向对象(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.

 

转载于:https://www.cnblogs.com/HARU/p/7629165.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值