ABAP开发-ALV报表实现-SE11数据源-SE11透明表-SE15N数据库赋值-SE38程序创建-SE38ALV编程-SE93事务码

业务说明:通过创建自定义透明表,然后通过ALV程序代码进行调取显示。

 

ALV报表实现概要

SE11数据元素:ZCUST_* 客户主数据自定义字段数据元素

SE11数据库表(透明表):ZMMBNT001 客户主数据自定义后台表

SE16N维护字段值:ZCUST_* 客户主数据自定义字段维护具体值

SE38程序:ZMM_BOTECK_ALV1 BOTECK自定义ALV报表1

SE38编程:ZMM_BOTECK_ALV1 BOTECK自定义ALV报表1

SE93事务码: ZMMBNT001 自定义ALV报表事务码创建

 

#1 SE11创建数据元素

输入事务码SE11进入,

详见: 3.2 SE11创建数据元素-CSDN博客

981a0d0dd46a41e085d10d1aa25b3704.png

1处,输入数据类型

2处,点击 创建 按钮

feaceca98ea049a3a740dc23068b74b3.png

3处,选择 数据元素

4处,点击 勾选 按钮

99fd7607b92249b782b7296268c8af0d.png

5处,点击 数据类型

6处,输入 数据类型 和 长度

21c3536d93d043d48b1be93ea93eb41c.png

7处,点击 字段标签

8处,输入字段长度和字段标签描述

9处,点击 激活 按钮

备注:按照相同的步骤,创建其他数据元素。

 

#2 SE11创建数据库表(透明表)

输入事务码SE11进入,

0b6aa584e3a1477f8e948f9fbf49495d.png

1处,输入 数据库表代码

2处,点击 创建 按钮,进入弹窗

61d0304d7e4a4a7fa9854e60d2abe6b5.png

3处,输入 数据库表名称 客户主数据自定义后台表

4处,选择 参数 C

5处,选择 参数 X

6处,选择 字段 页签

ba58346f9d3e45009401403d1beeca17.png

7处,输入透明表字段

8处,点击 激活 按钮

68d5d3aad72143b3b904f38f3d4cd87c.png

9处,输入 开发包

10处,点击  保存 按钮

9d2d412b93bd47d89af4460b25a284b5.png

11处,点击 确定 按钮

e5a34268f7fc412c829ac601ada74437.png

73fef48e6faa4b6ebaa42eba98d01533.png

12处,选择数据类 APPL0

13处,点击 保存 按钮,按2次回车键

14处,勾选 日志更改

7229bd4038384ee09781eb911611af3e.png

15处,点击 确认 按钮

d0d2c9cdc81e402c91c26992a5f81edd.png

16处,点击 激活 按钮

8db7c4e5e0c84ebab37514b7685ffab3.png

17处,选择 行

18处,点击 勾选确认 按钮

9a540234af79443dbc06e27cc6e0077c.png

#3 SE16N维护数据库表(透明表)

输入事务码SE16N进入,

fc55bda321a94ad4ac84c5b17dbcb99b.png

1 处,输入 数据库表

2处,勾选 维护条目

3处,点击 执行 按钮,进入下一个界面

4bc3c9dc333d4ad587d9075a60012f71.png

4处,点击 新增行

5处,输入每个字段对应的内容

6处,点击 保存 按钮 将填入的数据进行数据库存表

 

#4 SE38创建ALV程序

输入事务码SE38进入,

9e53699f343b4d918df16926747fdff4.png

1处,选择 源代码

2处,输入 ALV程序名

3处,点击 创建 按钮,进入弹窗

142ef42c514e4f7f915ff452d3123ba4.png

4处,输入 ALV报表名称

5处,选择 1 可执行程序

6处,点击 保存 按钮,进入弹窗界面

5d03c33978cf49ada46db43e7ae9892b.png

7处,输入 开发包,如果没有创建,详见:1 SE21开发包创建_se21 建立包-CSDN博客

