码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象(OO)的ALV

时间:2017-10-05 15:06:40      阅读:392      评论:0      收藏:0      [点我收藏+]

标签:ini   status   org   edit   line   cond   contract   message   init   

 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

标签:ini   status   org   edit   line   cond   contract   message   init   

原文地址:http://www.cnblogs.com/HARU/p/7629165.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!