sap 十一课 alv 函数

TYPES:
* ALV
  BEGIN OF TS_ALV,
    EBELN TYPE EKKO-EBELN,                       "采购凭证编号
    EBELP TYPE EKPO-EBELP,                       "采购凭证的项目编号
    MATNR TYPE EKPO-MATNR,                       "物料编号
    MAKTX TYPE MAKT-MAKTX,                       "物料描述
    BUKRS TYPE EKPO-BUKRS,                       "公司代码
    WERKS TYPE EKPO-WERKS,                       "工厂
    LGORT TYPE EKPO-LGORT,                       "库存地点
  END OF TS_ALV,
  T_ALV TYPE STANDARD TABLE OF TS_ALV,
* 采购订单信息
  BEGIN OF TS_EKKO,
    EBELN TYPE EKKO-EBELN,                       "采购凭证编号
    EBELP TYPE EKPO-EBELP,                       "采购凭证的项目编号
    MATNR TYPE EKPO-MATNR,                       "物料编号
    BUKRS TYPE EKPO-BUKRS,                       "公司代码
    WERKS TYPE EKPO-WERKS,                       "工厂
    LGORT TYPE EKPO-LGORT,                       "库存地点
  END OF TS_EKKO,
  T_EKKO TYPE STANDARD TABLE OF TS_EKKO,
* 物料描述
  BEGIN OF TS_MAKT,
    MATNR TYPE EKPO-MATNR,                       "物料编号
    SPRAS TYPE MAKT-SPRAS,                       "物料描述
    MAKTX TYPE MAKT-MAKTX,                       "物料描述
  END OF TS_MAKT,
  T_MAKT TYPE STANDARD TABLE OF TS_MAKT.

*&---------------------------------------------------------------------*
*& DATA定義
*&---------------------------------------------------------------------*
DATA:
*  ST_ALV TYPE T_ALV WITH HEADER LINE,
  W_EBELN TYPE EKKO-EBELN.
DATA:BEGIN OF ST_ALV ,
       EBELN LIKE EKKO-EBELN,                       "采购凭证编号
       EBELP LIKE EKPO-EBELP,                       "采购凭证的项目编号
       MATNR LIKE EKPO-MATNR,                       "物料编号
       MAKTX LIKE MAKT-MAKTX,                       "物料描述
       BUKRS LIKE EKPO-BUKRS,                       "公司代码
       WERKS LIKE EKPO-WERKS,                       "工厂
       LGORT LIKE EKPO-LGORT,                       "库存地点
     END OF ST_ALV.
*页头
DATA: WA_HEADER TYPE SLIS_LISTHEADER,
      IT_HEADER TYPE SLIS_T_LISTHEADER.

*&---------------------------------------------------------------------*
*&PARAMETERS/SELECT-OPTIONS
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK BLK0 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:SO_EBELN FOR W_EBELN.             "采购订单号
SELECTION-SCREEN END OF BLOCK BLK0.

*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.

* 主处理
  PERFORM F_MAIN.

*&---------------------------------------------------------------------*
*& Form F_MAIN
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM F_MAIN .

* 本地定义
  DATA:
    I_L_ALV  TYPE T_ALV,  " ALV数据
    I_L_MAKT TYPE T_MAKT, " 物料信息
    I_L_EKKO TYPE T_EKKO. " 采购订单信息

* 获取数据
  PERFORM F_GET_DATA
    CHANGING I_L_EKKO  " 采购订单信息
             I_L_MAKT. " 物料信息

* 编辑数据
  PERFORM F_EDIT_DATA
    USING I_L_EKKO                               " 采购订单信息
          I_L_MAKT                               " 物料信息
    CHANGING I_L_ALV.                            " alv

* 展示数据
  PERFORM F_DISPLAY_DATA
    USING I_L_ALV.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form F_GET_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM F_GET_DATA
  CHANGING C_I_EKKO TYPE T_EKKO
           C_I_MAKT TYPE T_MAKT.