8处,点击 保存 按钮,进入下一个界面

742a3756a91040fcb56503b816668258.png

8处,如果需要创建一个新的请求号,需要点击8处,创建一个新的请求号

9处,点击 确认 按钮,进入SE38编程界面

26fc342c85904564b035405cc5e8bd69.png

10处,点击 保存 按钮

#5 SE38 ALV报表 程序代码

输入事务码SE38进入,输入程序名称:ZMM_BOTECK_ALV1

b842614d27224fb2aec985ae39e8c4ab.png

be9e1902e6444b70b21ebda1b235d75d.png

847139b5cb7f4576a7c26fd169e77d03.png

2875d7edff1c44cb9af02a147ffa1319.png

82b6392628bd4674914c7951d2e41387.png

注意:针对于选择屏幕上面的字段中文名称维护,需要通过SE38文本元素进行维护,具体操作如下:

a441c576a2644cd69db0aefed5a90a21.png

1处,点击 转到

2处,点击 文本元素

acb2e6872a8246c1965d5c8c031b6abd.png

3处,选择 文本符号 (选择屏幕ALV标题)

4处,维护 选择屏幕ALV标题

41d08a302c1f4f4493f78c88d517cbe4.png

5处,点击 选择文本

6处,输入 选择屏幕ALV字段中文名称,如果不想用数据元素上的字段描述,数据字段参考可以不用勾选

d9f02f1cf7db400da21f476280f6abb7.png

7处,点击 保存 按钮

7188a3b74396467598df1026baf70c85.png

8处,显示 更改后未激活 状态

9处,点击 激活 按钮,返回上主界面

b53824d75f9e4d7c987eefd254bf6659.png

10处,选择 行

11处,点击 确认 按钮

0aef0bec6730460892f07f9a6356dd46.png

12处,点击 返回 按钮,返回主界面

720401ed6333467190d9e636c7c093f6.png

13处,显示 主程序 状态

14处,点击 激活 按钮,激活主程序

*&---------------------------------------------------------------------*
*& Report ZMM_BOTECK_ALV1
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZMM_BOTECK_ALV1.

* Type-pools 定义类型池
TYPE-POOLS: slis.

* Table 数据库表声明
TABLES: zmmbnt001.

* Type 自定义类型
TYPES:BEGIN OF ty_alv,
  customer TYPE zmmbnt001-customer,
  name     TYPE zmmbnt001-name,
  address  TYPE zmmbnt001-address,
  bankname TYPE zmmbnt001-bankname,
  city     TYPE zmmbnt001-city,
  district TYPE zmmbnt001-district,
  email    TYPE zmmbnt001-email,
  mobile   TYPE zmmbnt001-mobile,
END OF ty_alv.

DATA: gt_alv TYPE STANDARD TABLE OF ty_alv.
DATA: gs_glv TYPE ty_alv.

* 定义Macros
DEFINE set_fieldcat.
  CLEAR gs_fcat_lvc.
  gs_fcat_lvc-fieldname = &1. "内表的字段
  gs_fcat_lvc-outputlen = &2. "输出长度
  gs_fcat_lvc-scrtext_l = &3. "在ALV里面显示的名字
  gs_fcat_lvc-just      = &4. "水平对齐方式,L左对齐,R右对齐
  gs_fcat_lvc-no_zero   = &5. "去除前导零
  APPEND gs_fcat_lvc TO gt_fcat_lvc.
END-OF-DEFINITION.

* 声明ALV对象
DATA: gs_layout_lvc TYPE lvc_s_layo,
      gt_fcat_lvc   TYPE lvc_t_fcat,
      gs_fcat_lvc   TYPE lvc_s_fcat.

