*&---------------------------------------------------------------------*
*& Report  YTST_FF_011
*&
*&---------------------------------------------------------------------*
*& DEMO_ALVGRID_EDIT.
*&
*&---------------------------------------------------------------------*

REPORT YTST_FF_011.

TABLES:EKKO.

TYPE-POOLS: SLIS.                                 "ALV Declarations
*Data Declaration
*----------------
TYPES:BEGIN OF T_EKKO,
        EBELN       TYPE EKPO-EBELN,
        EBELP       TYPE EKPO-EBELP,
        STATU       TYPE EKPO-STATU,
        AEDAT       TYPE EKPO-AEDAT,
        MATNR       TYPE EKPO-MATNR,
        MENGE       TYPE EKPO-MENGE,
        MEINS       TYPE EKPO-MEINS,
        NETPR       TYPE EKPO-NETPR,
        PEINH       TYPE EKPO-PEINH,
        FIELD_STYLE TYPE LVC_T_STYL, "FOR DISABLE
      END OF T_EKKO.

DATA: IT_EKKO TYPE STANDARD TABLE OF T_EKKO INITIAL SIZE 0,
      WA_EKKO TYPE T_EKKO.

*ALV data declarations
DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
DATA: IT_FIELDCAT  TYPE LVC_T_FCAT,     "slis_t_fieldcat_alv WITH HEADER LINE,
      WA_FIELDCAT  TYPE LVC_S_FCAT,
      GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV,
      GD_LAYOUT    TYPE LVC_S_LAYO,     "slis_layout_alv,
      GD_REPID     LIKE SY-REPID.

************************************************************************
*Start-of-selection.
START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.
  PERFORM SET_SPECIFIC_FIELD_ATTRIBUTES.
  PERFORM BUILD_FIELDCATALOG.
  PERFORM BUILD_LAYOUT.
  PERFORM DISPLAY_ALV_REPORT.

*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*       Build Fieldcatalog for ALV Report
*----------------------------------------------------------------------*
FORM BUILD_FIELDCATALOG.

WA_FIELDCAT-FIELDNAME   = 'EBELN'.
  WA_FIELDCAT-SCRTEXT_M   = 'Purchase Order'.
  WA_FIELDCAT-COL_POS     = 0.
  WA_FIELDCAT-OUTPUTLEN   = 10.
  WA_FIELDCAT-EMPHASIZE   = 'X'.
  WA_FIELDCAT-KEY         = 'X'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.
  CLEAR  WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME   = 'EBELP'.
  WA_FIELDCAT-SCRTEXT_M   = 'PO Item'.
  WA_FIELDCAT-COL_POS     = 1.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.
  CLEAR  WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME   = 'STATU'.
  WA_FIELDCAT-SCRTEXT_M   = 'Status'.
  WA_FIELDCAT-COL_POS     = 2.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.
  CLEAR  WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME   = 'AEDAT'.
  WA_FIELDCAT-SCRTEXT_M   = 'Item change date'.
  WA_FIELDCAT-COL_POS     = 3.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.
  CLEAR  WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME   = 'MATNR'.
  WA_FIELDCAT-SCRTEXT_M   = 'Material Number'.
  WA_FIELDCAT-COL_POS     = 4.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.
  CLEAR  WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME   = 'MENGE'.
  WA_FIELDCAT-SCRTEXT_M   = 'PO quantity'.
  WA_FIELDCAT-COL_POS     = 5.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.
  CLEAR  WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME   = 'MEINS'.
  WA_FIELDCAT-SCRTEXT_M   = 'Order Unit'.
  WA_FIELDCAT-COL_POS     = 6.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.
  CLEAR  WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME   = 'NETPR'.
  WA_FIELDCAT-SCRTEXT_M   = 'Net Price'.
  WA_FIELDCAT-EDIT        = 'X'. "sets whole column to be editable
  WA_FIELDCAT-COL_POS     = 7.
  WA_FIELDCAT-OUTPUTLEN   = 15.
  WA_FIELDCAT-DATATYPE     = 'CURR'.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.
  CLEAR  WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME   = 'PEINH'.
  WA_FIELDCAT-SCRTEXT_M   = 'Price Unit'.
  WA_FIELDCAT-COL_POS     = 8.
  APPEND WA_FIELDCAT TO IT_FIELDCAT.
  CLEAR  WA_FIELDCAT.
ENDFORM.                    " BUILD_FIELDCATALOG

*&---------------------------------------------------------------------*
*&      Form  BUILD_LAYOUT
*&---------------------------------------------------------------------*
*       Build layout for ALV grid report
*----------------------------------------------------------------------*
FORM BUILD_LAYOUT.
* Set layout field for field attributes(i.e. input/output)
  GD_LAYOUT-STYLEFNAME = 'FIELD_STYLE'.
  GD_LAYOUT-ZEBRA             = 'X'.
ENDFORM.                    " BUILD_LAYOUT

*&---------------------------------------------------------------------*
*&      Form  DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
*       Display report using ALV grid
*----------------------------------------------------------------------*
FORM DISPLAY_ALV_REPORT.
  GD_REPID = SY-REPID.

