在ALV中添加搜索帮助并返回多列值

本文介绍了如何在SAP ABAP编程中为ALV报告添加搜索帮助,以支持用户在多列中进行查找过滤操作,提升数据查询效率。
摘要由CSDN通过智能技术生成
**=====================================================================*
*& Report ZPM_RP_09
**=====================================================================*
REPORT zpm_rp_09.
*======================================================================*
*                     Modify Log History.
*----------------------------------------------------------------------*
*
*No. Modified by    Date      Transport  Description
*--- -----------    ----      ---------  -----------
*M1

*======================================================================*
*                             Tables
*======================================================================*
TABLES:zpm_rp_09.
*======================================================================*
*                             Constants
*======================================================================*

*======================================================================*
*                             Types
*======================================================================*
TYPE-POOLS : abap,slis,icon,shlp.
*======================================================================*
*                     Internal Tables/work areas
*======================================================================*
DATA:BEGIN OF gt_out OCCURS 0,
  zzjhbh LIKE zpm_rp_09-zzjhbh,     "计划编号
  zzhxmh LIKE zpm_rp_09-zzhxmh,     "行项目号
  werks LIKE zpm_rp_09-werks,       "工厂
  name1 LIKE zpm_rp_09-name1,       "工厂名称
  pspnr TYPE zpm_rp_09-pspnr,       "大修预算编号
  post1 LIKE zpm_rp_09-post1,       "大修预算名称
  sel(1) TYPE c,
  END OF gt_out.
DATA: fieldcat TYPE lvc_t_fcat WITH HEADER LINE.
DATA:gt_excel LIKE TABLE OF alsmex_tabline,
     gw_excel LIKE alsmex_tabline.
DATA:BEGIN OF gt_upload OCCURS 0,
  zzjhbh LIKE zpm_rp_09-zzjhbh,     "计划编号
  zzhxmh LIKE zpm_rp_09-zzhxmh,     "行项目号
  werks LIKE zpm_rp_09-werks,       "工厂
  name1 LIKE zpm_rp_09-name1,       "工厂名称
  pspnr LIKE zpm_rp_09-pspnr,       "大修预算编号
  post1 LIKE zpm_rp_09-post1,       "大修预算名称
  END OF gt_upload.
*======================================================================*
*                      Data declarations
*======================================================================*
DATA: wa_layout   TYPE lvc_s_layo,
      gt_events   TYPE slis_t_event WITH HEADER LINE,
      gs_event   LIKE LINE OF gt_events.
DATA: g_grid TYPE REF TO cl_gui_alv_grid.
DATA:gv_file TYPE rlgrap-filename.
DATA:  ref_grid TYPE REF TO cl_gui_alv_grid.
DATA:lw_layout TYPE slis_layout_alv.
*----------------------------------------------------------------------*
*       CLASS lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.
  PUBLIC SECTION.
    METHODS handle_modify
    FOR EVENT data_changed_finished OF cl_gui_alv_grid
    IMPORTING e_modified et_good_cells.

        METHODS:
      handle_f4
        FOR EVENT onf4 OF cl_gui_alv_grid
        IMPORTING e_fieldname
                  es_row_no
                  er_event_data
                  et_bad_cells.
ENDCLASS.                    "LCL_EVENT_RECEIVER DEFINITION
*----------------------------------------------------------------------*
*       CLASS LCL_EVENT_RECEIVER IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION.
  METHOD handle_modify.
    DATA stbl TYPE lvc_s_stbl.
    DATA:wa_out LIKE gt_out.
    LOOP AT gt_out INTO wa_out.
      CALL FUNCTION 'CONVERSION_EXIT_ABPSN_INPUT'
        EXPORTING
          input         = wa_out-pspnr
       IMPORTING
         output        = wa_out-pspnr.
      SELECT SINGLE post1
        INTO wa_out-post1
        FROM prps
        WHERE posid = wa_out-pspnr.
      CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT'
        EXPORTING
          input         = wa_out-pspnr
       IMPORTING
         output        = wa_out-pspnr.
        MODIFY gt_out FROM wa_out.
    ENDLOOP.
*   稳定刷新
    stbl-row = 'X'." 基于行的稳定刷新
    stbl-col = 'X'." 基于列稳定刷新
    CALL METHOD ref_grid->refresh_table_display
      EXPORTING
        is_stable = stbl.
  ENDMETHOD.                    "HANDLE_MODIFY
*---------------------------------------------------------------------------------------------*
      METHOD  handle_f4.
*     窗口时间参数的自定义f4检索帮助
      PERFORM f4_help_zsjcs USING e_fieldname
                                  es_row_no.
*     设置后,alv稳定刷新
      PERFORM refresh_table_alv.
  ENDMETHOD.                    "HANDLE_F4

ENDCLASS.                    "LCL_EVENT_RECEIVER IMPLEMENTATION
DATA gt_event_receiver TYPE REF TO lcl_event_receiver .
*---------------------------------------------------------------*
*DEFINATION
*---------------------------------------------------------------*
DEFINE fill_field.
  CLEAR FIELDCAT.
  FIELDCAT-FIELDNAME     = &1.
  FIELDCAT-SCRTEXT_L     = &2.
  FIELDCAT-CFIELDNAME    = &3.
  FIELDCAT-OUTPUTLEN     = &4.
  FIELDCAT-EDIT          = &5.
  APPEND FIELDCAT.
END-OF-DEFINITION.
*======================================================================*
*                       Range declarations
*===
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值