FUNCTION ALV 实现

TABLES:equi.

TYPES:
  BEGIN OF ty_itab,
    matnr  TYPE zsmm_as0033_1-matnr,  "物料编号
    maktx  TYPE zsmm_as0033_1-maktx,  "物料描述
    cpbm   TYPE zsmm_as0033_1-cpbm,   "产品编码
    hpmc   TYPE zsmm_as0033_1-hpmc,   "货品名称
    zbrand TYPE zsmm_as0033_1-zbrand, "品牌
    xhgg   TYPE zsmm_as0033_1-xhgg,   "型号规格
    sernr  TYPE zsmm_as0033_1-sernr,  "序列号
    zsblx  TYPE zsmm_as0033_1-zsblx,  "设备类型
    zflag  TYPE zsmm_as0033_1-zflag,  "销售状态:X→已销售给客户
    zazrq  TYPE zsmm_as0033_1-zazrq,  "安装日期
    ntgew  TYPE zsmm_as0033_1-ntgew,  "整机保修
    brgew  TYPE zsmm_as0033_1-brgew,  "光源/面板保修
    vbelv  TYPE zsmm_as0033_1-vbelv,  "合同号
    vbeln  TYPE zsmm_as0033_1-vbeln,  "销售订单号
    vkbur  TYPE zsmm_as0033_1-vkbur,  "销售办事处
    bezei  TYPE zsmm_as0033_1-bezei,  "销售部门描述
    kunnr  TYPE zsmm_as0033_1-kunnr,  "客户编号
    name1  TYPE zsmm_as0033_1-name1,  "客户描述
  END OF ty_itab.
DATA: gt_itab TYPE STANDARD TABLE OF ty_itab,
      gs_itab TYPE ty_itab.

"ALV显示
DATA: gt_fcat   TYPE STANDARD TABLE OF slis_fieldcat_alv.
DATA: ps_fcat           TYPE slis_fieldcat_alv,
      ls_layout         TYPE slis_layout_alv,
      lt_events         TYPE slis_t_event,
      it_exclude        TYPE slis_t_extab,
      git_events        TYPE slis_t_event,
      git_list_comments TYPE slis_t_listheader.
DATA: lv_tabix TYPE sy-tabix.


SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE TEXT-t01.
  SELECT-OPTIONS s_sernr FOR equi-sernr.
SELECTION-SCREEN END OF BLOCK block1.

************************************************************************
* START-OF-SELECTION
************************************************************************
START-OF-SELECTION.
* 取数据
  PERFORM frm_get_data.

************************************************************************
* END-OF-SELECTION
************************************************************************
END-OF-SELECTION.
* alv
  PERFORM frm_alv.
*&---------------------------------------------------------------------*
*& Form frm_get_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_get_data .


  "根据序列号找物料号
  SELECT equi~matnr,equi~sernr
    FROM equi
    INNER JOIN jest ON equi~objnr = jest~objnr
    INTO TABLE @DATA(lt_equi)
    WHERE equi~sernr IN @s_sernr
    AND jest~inact = ''
    AND jest~stat <> 'I0099'.

  MOVE-CORRESPONDING lt_equi TO gt_itab.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_alv
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_alv .
  PERFORM build_fieldcatalog.
  PERFORM build_layout.
  PERFORM frm_alv_display.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM build_fieldcatalog .
  DEFINE set_fieldcat.
    CLEAR ps_fcat.
    ps_fcat-fieldname = &1.
    ps_fcat-seltext_l = &2.
    ps_fcat-hotspot   = &3. "设置热点
    ps_fcat-key       = &4.
    APPEND ps_fcat TO gt_fcat.
  END-OF-DEFINITION.

*  set_fieldcat  'MATNR'  TEXT-002         ''   'X'.  "物料编号
*  set_fieldcat  'MAKTX'  TEXT-003         ''   'X'.  "物料描述
*  set_fieldcat  'CPBM'   TEXT-004         ''   'X'.  "产品编码
*  set_fieldcat  'HPMC'   TEXT-005         ''   'X'.  "货品名称
*  set_fieldcat  'ZBRAND' TEXT-006         ''   'X'.  "品牌
*  set_fieldcat  'XHGG'   TEXT-007         ''   '' .  "型号规格
*  set_fieldcat  'SERNR'  TEXT-008         ''   '' .  "序列号
*  set_fieldcat  'ZSBLX'  TEXT-009         ''   '' .  "设备类型
*  set_fieldcat  'ZFLAG'  TEXT-010         ''   '' . "销售状态:X→已销售给客户
*  set_fieldcat  'ZAZRQ'  TEXT-011         ''   '' . "安装日期
*  set_fieldcat  'NTGEW'  TEXT-012         ''   '' .  "整机保修
*  set_fieldcat  'BRGEW'  TEXT-013         ''   '' .  "光源/面板保修
*  set_fieldcat  'VBELV'  TEXT-014         ''   '' .  "合同号
*  set_fieldcat  'VBELN'  TEXT-015         ''   '' .  "销售订单号
*  set_fieldcat  'VKBUR'  TEXT-016         ''   '' . "销售办事处
  set_fieldcat  'BEZEI'  TEXT-017         ''   '' .  "销售部门描述
  set_fieldcat  'KUNNR'  TEXT-018         ''   '' .  "客户编号
  set_fieldcat  'NAME1'  TEXT-019         ''   '' .  "客户描述
ENDFORM.                    " BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*&      Form  BUILD_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM build_layout .
  ls_layout-zebra = 'X'. "斑马条纹显示列表
*  ls_layout-box_fieldname = 'SEL'. "在输出内表中定义的字段名,该字段作为checkbox,可以在输出列表中,选择多行.
  ls_layout-colwidth_optimize = 'X'.
ENDFORM.                    " BUILD_LAYOUT

FORM frm_alv_display .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program      = sy-repid "当前程序名
      i_callback_user_command = 'USER_COMMAND'   "注册ALV响应事件
      is_layout               = ls_layout "输出样式
      it_fieldcat             = gt_fcat "字段定义描述表
      i_save                  = 'A'
    TABLES
      t_outtab                = gt_itab.
ENDFORM.                    " FRM_ALV_DISPLAY
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值