*  call function 'REUSE_ALV_GRID_DISPLAY'
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      I_CALLBACK_PROGRAM       = GD_REPID
*     i_callback_user_command  = 'USER_COMMAND'
      IS_LAYOUT_LVC            = GD_LAYOUT
      IT_FIELDCAT_LVC          = IT_FIELDCAT
      I_CALLBACK_USER_COMMAND  = 'FRM_UCOMM'         "实现双击事件
      I_CALLBACK_PF_STATUS_SET = 'SET_STATUS'
      I_SAVE                   = 'X'
    TABLES
      T_OUTTAB                 = IT_EKKO
    EXCEPTIONS
      PROGRAM_ERROR            = 1
      OTHERS                   = 2.
  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.                    " DISPLAY_ALV_REPORT

*&---------------------------------------------------------------------*
*&      Form  DATA_RETRIEVAL
*&---------------------------------------------------------------------*
*       Retrieve data form EKPO table and populate itab it_ekko
*----------------------------------------------------------------------*
FORM DATA_RETRIEVAL.
  SELECT EBELN EBELP STATU AEDAT MATNR MENGE MEINS NETPR PEINH
   UP TO 10 ROWS
    FROM EKPO
    INTO  CORRESPONDING FIELDS OF TABLE IT_EKKO.

ENDFORM.                    " DATA_RETRIEVAL

*&---------------------------------------------------------------------*
*&      Form  set_specific_field_attributes
*&---------------------------------------------------------------------*
*       populate FIELD_STYLE table with specific field attributes
*----------------------------------------------------------------------*
FORM SET_SPECIFIC_FIELD_ATTRIBUTES .
  DATA LS_STYLEROW TYPE LVC_S_STYL .
  DATA LT_STYLETAB TYPE LVC_T_STYL .

* Populate style variable (FIELD_STYLE) with style properties
*
* The NETPR field/column has been set to editable in the fieldcatalog...
* The following code sets it to be disabled(display only) if 'NETPR'
* is gt than 10.
  LOOP AT IT_EKKO INTO WA_EKKO.
    IF WA_EKKO-NETPR GT 10.
      LS_STYLEROW-FIELDNAME = 'NETPR' .
      LS_STYLEROW-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
      "set field to disabled
      APPEND LS_STYLEROW  TO WA_EKKO-FIELD_STYLE.
      MODIFY IT_EKKO FROM WA_EKKO.
    ENDIF.
  ENDLOOP.

ENDFORM.                    " set_specific_field_attributes

FORM FRM_UCOMM USING F_UCOMM    LIKE SY-UCOMM
                     F_SELFIELD TYPE SLIS_SELFIELD.
  DATA:L_FLAG(1) .

DATA: LR_GRID      TYPE REF TO CL_GUI_ALV_GRID,
        LIT_FIELDCAT TYPE LVC_T_FCAT,
        LIW_FIELDCAT TYPE LVC_S_FCAT.
  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      E_GRID = LR_GRID.
  CALL METHOD LR_GRID->CHECK_CHANGED_DATA.
  F_SELFIELD-REFRESH = 'X'.
*  READ TABLE it_edidc  INDEX f_selfield-tabindex.
  IF F_UCOMM = '&IC1'.
*    IF f_selfield-fieldname = 'DOCNUM'.
*      SET PARAMETER ID 'DCN' FIELD f_selfield-value .
*      CALL TRANSACTION 'WE02' AND SKIP FIRST SCREEN.
*    ENDIF.
  ENDIF.

ENDFORM.                    "FRM_UCOMM

FORM SET_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB .
  SET PF-STATUS 'ZSTANDARD_FULLSCREEN' .             "EXCLUDING RT_EXTAB.
ENDFORM.                               " SET_STATUS2

最新文章

  1. python django基础(二)
  2. 在Ubuntu环境把PPT和Word转换为swf文件
  3. 学习 Local Sensitive Hash
  4. centos7 安装lamp
  5. PHP报错: Can&#39;t use method return value in write context
  6. JS获取页面元素并修改
  7. 在eclipse下面搭建Clojure开发运行环境
  8. UML简易看懂
  9. Oracle GoldenGate配置异构数据库数据传输(oracle到sqlserer)的dml操作(带pump进程)
  10. Java多线程实现生产者消费者延伸问题
  11. 使用 BeanUtils 报错解决记录
  12. 手机app抓包
  13. debian系linux墙内安装安全工具集
  14. 使用maven插件构建docker镜像
  15. Netty实现简单私有协议
  16. c++ stod很慢
  17. C# Monitor实现
  18. spark streaming 整合 kafka(一)
  19. 处理csv和json数据
  20. openstack安装指南和在centos7上的安装指南

热门文章

  1. Linux命令大总结
  2. Understanding Objective-C Blocks
  3. How To Commit Just One Data Block Changes In Oracle Forms
  4. 查询执行慢的SQL
  5. 学习和家庭教育 z
  6. linux使用tar命令打包压缩时排除某个文件夹或文件
  7. apache的配置优化
  8. vuex mapGetters
  9. VS2015 定位内存泄漏工具vld
  10. Spring Boot从入门到实战:整合Web项目常用功能