* 定义选择屏幕
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE TEXT-t01.
    SELECT-OPTIONS: s_cust    FOR zmmbnt001-customer,
                    s_name    FOR zmmbnt001-name,
                    s_add     FOR zmmbnt001-address,
                    s_bank    FOR zmmbnt001-bankname,
                    s_city    FOR zmmbnt001-city,
                    s_dist    FOR zmmbnt001-district,
                    s_email   FOR zmmbnt001-email,
                    s_mobile  FOR zmmbnt001-mobile.
SELECTION-SCREEN END OF BLOCK block1.

* 事件初始化
INITIALIZATION.

* 屏幕事件
AT SELECTION-SCREEN.
AT SELECTION-SCREEN OUTPUT.

* 开始选择事件
START-OF-SELECTION.
* 读取数据
PERFORM frm_get_data.
* ALV报表展示
PERFORM frm_display_alv.
END-OF-SELECTION.

*&---------------------------------------------------------------------*
*& Form frm_get_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_get_data . "通过SQL语句SELECT从数据库表zmmbnt001抓取数据

SELECT *
  INTO CORRESPONDING FIELDS OF TABLE gt_alv
  FROM zmmbnt001
  WHERE customer IN s_cust
    AND name     IN s_name
    AND address  IN s_add
    AND bankname IN s_bank
    AND city     IN s_city
    AND district IN s_dist
    AND email    IN s_email
    AND mobile   IN s_mobile.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form frm_display_alv
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_display_alv . "ALV报表展示

  set_fieldcat:'customer'      '' '客户编号' '' '',
               'name'          '' '客户名称' '' '',
               'address'       '' '客户地址' '' '',
               'bankname'      '' '客户银行' '' '',
               'city'          '' '客户城市' '' '',
               'district'      '' '客户地区' '' '',
               'email'         '' '客户邮箱' '' '',
               'mobile'        '' '客户手机' '' ''.
  CLEAR:gs_layout_lvc.

  gs_layout_lvc-zebra        = 'X'.
  gs_layout_lvc-cwidth_opt   = 'X'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'

    EXPORTING
      i_callback_program = sy-repid
      is_layout_lvc      = gs_layout_lvc
      it_fieldcat_lvc    = gt_fcat_lvc
      i_save             = 'A'

    TABLES
      t_outtab           = gt_alv

    EXCEPTIONS
      program_error      = 1
      OTHERS             = 2.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

ENDFORM.

#6 SE38 ALV报表 程序执行

ab2a28c24352410da9854dadf07147b0.png

1处,点击 程序执行 按钮,进入选择屏幕界面

04480ab62ce24d9b8afb27459ba12f80.png

2处,在选择屏幕字段中输入 需要查询的客户代码 66000001

3处,点击 执行 按钮,进入下一个界面

9e0b735a55ad4998a9b0157e98a67a86.png

4处,显示ALV报表客户主数据内容

 

#6 SE93 创建ALV报表事务码

输入事务码SE93进入,

f377ff4a2b0348759f7ddfcbea6b36e9.png

1处,输入 事务码 ZMMBNT001 (为了方便记忆就直接用数据库表代码作为事务码代码,实际项目中根据项目要求的标准定义)

2处,点击 创建 按钮,进入弹窗

6ce3fe692bc34dbfa5e2213d97aadaa6.png

3处,显示 事务码

4处,输入 事务码名称

5处,选择 程序对象

6处,点击 确认 按钮,进入下一个界面

c3bcb5a77a794aad874e6d792fb84737.png

7处,输入程序代码

8处,点击 保存 按钮

3b81a79431574b4a9578e6af1fd40dcd.png

9处,输入 开发包

10处,点击 保存 按钮

337b6a1cc59f4040bf2ef65e8ce67099.png

11处,点击 确认 按钮

d1c15be53b2f4307ac6687deef014968.png

#7 ZMMBNT001 前台事务码输入

输入事务码ZMMBNT001进入,

5a99cff0b36d49e6ab35023b025d0e27.png

e6f9198579e2468784a2113e33473bac.png

ALV报表开发完毕!

Done.

Created on 8th September, 2024

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值