• 面向对象(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.
  • 相关阅读:
    Atitit sql计划任务与查询优化器统计信息模块
    Atitit  数据库的事件机制触发器与定时任务attilax总结
    Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx
    Atitit 图像处理 深刻理解梯度原理计算.v1 qc8
    Atiti 数据库系统原理 与数据库方面的书籍 attilax总结 v3 .docx
    Atitit Mysql查询优化器 存取类型 范围存取类型 索引存取类型 AND or的分析
    Atitit View事件分发机制
    Atitit 基于sql编程语言的oo面向对象大规模应用解决方案attilax总结
    Atitti 存储引擎支持的国内点与特性attilax总结
    Atitit 深入理解软件的本质 attilax总结 软件三原则"三次原则"是DRY原则和YAGNI原则的折
  • 原文地址:https://www.cnblogs.com/HARU/p/7629165.html
Copyright © 2020-2023  润新知