* 获取采购订单信息
  SELECT A~EBELN,                                "采购凭证编号
         B~EBELP,                                "采购凭证的项目编号
         B~MATNR,                                "物料编号
         B~BUKRS,                                "公司代码
         B~WERKS,                                "工厂
         B~LGORT                                 "库存地点
    INTO TABLE @C_I_EKKO
    FROM EKKO AS A
    INNER JOIN EKPO AS B ON A~EBELN = B~EBELN
    WHERE A~EBELN IN @SO_EBELN.

* 获取物料描述
  DATA(I_L_MATNR) = C_I_EKKO.
  SORT I_L_MATNR BY MATNR.
  DELETE ADJACENT DUPLICATES FROM I_L_MATNR
  COMPARING MATNR.

  IF I_L_MATNR IS NOT INITIAL.

    SELECT MATNR,                               " 物料编号
           SPRAS,                               " 语言代码
           MAKTX                                " 物料描述
      INTO TABLE @C_I_MAKT
      FROM MAKT
      FOR ALL ENTRIES IN @I_L_MATNR
      WHERE MATNR = @I_L_MATNR-MATNR
        AND SPRAS = 1.

  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form F_EDIT_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> I_L_EKKO
*&      --> I_L_MAKT
*&      <-- I_L_ALV
*&---------------------------------------------------------------------*
FORM F_EDIT_DATA
  USING U_I_EKKO TYPE T_EKKO
        U_I_MAKT TYPE T_MAKT
  CHANGING C_I_ALV TYPE T_ALV.

  DATA:
    LW_ALV TYPE TS_ALV.

  LOOP AT U_I_EKKO ASSIGNING FIELD-SYMBOL(<FS_L_EKKO>).
*    MOVE-CORRESPONDING <FS_L_EKKO> TO LW_ALV.
    LW_ALV-EBELN = <FS_L_EKKO>-EBELN.
    LW_ALV-EBELP = <FS_L_EKKO>-EBELP.
    LW_ALV-MATNR = <FS_L_EKKO>-MATNR.

    READ TABLE U_I_MAKT INTO DATA(LW_MAKT)
      WITH KEY MATNR = <FS_L_EKKO>-MATNR.

    IF SY-SUBRC = 0.
      LW_ALV-MAKTX = LW_MAKT-MAKTX.
    ENDIF.

    LW_ALV-BUKRS = <FS_L_EKKO>-BUKRS.
    LW_ALV-WERKS = <FS_L_EKKO>-WERKS.
    LW_ALV-LGORT = <FS_L_EKKO>-LGORT.

    APPEND LW_ALV TO C_I_ALV.
    CLEAR LW_ALV.

  ENDLOOP.



ENDFORM.
*&---------------------------------------------------------------------*
*& Form F_DISPLAY_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> I_L_ALV
*&---------------------------------------------------------------------*
FORM F_DISPLAY_DATA
  USING U_I_ALV TYPE T_ALV.

* 本地定义
  DATA:
    LW_LAYOUT   TYPE  LVC_S_LAYO,                "LAYOUT
    LT_FIELDCAT TYPE  LVC_T_FCAT.                "FIELDCAT

* LAYOUT设定
  LW_LAYOUT-ZEBRA      = ABAP_TRUE.              "斑马线
  LW_LAYOUT-CWIDTH_OPT = ABAP_TRUE.              "优化列宽

* FIELDCAT设定(方法1:手动创建)
*  PERFORM F_SET_FIELDCAT1
*    CHANGING LT_FIELDCAT.
* FIELDCAT设定(方法2:自动创建)
  PERFORM F_SET_FIELDCAT2
    CHANGING LT_FIELDCAT.

* 总结:推荐使用方法2函数,
* FIELDCAT中的REF_TABLE ,REF_FIELD 字段关联数据字典,
* 以便ALV字段与数据字典关联, 启用数据字典提供的基本功能
*(F1帮助,F4帮助,数据校验等)

* 变式示例
  DATA:L_ST_VARIANT LIKE  DISVARIANT.
  L_ST_VARIANT-REPORT = SY-CPROG."程序名
  L_ST_VARIANT-VARIANT = '/TEST02'."变式id

