不用evaluation path情况下使用逻辑数据库PCH

本文展示了如何在不使用evaluation path的情况下利用逻辑数据库PCH进行数据处理和展示。通过标准报表RHVAKRI0的测试程序,实现了ALV显示结果中包含checkbox的功能,详细代码解释了数据获取、字段映射以及ALV列表的调用过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


测试程序来自标准报表:RHVAKRI0

界面显示为:
运行效果为:

技术亮点:
(1)不使用evaluation path的情况下使用逻辑数据库PCH
(2)ALV显示结果中使用checkbox(ALV checkbox)
测试程序:

  *&---------------------------------------------------------------------*
*& Report  ZTEST12
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ztest12.
TABLES: objec.
INFOTYPES: 1001,1007.

*&--------------------------------------
*&  data define for get display data
*&--------------------------------------

DATA: BEGIN OF gty_itab_1007,
        box(1)  TYPE c,
        text    LIKE objec-stext,
        i1007   LIKE p1007,
      END OF  gty_itab_1007.
DATA: gs_itab_1007 LIKE gty_itab_1007,
      gt_itab_1007 LIKE TABLE OF gty_itab_1007,
      gs_p1007 TYPE p1007.
*&--------------------------------------
*&  data define for ALV
*&--------------------------------------
DATA: gt_itab_1007_fields  TYPE slis_t_fieldcat_alv,
      gt_itab_1007_layout  TYPE slis_layout_alv.

INITIALIZATION.
  pchotype 'S'.
  CLEAR: pchtimed, p1001,p1007.

GET objec.
  LOOP AT p1007 INTO gs_p1007.
    gs_itab_1007-text objec-stext.
    gs_itab_1007-i1007 gs_p1007.
    APPEND gs_itab_1007 TO gt_itab_1007.
  ENDLOOP.

END-OF-SELECTION.
*      fieldcat
  PERFORM fill_gt_itab_1007_fields TABLES gt_itab_1007_fields.
  CLEAR gt_itab_1007_layout.
  gt_itab_1007_layout-box_fieldname 'BOX'.
  gt_itab_1007_layout-box_tabname 'ITAB_1007'.

  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      i_callback_program sy-repid
*     I_STRUCTURE_NAME   =
      is_layout          gt_itab_1007_layout
      it_fieldcat        gt_itab_1007_fields[]
    TABLES
      t_outtab           gt_itab_1007
    EXCEPTIONS
      program_error      1
      OTHERS             2.

*&---------------------------------------------------------------------*
*&      Form  FILL_GT_ITAB_1007_FIELDS
*&  create alv field text
*----------------------------------------------------------------------*
FORM fill_gt_itab_1007_fields  TABLES   it_field_tab TYPE slis_t_fieldcat_alv.
* head line for field table
  DATA: field_head_struc  TYPE  slis_fieldcat_alv.

  REFRESH it_field_tab.

  CLEAR field_head_struc.
  field_head_struc-col_pos 1.
  field_head_struc-fieldname 'I1007-OTYPE'.
  field_head_struc-ref_fieldname 'OTYPE'.
  field_head_struc-ref_tabname 'P1001'.
  APPEND field_head_struc TO it_field_tab.

  CLEAR field_head_struc.
  field_head_struc-col_pos 2.
  field_head_struc-fieldname 'I1007-OBJID'.
  field_head_struc-ref_fieldname 'OBJID'.
  field_head_struc-ref_tabname 'P1007'.
  APPEND field_head_struc TO it_field_tab.

  CLEAR field_head_struc.
  field_head_struc-col_pos 3.
  field_head_struc-fieldname 'I1007-BEGDA'.
  field_head_struc-ref_fieldname 'BEGDA'.
  field_head_struc-ref_tabname 'P1007'.
  APPEND field_head_struc TO it_field_tab.

ENDFORM.                    " FILL_GT_ITAB_1007_FIELDS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值