`
zjut_xiongfeng
  • 浏览: 277965 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

REUSE_ALV_GRID_DISPLAY 编辑数据

 
阅读更多

请注意程序中的五处红色标记的代码,其他代码请用户自己按自己的需要进行修改

*&---------------------------------------------------------*
*& REPORT CREATE TRANSFER *
*&---------------------------------------------------------*
*& Create date : 2007/06/21 *
*& Program type : Report *
*&---------------------------------------------------------*
*& Modifications : *
*& Date | Programmer |Change request | Description *
*& *
*&-------------------------------------------------------- *
REPORT zsdpr_yfdj MESSAGE-ID zmc01 NO STANDARD PAGE HEADING LINE-SIZE 500.
************************************************************
* TABLES
************************************************************
TABLES : zadtb_yf.

TYPE-POOLS: slis.
************************************************************
*INTERNAL TABLE DEFINITION
************************************************************
DATA: BEGIN OF gs_it,
lfdat(10),
vbeln(50),
zstation(20),
END OF gs_it.
DATA : gt_it LIKE gs_it OCCURS 0 WITH HEADER LINE.
DATA : gt_itab LIKE zadtb_yf OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF gs_yf OCCURS 0 .
*1内表增加一个选中字段
DATA: gv_check TYPE c.
INCLUDE TYPE zadtb_yf.
DATA: END OF gs_yf.

DATA : gt_yf LIKE gs_yf OCCURS 0 WITH HEADER LINE.
************************************************************
* Variable DEFINITION
***********************************************************
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gs_layout TYPE slis_layout_alv,
usercommand TYPE slis_fieldname VALUE 'USERCOMMAND',
gt_sort TYPE slis_t_sortinfo_alv.
DATA: progname LIKE sy-repid,
title(70).
DATA : gv_cancel(1) TYPE c,
gv_flag TYPE i.
************************************************************
* SELECTION-SCREEN
************************************************************
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-bl1.
SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS:
so_lfdat FOR zadtb_yf-lfdat,"提货日期
so_vbeln FOR zadtb_yf-vbeln,"销售凭证
so_erdat FOR zadtb_yf-erdat."录入日期
SELECTION-SCREEN END OF BLOCK bl1.
SELECTION-SCREEN BEGIN OF BLOCK bl3 WITH FRAME TITLE text-bl3.
PARAMETERS: pa_z2 RADIOBUTTON GROUP pa2 ."删除
SELECTION-SCREEN SKIP 1 .
SELECTION-SCREEN END OF BLOCK bl3.
***********************************************************
* START OF SELECTION
***********************************************************
START-OF-SELECTION.
PERFORM get_date.
END-OF-SELECTION.
PERFORM output_date.
*&---------------------------------------------------------------------*
*& Form GET_DATE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_date .
SELECT *
INTO CORRESPONDING FIELDS OF TABLE gt_yf
FROM zadtb_yf
WHERE lfdat IN so_lfdat "提货日期
AND vbeln IN so_vbeln "销售凭证
AND erdat IN so_erdat. "录入日期
ENDFORM. " GET_DATE
*&---------------------------------------------------------------------*
*& Form OUTPUT_DATE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM output_date .
REFRESH gt_fieldcat.
progname = sy-repid.
title = '运费查询及信息删除'.

gs_layout-zebra = 'X'. "设置每行的背景颜色交错 显示。
gs_layout-colwidth_optimize = 'X'. "ALV输出时候自动优化宽 度
gs_layout-detail_popup = 'X'.

*2此处代码设置屏幕的chekbox选中字段
gt_fieldcat-fieldname = 'GV_CHECK'.
gt_fieldcat-seltext_m = '选择'.
gt_fieldcat-outputlen = 1.
gt_fieldcat-checkbox = 'X'.
gt_fieldcat-input = 'X'.
gt_fieldcat-edit = 'X'.
APPEND gt_fieldcat.
CLEAR gt_fieldcat.

gt_fieldcat-fieldname = 'LFDAT'.
gt_fieldcat-seltext_m = '提货日期'.
gt_fieldcat-outputlen = 10.
APPEND gt_fieldcat.
CLEAR gt_fieldcat.

gt_fieldcat-fieldname = 'VBELN'.
gt_fieldcat-seltext_m = '销售凭证'.
gt_fieldcat-outputlen = 50.
APPEND gt_fieldcat.
CLEAR gt_fieldcat.

gt_fieldcat-fieldname = 'ZSTATION'.
gt_fieldcat-seltext_m = '到站'.
gt_fieldcat-outputlen = 20.
APPEND gt_fieldcat.
CLEAR gt_fieldcat.

*3设置处理代码
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = progname
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
i_grid_title = title
i_callback_pf_status_set = 'PF_STATUS_SET'
i_callback_user_command = usercommand
* i_save = 'A'
TABLES
t_outtab = gt_yf
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. " OUTPUT_DATE
*&---------------------------------------------------------------------*
*& FORM user_command
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM usercommand USING ucomm TYPE sy-ucomm
selfield TYPE slis_selfield.
DATA: lr_grid TYPE REF TO cl_gui_alv_grid.

*4此处代码将用户输入读入内表(这一步不可少)
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = lr_grid.
CALL METHOD lr_grid->check_changed_data.

*5此处代码阻止'REUSE_ALV_GRID_DISPLAY创建新的屏幕,造成屏幕多层
selfield-refresh = 'X'.
CASE sy-ucomm.
WHEN 'DELE'.
CLEAR sy-ucomm.
LOOP AT gt_yf.
IF gt_yf-gv_check = 'X'.
*请填写删除操作
DELETE gt_yf.
ENDIF.
ENDLOOP.
ENDCASE.
ENDFORM. "USER_COMMAND
*&---------------------------------------------------------------------*
*& FORM PF_STATUS_SET
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM pf_status_set USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'YFDJ' .
ENDFORM. "frm_PF_STATUS_SET

分享到:
评论

相关推荐

    REUSE_ALV_GRID_DISPLAY超详细讲解

    REUSE_ALV_GRID_DISPLAY超详细讲解 REUSE_ALV_GRID_DISPLAY是一个功能强大的ABAP函数模块,主要用于在ABAP程序中显示ALV网格控件。该函数模块提供了大量的参数和事件,使得开发者可以根据需要自定义ALV网格控件的...

    abap-ALV.rar_ABAP系统ALV_abap_abap开发alv

    描述中提到“ABAP ALV总结,ALV格式,REUSE_ALV_GRID_DISPLAY_LVC函数使用”,这表明我们将重点关注ALV的基本概念、数据格式以及如何通过REUSE_ALV_GRID_DISPLAY_LVC函数来实现ALV的显示。 ALV格式通常涉及如何组织...

    ABAP_ALV_知识整理

    - **调用REUSE_ALV_GRID_DISPLAY**: 使用此函数模块来创建标准ALV网格显示。 - **设置列属性**: 设置列的标题、宽度、对齐方式等。 - **设置数据源**: 指定数据源表。 - **设置排序**: 可以设置默认排序规则。 **...

    ABAP开发ALV中自定义按钮实现

    首先,我们需要定义一个报表程序,例如`ZMMR3009`,并在其中调用`REUSE_ALV_GRID_DISPLAY`函数来显示ALV。该函数接受一系列参数,如`I_CALLBACK_PROGRAM`用于指定当前程序,`I_LAYOUT`用于传递布局信息,`IT_...

    SAP ALV标准范例

    * BALVSD11:使用了REUSE_ALV_FIELDCATALOG_MERGE和REUSE_ALV_LIST_DISPLAY等FM。 * BALVHD01:使用了REUSE_ALV_VARIANT_DEFAULT_GET、REUSE_ALV_FIELDCATALOG_MERGE、REUSE_ALV_EVENTS_GET等FM,用于显示分级层次式...

    abap_alv工具栏修改

    - **步骤**: 在调用`REUSE_ALV_GRID_DISPLAY`函数模块时,需要传递参数`I_CALLBACK_PF_STATUS_SET`,并将其设置为你在上一步创建的GUI状态的名称。 - **代码示例**: ```abap * Form set_pf_status FORM set_pf_...

    ALV常用参数的详细描述1

    CALL FUNCTION \'REUSE_ALV_GRID_DISPLAY\' EXPORTING i_interface_check = \'\' 接口一致性检查 i_callback_program = sy-repid 当前程序名 is_layout = is_layout 输出样式 it_fieldcat = fieldcat[] 字段...

    ABAP中的ALV操作

    - `CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'`: 调用标准函数来显示ALV网格,并传递容器名称和数据表。 2. **ALV的列布局设置**: - `DATA: WA_LAYOUT TYPE LVC_S_LAYO`: 创建一个`LVC_S_LAYO`类型的变量来存储列...

    SAP ABAP ALV分页显示

    3. **ALV调用**:通过调用函数`REUSE_ALV_GRID_DISPLAY`来显示`IT_ZZP2`中的数据。此函数接收多个参数,包括字段目录(`IT_FIELDCAT`)、回调程序ID(`GD_REPID`)以及输出表(`T_OUTTAB`)等。 4. **分页控制**:使用`SET...

    SAP ALV报表开发指南.pdf

    在ALV报表开发中,需要了解相关的函数,例如REUSE_ALV_GRID_DISPLAY函数、REUSE_ALV_COMMENTARY_WRITE函数、REUSE_ALV_EVENTS_GET函数、REUSE_ALV_FIELDCATALOG_MERGE函数等,这些函数可以帮助开发者更方便地实现...

    SAP OO ALV技术介绍.pptx

    OO ALV技术相比于标准函数REUSE_ALV_GRID_DISPLAY和REUSE_ALV_GRID_DISPLAY_LVC具有更多的灵活性和可扩展性,可以满足更多的报表需求。 OO ALV技术的实现主要涉及到以下几个方面: 1. 容器类的实例化:通过创建...

    SAP ALV功能总结

    **ALV展示(`ALV_SHOW`)**:这部分代码负责调用`REUSE_ALV_GRID_DISPLAY`函数模块,从而在界面上显示数据。在此之前,需要设置好所有相关的ALV参数,如字段类别、排序规则、事件处理等。 #### 六、总结 通过上述...

    SAP ALV报表开发指南.docx

    例如,REUSE_ALV_GRID_DISPLAY函数可以用于显示GRID风格的报表,REUSE_ALV_COMMENTARY_WRITE函数可以用于写入注释,REUSE_ALV_EVENTS_GET函数可以用于获取事件,REUSE_ALV_FIELDCATALOG_MERGE函数可以用于合并字段...

    最好的ALV文挡(里面包括所有ALV涵数的介绍和运用)有列子说明的!!

    8. **REUSE_ALV_GRID_DISPLAY**:用于显示网格视图,不同于列表视图,网格视图通常提供更紧凑的数据展示。 9. **REUSE_ALV_POPUP_TO_SELECT**:用于打开弹出窗口供用户选择。 要使用这些函数模块,需遵循一定的步骤...

    SAP_ABAP_ALV技术

    4. **初始化ALV**:调用REUSE_ALV_GRID_DISPLAY或相关函数模块,传入数据结构和其他参数,初始化ALV控件。 5. **设置交互性**:注册事件处理程序,如用户点击列头进行排序,或单击行进行详细信息查看。 6. **显示ALV...

    ALV EDIT_MASK字段的使用.rar_ABAP EDIT_MASK_ALV EDIT_MASK字段的使用_ALVEDIT

    这通常通过在`CALL REPORT`或`CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'`等语句中使用`SET_EDIT_MASK`方法来实现。例如: ``` DATA: ls_edit_mask TYPE lvc_s_fdef, lv_fieldname LIKE LINE OF it_fieldname. ls...

    [ABAP]Function实现ALV Table 二:ALV的弹出窗口形式

    在ALV上下文中,我们主要会使用到两个关键的Function模块:`REUSE_ALV_GRID_DISPLAY` 和 `REUSE_ALV_LIST_DISPLAY`。这两个函数分别用于在屏幕内和弹出窗口中显示ALV表格。 首先,我们需要准备输入数据结构。ALV将...

    绝版的从实例到精通abap 学习--ALV控件的使用

    2. `set_table_for_first_display`方法:用于设置显示的数据和列属性,类似于`reuse_alv_list_display`的功能。 3. `cl_gui_alv_grid`的事件处理:通过定义类方法,如`handle_event`,可以响应用户在ALV上的各种操作...

    SAP ABAP ALV 详解

    REUSE_ALV_GRID_DISPLAY 函数用于输出 GRID 型列表,REUSE_ALV_GRID_DISPLAY_LVC 函数用于输出 GRID 型列表。 此外,ALV 还提供了一些预定义的功能,例如筛选、汇总等,用户也可以根据需要增加新的功能。例如,使用...

Global site tag (gtag.js) - Google Analytics