* 隐藏功能键示例
  DATA:L_I_EXCLUDING TYPE  SLIS_T_EXTAB.

  L_I_EXCLUDING = VALUE #(
  ( FCODE = '&OUP' )"升序
  ( FCODE = '&ODN' )"降序
  ).

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      I_CALLBACK_PROGRAM          = SY-CPROG              "当前程序名
      IS_LAYOUT_LVC               = LW_LAYOUT             "输出样式
      IT_FIELDCAT_LVC             = LT_FIELDCAT          "字段定义描述表
*      IS_VARIANT                  = L_ST_VARIANT     "决定布局显示的变式
      I_SAVE                      = 'A'
      "决定用户是否可以保存变式:'X' 只能保存全局变式,
*     'U' 只能保存特定变式,'A' 都可以保存,SPACE 不可以保存变式
*      I_DEFAULT                   = ''          "是否可以定义默认的布局
      IT_EXCLUDING                = L_I_EXCLUDING
      "需要隐藏的标准的按钮的内表
*      I_CALLBACK_TOP_OF_PAGE      = 'ALV_TOP_OF_PAGE' "ALV输出表头设置
*     I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE1' "ALV输出表头设置
      I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE2' "ALV输出表头设置
*     I_GRID_SETTINGS             = WL_LVC_S_GLAY "打印表头设置
*     IT_SORT                     = SORTABLE[] "排序设置
    TABLES
      T_OUTTAB                    = U_I_ALV
    EXCEPTIONS
      PROGRAM_ERROR               = 1
      OTHERS                      = 2.
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  top_of_page
*&---------------------------------------------------------------------*
*       ALV_TOP_OF_PAGE
*----------------------------------------------------------------------*
FORM ALV_TOP_OF_PAGE.

  "定义登录用户的描述
  DATA: L_NAME TYPE STRING VALUE '张三',
        L_DATE TYPE STRING.

  "拼接制表日期
  CONCATENATE SY-DATUM+0(4) '.' SY-DATUM+4(2) '.' SY-DATUM+6(2)
  INTO L_DATE.
  CONCATENATE '制表人:' L_NAME INTO L_NAME .
  CONCATENATE '制表日期:' L_DATE INTO L_DATE .

  "位于标题第一行
  WA_HEADER-TYP = 'H'.
  WA_HEADER-INFO = 'ALV DEMO' .
  APPEND WA_HEADER TO IT_HEADER .

  CLEAR WA_HEADER .

  "相关内容信息,这里用于显示登录用户信息描述
  WA_HEADER-TYP = 'S'.
*  WA_HEADER-KEY = L_NAME .
  WA_HEADER-INFO = L_DATE .

  APPEND WA_HEADER TO IT_HEADER .
  CLEAR WA_HEADER .
  "相关内容信息,这里用于显示登录用户信息描述
  WA_HEADER-TYP = 'S'.
*  WA_HEADER-KEY = L_NAME .
*  WA_HEADER-INFO = L_DATE .

  APPEND WA_HEADER TO IT_HEADER .
  CLEAR WA_HEADER .

* 将输入信息输出到ALV
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY = IT_HEADER.
*      I_ALV_FORM         = 'X'. "是否用于 ALV 的FORM中,默认为:Space
  "参数IT_LIST_COMMENTARY,显示文字内容
  "参数I_LOGO ,显示图片id,使用OAER上传图片
  "参数I_END_OF_LIST_GRID,页脚信息
  "参数I_ALV_FORM,是否用于alv form中

