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报表最左侧加上“红绿灯”列