弹框选择 消息 ALV 模板

1 .Introduction

可以直接展示内表(全局内表/局部内表支持)。方便我们把数据过程展示给用户看,不用每次都用debug看运行时内表情况,是按照可见即所得思想设计。
在这里插入图片描述

2 Example

&---------------------------------------------------------------------*
*&      Form  FRM_DETAIL_SHOW
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->  text
*----------------------------------------------------------------------*
FORM FRM_DETAIL_SHOW  TABLES T_SHOW.


  DATA: ES_EXIT_CAUSED_BY_USER  TYPE  SLIS_EXIT_BY_USER.
  DATA: LS_FIELDCAT TYPE LVC_S_FCAT,
             LT_FIELDCAT TYPE LVC_T_FCAT.
  DATA: LS_LAYOUT TYPE LVC_S_LAYO.

  "动态字段名称赋值
  DATA: LO_TABDESCR TYPE REF TO CL_ABAP_STRUCTDESCR.
  DATA: LS_FIELD_IN TYPE DFIES,
        LT_DFIES    TYPE DDFIELDS.

  LO_TABDESCR ?= CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_DATA( T_SHOW ).
  CALL METHOD CL_SALV_DATA_DESCR=>READ_STRUCTDESCR
    EXPORTING
      R_STRUCTDESCR = LO_TABDESCR
    RECEIVING
      T_DFIES       = LT_DFIES.

  "===自动赋值fieldcat===
  LOOP AT LT_DFIES INTO LS_FIELD_IN.
    CLEAR: LS_FIELDCAT.
    MOVE-CORRESPONDING LS_FIELD_IN TO LS_FIELDCAT.
    LS_FIELDCAT-REF_FIELD = LS_FIELD_IN-FIELDNAME. "参照类型字段
    LS_FIELDCAT-REF_TABLE = LS_FIELD_IN-TABNAME.   "参照类型的表,搜索帮助,域控制
    IF LS_FIELDCAT-COLTEXT IS INITIAL.         "当COLTEXT不存在显示FILEDTEXT,如字段没域,只有手工描述的情况
      LS_FIELDCAT-COLTEXT = LS_FIELD_IN-FIELDTEXT.
    ENDIF.
    CASE LS_FIELD_IN-FIELDNAME.
      WHEN 'MANDT' OR 'SEL'.
        CONTINUE.
      WHEN 'MEINS'. LS_FIELDCAT-COLTEXT = '基本单位'.
      WHEN OTHERS.
    ENDCASE.
    IF LS_FIELD_IN-INTTYPE = 'P'.
      LS_FIELDCAT-DO_SUM = 'X'.
    ENDIF.
    APPEND LS_FIELDCAT TO LT_FIELDCAT.
  ENDLOOP.
  "其他特殊处理
  loop at lt_fieldcat into ls_fieldcat.
    if ls_fieldcat-fieldname cs 'ICON'.
      ls_fieldcat-icon = 'X'.
    endif.
    modify lt_fieldcat from ls_fieldcat.
  endloop.

  LS_LAYOUT-ZEBRA = 'X'.
  LS_LAYOUT-CWIDTH_OPT = 'X'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
*     I_CALLBACK_PROGRAM     = SY-REPID                 "弹框消息不需要处理可以删除
*     I_CALLBACK_PF_STATUS_SET = 'SUB_STATUS_SET_POPUP'   "弹框消息不需要处理可以删除
*     I_CALLBACK_USER_COMMAND  = 'SUB_USER_COMMAND_POPUP' "弹框消息不需要处理可以删除
      IS_LAYOUT_LVC          = LS_LAYOUT
      IT_FIELDCAT_LVC        = LT_FIELDCAT
      I_SCREEN_START_COLUMN  = 1
      I_SCREEN_START_LINE    = 1
      I_SCREEN_END_COLUMN    = 130
      I_SCREEN_END_LINE      = 15
    IMPORTING
      ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
    TABLES
      T_OUTTAB               = T_SHOW
    EXCEPTIONS
      PROGRAM_ERROR          = 1
      OTHERS                 = 2.

ENDFORM.

 
*&---------------------------------------------------------------------*
*&      Form  SUB_STATUS_SET
*&---------------------------------------------------------------------*
*       "弹框消息不需要处理可以删除
*----------------------------------------------------------------------*
FORM SUB_STATUS_SET_POPUP USING RT_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'STATUS01_D'.
  SET TITLEBAR 'TITLE_D'.
ENDFORM.                    "SUB_STATUS_SET

*&---------------------------------------------------------------------*
*&      Form  SUB_USER_COMMAND
*&---------------------------------------------------------------------*
*       "弹框消息不需要处理可以删除
*----------------------------------------------------------------------*
FORM SUB_USER_COMMAND_POPUP USING S_UCOMM TYPE SY-UCOMM
                            RE_SELFIELD TYPE SLIS_SELFIELD.
  CASE S_UCOMM.
    WHEN 'TEST'.
      LEAVE TO SCREEN 0.
  ENDCASE.
ENDFORM.                    "SUB_USER_COMMAND

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值