ENDFORM. "top_of_page
*&---------------------------------------------------------------------*
*&      Form  html_top_of_page
*&---------------------------------------------------------------------*
FORM HTML_TOP_OF_PAGE1
  USING DOCUMENT TYPE REF TO CL_DD_DOCUMENT.

  DATA: TEXT TYPE SDYDO_TEXT_ELEMENT.
  DATA: L_NAME TYPE SDYDO_TEXT_ELEMENT VALUE '张三',
        L_DATE TYPE SDYDO_TEXT_ELEMENT.

  "拼接制表日期
  CONCATENATE SY-DATUM+0(4) '.' SY-DATUM+4(2) '.' SY-DATUM+6(2)
  INTO L_DATE.
  CONCATENATE '制表人:' L_NAME INTO L_NAME .
  CONCATENATE '制表日期:' L_DATE INTO L_DATE .

  TEXT = 'ALV DEMO'.
  CALL METHOD DOCUMENT->ADD_TEXT_AS_HEADING
    EXPORTING
      TEXT          = TEXT "内容
      HEADING_LEVEL = '3'. "级别1~6

  CALL METHOD DOCUMENT->UNDERLINE. "绘制底线

  CALL METHOD DOCUMENT->ADD_TEXT
    EXPORTING
      TEXT = L_NAME.

* 间隙宽度
  CALL METHOD DOCUMENT->ADD_GAP
    EXPORTING
      WIDTH = 2.

  CALL METHOD DOCUMENT->ADD_TEXT
    EXPORTING
      TEXT = L_DATE.

ENDFORM.                    "HTML_TOP_OF_PAGE
*&---------------------------------------------------------------------*
*&      Form  top_of_page
*&---------------------------------------------------------------------*
*       top_of_page
*----------------------------------------------------------------------*
FORM HTML_TOP_OF_PAGE2
  USING W_DOC TYPE REF TO CL_DD_DOCUMENT.
  DATA: LT_HTML_TABLE    TYPE SDYDO_HTML_LINE OCCURS 0.
  DATA: LS_HTMLTAB       LIKE LINE OF LT_HTML_TABLE.
  DATA: L_NAME TYPE SDYDO_TEXT_ELEMENT VALUE '张三',
        L_DATE TYPE SDYDO_TEXT_ELEMENT.

  "拼接制表日期
  CONCATENATE SY-DATUM+0(4) '.' SY-DATUM+4(2) '.' SY-DATUM+6(2)
  INTO L_DATE.
  CONCATENATE '制表人:' L_NAME INTO L_NAME .
  CONCATENATE '制表日期:' L_DATE INTO L_DATE .

  CLEAR W_DOC->HTML_TABLE.

  LS_HTMLTAB-LINE =
   '<HTML><BODY bottommargin="0" background=" ">' &
  '<SPAN Style="FONT-SIZE: 16pt; COLOR: black; FONT-FAMILY: Arial; ">'
  & '<br /><B>' && 'ALV DEMO'  && '</B> <BR></SPAN>'.
  APPEND LS_HTMLTAB TO W_DOC->HTML_TABLE.
  CLEAR LS_HTMLTAB.

  LS_HTMLTAB-LINE =
  '<SPAN Style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial; ">' &
  '<br />' && L_NAME  && '&nbsp&nbsp&nbsp' && L_DATE && ' </<BR></SPAN>'.
  APPEND LS_HTMLTAB TO W_DOC->HTML_TABLE.
  CLEAR LS_HTMLTAB.

  LS_HTMLTAB-LINE = '</BODY></HTML>'.
  APPEND LS_HTMLTAB TO W_DOC->HTML_TABLE.

