*&---------------------------------------------------------------------*
*& 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

ABAP alv report的更多相关文章

  1. abap alv multiple header using write

    A standard SAP ALV list report will show only one line header, but there will be a requirement somed ...

  2. 【ABAP系列】SAP ABAP ALV里日期类型的F4帮助

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP ALV里日期类 ...

  3. 【ABAP系列】SAP ABAP ALV合计或者小计 添加自定义文本

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP ALV合计或者小计 ...

  4. 【ABAP系列】SAP ABAP ALV中设置CHECKBOX同时选中事件

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP ALV中设置CHE ...

  5. 【ABAP系列】SAP ABAP ALV设置背景图片

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP abap ALV设置背景图片 ...

  6. 【ABAP系列】SAP ABAP ALV中的TOP_OF_PAGE添加任意图标

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP ALV中的TOP_ ...

  7. ABAP ALV表头的实现

    ABAP实现ALV表头的DEMO: 效果: 源代码: *&------------------------------------------------------------------- ...

  8. ABAP ALV单个单元格状态编辑

    *&---------------------------------------------------------------------* *& Report  ZPPR0024 ...

  9. ABAP ALV 颜色设置(行,列,单元格)

    BCALV_EDIT_03 http://blog.sina.com.cn/s/blog_a87b19300102who3.html 关于ALV表格颜色,这种需求在项目中会经常用到. 列颜色 列的颜色 ...

随机推荐

  1. SELinux下更改mysql端口

    默认情况下 mysql更改端口后是不能通过selinux的 提示启动错误,那么首先就要看mysql的错误日志 可是我不知道mysql错误日志的位置 首先,更改selinux的模式为passive 然后 ...

  2. Java中获取当前时间并格式化

    主要有两种方式,其中使用Date比较好控制,代码如下: //使用Calendar Calendar now = Calendar.getInstance(); System.out.println(& ...

  3. PHP页面跳转几种实现方法

    转载自冠威博客 [ http://www.guanwei.org/ ]本文链接地址:http://www.guanwei.org/post/PHPnotes/04/php-redirect-metho ...

  4. 2016.11.4 Injection of autowired dependencies failed

    运行项目时,提示错误: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ' ...

  5. 出自 HTML4 规范的可用颜色字符串值列表(常用颜色名称及对应的十六进制值)

    据称由于 HTML5 没有修改专属的颜色,HTML4 的颜色都可以在 HTML5 中正确显示. 出自 HTML4 规范的可用颜色字符串值列表如下,此表来源是 http://www.lovean.com ...

  6. 学习日记之享元模式和Effective C++

    享元模式(Flyweight):运用共享技术有效地支持大量细粒度的对象. (1),享元模式能够避免大量很相似的开销.在程序设计中,有时须要生成大量细粒度的类实例来表示数据.假设能发现这些实例除了几个參 ...

  7. [C++设计模式] state 状态模式

    <head first 设计模式>中的样例非常不错,想制造一个自己主动交易的糖果机,糖果机有四个状态:投入钱不足,投入钱足够,出售糖果,糖果售罄. 糖果机的当前状态处于当中不同的状态时,它 ...

  8. Java 实现对Sql语句解析

    原文地址:http://www.cnblogs.com/zcftech/archive/2013/06/10/3131286.html 最近要实现一个简易的数据库系统,除了要考虑如何高效的存储和访问数 ...

  9. JOB Hunting 总结-----2013-11-5

    从9月份开始的找工作大战,告一段落:其实早在10月中旬就已搞定,现在回想起这过去的几个月,很充实,很疲惫,很挫败又很有成就感!      开始找工作,对未来有过很多憧憬,也很迷茫,不知道自己的未来会在 ...

  10. 使用Docker开发NodeJs APP

    英文版原文地址 这是两篇连载文章的第一篇,讲解了如何使用 Docker 替代 Vagrant 开发基于 Express 框架的NodeJs App的部分细节.不过,这次要增加点难度:我们要使用 con ...