*&---------------------------------------------------------------------*
*& Report ZTEST_CESHI
*&---------------------------------------------------------------------*
REPORT ztest_ceshi.
TABLES: sflight.
"抬头数据输出
TYPES: BEGIN OF ty_head.
INCLUDE TYPE scarr.
TYPES: slbox TYPE c,
light TYPE icon_d,
message TYPE string,
END OF ty_head.
DATA: gt_head TYPE TABLE OF ty_head,
gs_head TYPE ty_head.
"行项目数据输出
TYPES: BEGIN OF ty_item.
INCLUDE TYPE sflight.
TYPES: slbox TYPE c,
light TYPE icon_d,
message TYPE string,
END OF ty_item.
DATA: gt_item TYPE TABLE OF ty_item,
gs_item TYPE ty_item.
DATA:g_cust_con TYPE REF TO cl_gui_custom_container.
"字段属性定义
DATA: gs_fcat TYPE lvc_s_fcat.
DATA: gt_fcat_h TYPE lvc_t_fcat,
gt_fcat_i TYPE lvc_t_fcat.
DATA: gs_layout_h TYPE lvc_s_layo,
gs_layout_i TYPE lvc_s_layo.
DATA: gs_variant_h TYPE disvariant,
gs_variant_i TYPE disvariant,
gv_colno TYPE i.
DATA: gt_ui_func TYPE ui_functions. "隐藏alv菜单控件
DATA: ok_code TYPE sy-ucomm. "用户功能码接收
DATA: save_ok TYPE sy-ucomm. "用户功能码接收
"ALV grid
DATA: gs_dock TYPE REF TO cl_gui_docking_container,
gs_splitter TYPE REF TO cl_gui_splitter_container, "分割屏幕类
gs_container_h TYPE REF TO cl_gui_container, "抬头容器
gs_container_i TYPE REF TO cl_gui_container, "行项目容器
gs_grid_h TYPE REF TO cl_gui_alv_grid, "抬头屏幕对象类
gs_grid_i TYPE REF TO cl_gui_alv_grid. "行项目屏幕对象类
CONSTANTS: gc_h TYPE c VALUE 'H'. "抬头标识符
CONSTANTS: gc_i TYPE c VALUE 'I'. "行项目标识符
"选择屏幕
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME.
SELECT-OPTIONS: s_carrid FOR sflight-carrid.
SELECTION-SCREEN END OF BLOCK blk1 .
START-OF-SELECTION.
"取数
PERFORM frm_select_data.
END-OF-SELECTION.
"输出屏幕准备
PERFORM frm_prepare_alv.
"调用100屏幕输出
CALL SCREEN 0100.
MODULE pbo OUTPUT.
SET PF-STATUS 'MAIN100'.
SET TITLEBAR 'MAINTITLE' WITH 'OOALV分割'.
ENDMODULE.
MODULE pai INPUT.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN '&F03' OR '&F12' OR '&F15'.
LEAVE TO SCREEN 0. "返回上一个屏幕
WHEN OTHERS.
ENDCASE.
ENDMODULE.
MODULE init_alv OUTPUT.
IF gs_dock IS INITIAL.
"屏幕分割
PERFORM frm_split_screen.
"创建alv grid
PERFORM frm_create_grid.
"显示数据
PERFORM frm_display_alv USING gc_h gs_grid_h.
PERFORM frm_display_alv USING gc_i gs_grid_i.
ELSE.
"alv 刷新
PERFORM frm_refresh_alv USING gs_grid_h.
PERFORM frm_refresh_alv USING gs_grid_i.
ENDIF.
ENDMODULE.
FORM frm_select_data .
SELECT *
FROM scarr
INTO CORRESPONDING FIELDS OF TABLE gt_head
WHERE carrid IN s_carrid.
SELECT *
FROM sflight
INTO CORRESPONDING FIELDS OF TABLE gt_item
&
ABAP OO分屏:sflight
于 2023-12-07 09:46:05 首次发布
此博客主要展示了一段ABAP程序代码,用于创建和展示GUI界面。代码包含数据定义、选择屏幕设置、数据获取、ALV网格创建与显示等功能。通过该程序,可实现抬头和行项目数据的输出,并对界面进行分割、布局设置和数据刷新等操作。

最低0.47元/天 解锁文章
1304

被折叠的 条评论
为什么被折叠?