ENDFORM.                    "top_of_page
*&---------------------------------------------------------------------*
*& Form F_SET_FIELDCAT1
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      <-- LT_FIELDCAT
*&---------------------------------------------------------------------*
FORM F_SET_FIELDCAT1
  CHANGING C_T_FIELDCAT TYPE  LVC_T_FCAT.

  DATA:
    LW_FIELDCAT TYPE  LVC_S_FCAT.

  LW_FIELDCAT-COL_POS = 1."列
  LW_FIELDCAT-FIELDNAME = 'EBELN'."字段名称
  LW_FIELDCAT-COLTEXT   = '采购凭证编号'."列描述
  LW_FIELDCAT-SCRTEXT_L = '采购凭证编号'."长字段标签
  LW_FIELDCAT-SCRTEXT_M = '采购凭证编号'."中字段标签
  LW_FIELDCAT-SCRTEXT_S = '采购凭证编号'."短字段标签
  APPEND LW_FIELDCAT TO C_T_FIELDCAT.
  CLEAR LW_FIELDCAT.
  LW_FIELDCAT-COL_POS = 2."列
  LW_FIELDCAT-FIELDNAME = 'EBELP'."字段名称
  LW_FIELDCAT-COLTEXT   = '项目编号'."列描述
  LW_FIELDCAT-SCRTEXT_L = '项目编号'."长字段标签
  LW_FIELDCAT-SCRTEXT_M = '项目编号'."中字段标签
  LW_FIELDCAT-SCRTEXT_S = '项目编号'."短字段标签
  APPEND LW_FIELDCAT TO C_T_FIELDCAT.
  CLEAR LW_FIELDCAT.
  LW_FIELDCAT-COL_POS = 3."列
  LW_FIELDCAT-FIELDNAME = 'MATNR'."字段名称
  LW_FIELDCAT-COLTEXT   = '物料编号'."列描述
  LW_FIELDCAT-SCRTEXT_L = '物料编号'."长字段标签
  LW_FIELDCAT-SCRTEXT_M = '物料编号'."中字段标签
  LW_FIELDCAT-SCRTEXT_S = '物料编号'."短字段标签
  APPEND LW_FIELDCAT TO C_T_FIELDCAT.
  CLEAR LW_FIELDCAT.
  LW_FIELDCAT-COL_POS = 4."列
  LW_FIELDCAT-FIELDNAME = 'MAKTX'."字段名称
  LW_FIELDCAT-COLTEXT   = '物料描述'."列描述
  LW_FIELDCAT-SCRTEXT_L = '物料描述'."长字段标签
  LW_FIELDCAT-SCRTEXT_M = '物料描述'."中字段标签
  LW_FIELDCAT-SCRTEXT_S = '物料描述'."短字段标签
  APPEND LW_FIELDCAT TO C_T_FIELDCAT.
  CLEAR LW_FIELDCAT.
  LW_FIELDCAT-COL_POS = 5."列
  LW_FIELDCAT-FIELDNAME = 'BUKRS'."字段名称
  LW_FIELDCAT-COLTEXT   = '公司代码'."列描述
  LW_FIELDCAT-SCRTEXT_L = '公司代码'."长字段标签
  LW_FIELDCAT-SCRTEXT_M = '公司代码'."中字段标签
  LW_FIELDCAT-SCRTEXT_S = '公司代码'."短字段标签
  APPEND LW_FIELDCAT TO C_T_FIELDCAT.
  CLEAR LW_FIELDCAT.
  LW_FIELDCAT-COL_POS = 6."列
  LW_FIELDCAT-FIELDNAME = 'WERKS'."字段名称
  LW_FIELDCAT-COLTEXT   = '工厂'."列描述
  LW_FIELDCAT-SCRTEXT_L = '工厂'."长字段标签
  LW_FIELDCAT-SCRTEXT_M = '工厂'."中字段标签
  LW_FIELDCAT-SCRTEXT_S = '工厂'."短字段标签
  APPEND LW_FIELDCAT TO C_T_FIELDCAT.
  CLEAR LW_FIELDCAT.
  LW_FIELDCAT-COL_POS = 7."列
  LW_FIELDCAT-FIELDNAME = 'LGORT'."字段名称
  LW_FIELDCAT-COLTEXT   = '库存地点'."列描述
  LW_FIELDCAT-SCRTEXT_L = '库存地点'."长字段标签
  LW_FIELDCAT-SCRTEXT_M = '库存地点'."中字段标签
  LW_FIELDCAT-SCRTEXT_S = '库存地点'."短字段标签
  APPEND LW_FIELDCAT TO C_T_FIELDCAT.
  CLEAR LW_FIELDCAT.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form F_SET_FIELDCAT2
*&---------------------------------------------------------------------*
*& 使用MERGE获取FIELDCAT
*& LVC_FIELDCATALOG_MERGE/REUSE_ALV_FIELDCATALOG_MERGE
*&---------------------------------------------------------------------*
*&      <-- LT_FIELDCAT
*&---------------------------------------------------------------------*
FORM F_SET_FIELDCAT2
  CHANGING C_T_FIELDCAT TYPE  LVC_T_FCAT.

