ABAP-ALV学习(二)展示数据

学习目标:

继续ALV选择屏幕之后开始根据选择屏幕数据进行查询数据,并展示出来


学习内容:

数据展示步骤
1、 取数
2、 处理
3、 ALV展示
(3.1)填充fieldcat
(3.2)填充布局
(3.3)alv展示


操作代码:

START-OF-SELECTION."开始
  PERFORM frm_get_data."取数
  PERFORM frm_get_deal."处理
  PERFORM frm_alv_output."ALV展示

"1.取数
FORM frm_get_data .
   SELECT a~ebeln
         a~bukrs
         a~bsart
         b~ebelp
         b~matnr
         b~werks
         b~matkl
         b~menge
         b~meins
    FROM ekko AS a
    INNER JOIN ekpo AS b ON a~ebeln = b~ebeln  "表关联
    INTO CORRESPONDING FIELDS OF TABLE gt_alv
    WHERE a~ebeln IN s_ebeln
      AND a~bukrs = p_bukrs."选择屏幕作为where条件

ENDFORM.
"2.处理
FORM frm_get_deal .

ENDFORM.
"3.ALV展示
FORM frm_alv_output .

  PERFORM frm_fill_fieldcat."填充fieldcat
  PERFORM frm_fill_lauout."填充布局
  PERFORM frm_alv_display."alv展示

ENDFORM.
"3.1填充fieldcat
FORM frm_fill_fieldcat .
  DEFINE add_fieldcat."宏名称

    CLEAR gs_fieldcat.
    gs_fieldcat-fieldname    =  &1.
    gs_fieldcat-reptext      =  &2.
    gs_fieldcat-edit         =  &3.
    gs_fieldcat-col_pos      =  &4.
    gs_fieldcat-just         =  &5.
    gs_fieldcat-outputlen    =  &6.
    gs_fieldcat-fix_column   =  &7.
    APPEND gs_fieldcat TO gt_fieldcat.

  END-OF-DEFINITION.
   CLEAR gt_fieldcat.
  REFRESH gt_fieldcat.

  add_fieldcat 'EBELN' '采购订单编号' '' '' '' '100' ''.
  add_fieldcat 'BUKRS' '公司代码'     '' '' '' '' ''.
  add_fieldcat 'BSART' '单据类型'     '' '' '' '' ''.
  add_fieldcat 'EBELP' '行号'         '' '' '' '' ''.
  add_fieldcat 'MATNR' '物料编号'     '' '' '' '' ''.
  add_fieldcat 'WERKS' '工厂'         '' '' '' '' ''.
  add_fieldcat 'MATKL' '物料组'       '' '' '' '' ''.
  add_fieldcat 'MENGE' '数量'         '' '' '' '' ''.
  add_fieldcat 'MEINS' '单位'         '' '' '' '' ''.

ENDFORM.
"3.2填充布局
FORM frm_fill_lauout .
  "定义列自动宽度优化
  gs_layout-cwidth_opt  = 'X'.
  "布局
  gs_layout-sel_mode    = 'A'.
  "定义条纹显示
  gs_layout-zebra       = 'X'.

ENDFORM.
"3.3ALV展示
FORM frm_alv_display .

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program       = sy-repid
      i_callback_pf_status_set = 'STATUS'
      i_callback_user_command  = 'USER_COMMAND'
      is_layout_lvc            = gs_layout
      it_fieldcat_lvc          = gt_fieldcat
    TABLES
      t_outtab                 = gt_alv
    EXCEPTIONS
      program_error            = 1
      OTHERS                   = 2.

  IF sy-subrc <> 0.
* Implement suitable error handling here
    MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 DISPLAY LIKE 'E'.
  ENDIF.


ENDFORM.

学习产出:

在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

惰小懒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值