02、ALV报表练习题

ALV报表练习题

1、查询SPFLI表,生成如下图所示的ALV报表(不强求用OOALV)
2、在GUI状态中添加“打印”按钮,点击按钮,使用静态类方法 cl_demo_output=>display( ‘Hello World’ ) 展示弹出框
3、将“出发时间、到达时间”两列设置为可编辑状态
4、在ALV报表最左侧加上“红绿灯”列
在这里插入图片描述

1、创建ALV程序,查询SPFLI表

REPORT ZT_TEST_009.

TYPE-POOLS: slis.
TABLES: SPFLI.
DATA: gs_layout_lvc TYPE  lvc_s_layo,
      gt_fcat_lvc   TYPE lvc_t_fcat,
      gs_fcat_lvc   TYPE lvc_s_fcat.

* 筛选界面 单选p,多选s
SELECTION-SCREEN BEGIN OF BLOCK blc WITH FRAME TITLE text-001.
  PARAMETERS:  p_carrid  LIKE spfli-carrid.
  SELECT-OPTIONS  s_connid  FOR spfli-connid.
SELECTION-SCREEN END OF BLOCK blc.

* 初始化变量
INITIALIZATION.
  DATA: it_item LIKE TABLE OF spfli.

START-OF-SELECTION.
    PERFORM get_data.
    PERFORM frm_set_fieldcat.
    PERFORM frm_alv_display.

* 获取数据
FORM get_data.
  clear: it_item.
  SELECT *
      INTO CORRESPONDING FIELDS OF TABLE it_item
      FROM spfli.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_set_fieldcat
*&---------------------------------------------------------------------*
FORM frm_set_fieldcat .
  DEFINE set_fieldcat.
    CLEAR gs_fcat_lvc .
    gs_fcat_lvc-fieldname = &1."内表的字段
    gs_fcat_lvc-outputlen = &2."输出长度
    gs_fcat_lvc-scrtext_l = gs_fcat_lvc-scrtext_s = gs_fcat_lvc-scrtext_m = &3."在ALV里面显示的名字
    gs_fcat_lvc-just      = &4."水平对齐方式,L左对齐,R右对齐。
    gs_fcat_lvc-lzero      = &5. "输出前导0
    gs_fcat_lvc-no_zero    = &6.
    gs_fcat_lvc-emphasize  = &7.
    APPEND gs_fcat_lvc TO gt_fcat_lvc .
  END-OF-DEFINITION.
  set_fieldcat:
    'CARRID'   ''      '航线'        ''  ''  '' '',
    'CONNID'   ''      '航班连接编号'        ''  ''  '' ''  ,
    'COUNTRYFR'   ''      '国家/地区代码'        ''  ''  '' ''  ,
    'CITYFROM'   ''      '起飞城市'        ''  ''  '' ''  ,
    'AIRPFROM'   ''      '始发机场'        ''  ''  '' ''  ,
    'COUNTRYTO'   ''      '国家/地区代码'        ''  ''  '' ''  ,
    'CITYTO'   ''      '到达城市'        ''  ''  '' ''  ,
    'AIRPTO'   ''      '目标机场'        ''  ''  '' ''  ,
    'FLTIME'   ''      '航班时间'        ''  ''  '' ''  ,
    'DEPTIME'   ''      '出发时间'        ''  ''  '' ''  ,
    'ARRTIME'   ''      '到达时间'        ''  ''  '' ''  ,
    'DISTANCE'   ''      '距离'        ''  ''  '' ''  ,
    'DISTID'   ''      '大距离单位(公里,英里)'        ''  ''  '' ''  ,
    'FLTYPE'   ''      '航班类型'        ''  ''  '' ''  ,
    'PERIOD'   ''      'n天后到达'        ''  ''  '' ''  .
ENDFORM.

* 显示数据
FORM frm_alv_display .
  gs_layout_lvc-sel_mode   = 'A'.
*-调用ALV展示数据
  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'
      i_default          = 'X'
    TABLES
      t_outtab           = it_item
    EXCEPTIONS
      program_error      = 1
      OTHERS             = 2.
ENDFORM.

在这里插入图片描述

2、在GUI状态中添加“打印”按钮,点击按钮,使用静态类方法 cl_demo_output=>display( ‘Hello World’ ) 展示弹出框

具体按钮配置流程,参考这个博主https://blog.csdn.net/xuehen86/article/details/105992525/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3、将“出发时间、到达时间”两列设置为可编辑状态

在这里插入图片描述在这里插入图片描述

4、在ALV报表最左侧加上“红绿灯”列

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值