* 获取ALV的FIELDCATA
  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
      I_STRUCTURE_NAME       = 'ZFIELDCAT_WMQ01'
*      "结构名称(结构、表、视图)
*     I_INTERNAL_TABNAME     = 'ST_ALV' "内表名称,不能用
    CHANGING
      CT_FIELDCAT            = C_T_FIELDCAT
    EXCEPTIONS
      INCONSISTENT_INTERFACE = 1
      PROGRAM_ERROR          = 2
      OTHERS                 = 3.
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.

* 可以直接参考内表结构获取FIELDCATA:定义必须要用LIKE,必须指定程序名
*  DATA CT_FIELDCAT TYPE  SLIS_T_FIELDCAT_ALV.
*  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
*    EXPORTING
*      I_PROGRAM_NAME         = SY-CPROG
*      I_INTERNAL_TABNAME     = 'ST_ALV'
*      I_INCLNAME             = SY-CPROG
*    CHANGING
*      CT_FIELDCAT            = CT_FIELDCAT
*    EXCEPTIONS
*      INCONSISTENT_INTERFACE = 1
*      PROGRAM_ERROR          = 2
*      OTHERS                 = 3.
*  IF SY-SUBRC <> 0.
** Implement suitable error handling here
*  ENDIF.

ENDFORM.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ALV 表格中,可以使用 SAp 函数 `REUSE_ALV_GRID_DISPLAY` 来显示一个可编辑的表格。如果你想要在表格中添加一个按钮来切换编辑模式,可以使用以下步骤: 1. 定义一个带有 `USER_COMMAND` 参数的事件处理程序,用于处理按钮的点击事件。 2. 在 `REUSE_ALV_GRID_DISPLAY` 函数中设置 `I_CALLBACK_USER_COMMAND` 参数为你定义的事件处理程序。 3. 在 `FIELD_CATALOG` 表中添加一个新的字段,用于显示按钮。 4. 在 `OUTPUT` 表中设置该字段的值为一个文本或者一个图标。 5. 在 `EVENTS` 表中添加一个 `BUTTON_CLICK` 事件,将其与按钮相关联。 6. 在事件处理程序中处理 `BUTTON_CLICK` 事件,将表格的编辑模式切换为可编辑或者只读模式。 下面是一个示例代码,用于在 ALV 表格中添加一个按钮来切换编辑模式: ``` REPORT ztest. DATA: gt_data TYPE TABLE OF mara, gs_data LIKE LINE OF gt_data, gt_fieldcat TYPE lvc_t_fcat, gs_fieldcat TYPE lvc_s_fcat. * Populate data table SELECT * FROM mara INTO TABLE gt_data. * Define event handler for button click event FORM handle_user_command USING r_ucomm TYPE sy-ucomm rs_selfield TYPE slis_selfield. IF rs_selfield-fieldname = 'EDIT_MODE'. IF rs_selfield-value = 'X'. CALL METHOD cl_gui_alv_grid=>set_edit_mode EXPORTING i_edit_mode = ' ' io_grid = rs_selfield-grid. ELSE. CALL METHOD cl_gui_alv_grid=>set_edit_mode EXPORTING i_edit_mode = 'X' io_grid = rs_selfield-grid. ENDIF. ENDIF. ENDFORM. * Define field catalog for button field gs_fieldcat-fieldname = 'EDIT_MODE'. gs_fieldcat-icon = '@01@'. APPEND gs_fieldcat TO gt_fieldcat. * Display ALV grid with button field CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_user_command = 'HANDLE_USER_COMMAND' TABLES t_outtab = gt_data t_fieldcat = gt_fieldcat. ``` 在这个示例中,我们添加了一个名为 `EDIT_MODE` 的按钮字段,并将其值设置为一个图标。在事件处理程序中,我们检查该按钮是否被点击,并根据其值来切换表格的编辑模式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值