项目中请求比较多,对于批量查看请求传输结果没有一个直观的功能体现出来,所以做了个报表,结果如下图所示
报表代码:
*&---------------------------------------------------------------------*
*& Report ZDEMO_TRLOG_REPORT
*&
*&---------------------------------------------------------------------*
*& Program Name <程序名称>:
*& Purpose <程序用途>: Function Desc.
*& Project Name <项目名称>:
*& Created by <创 建 人>:
*& Created on <创建日期>: 20170710
*& Functional Consultant<功能顾问>: biz consultant
*& Description <功能描述>: Function Desc.
*&---------------------------------------------------------------------*
* Modification Log<程序修改日志>
*<日期> <开发者> <功能顾问> <修改描述>
* Date Programmer Corr. # 请求号+描述
*&
*&
*&---------------------------------------------------------------------*
report zdemo_trlog_report.
tables:e070.
types:begin of tys_outtab.
include type e070.
types:as4text type as4text,"请求描述
ecd type char4,
ecq type char4,
ecm type char4,
ecp type char4,
ed2 type char4,
end of tys_outtab,
tyt_outtab type table of tys_outtab.
data:gt_outtab type tyt_outtab.
*alv controller data declare
data:gr_alv_grid type ref to cl_gui_alv_grid,
gr_con type ref to cl_gui_custom_container.
*----------------------------------------------------------------------*
* CLASS LCL_EVENT_RECEIVE DEFINITION
*----------------------------------------------------------------------*
class lcl_event_receive definition.
public section.
class-methods:
handle_hotspot_click for event hotspot_click of cl_gui_alv_grid
importing e_row_id e_column_id es_row_no,
*工具栏
handle_toolbar for event toolbar of cl_gui_alv_grid
importing e_object.
endclass. "lc_receive DEFINITION
*----------------------------------------------------------------------*
* CLASS LCL_EVENT_RECEIVE IMPLEMENTATION
*----------------------------------------------------------------------*
class lcl_event_receive implementation.
"HANDLE_HOTSPOT_CLICK
method handle_toolbar.
field-symbols:<fs_toolbar> type ttb_button.
assign e_object->mt_toolbar to <fs_toolbar>.
if sy-subrc eq 0.
delete <fs_toolbar> where function eq '&LOCAL&CUT'
or function eq '&LOCAL©'
or function eq '&LOCAL&PASTE'
or function eq '&LOCAL&UNDO'
or function eq '&&SEP02'
or function eq '&LOCAL&APPEND'
or function eq '&LOCAL&INSERT_ROW'
or function eq '&LOCAL&DELETE_ROW'
or function eq '&LOCAL©_ROW'
or function eq '&&SEP03'.
endif.
endmethod. "HANDLE_TOOLBAR
method handle_hotspot_click.
data:ls_outtab type tys_outtab.
read table gt_outtab into ls_outtab index e_row_id-index.
if sy-subrc eq 0.
case e_column_id-fieldname.
when 'TRKORR'.
call function 'TR_LOG_OVERVIEW_REQUEST'
exporting
iv_trkorr = ls_outtab-trkorr
* IV_DIR_TYPE = 'T'
* IV_DETAILED_CHRONOLOGY = 'X'
* IV_TARGET_SYSTEM = ' '
* IS_POPUP = IS_POPUP
* EXCEPTIONS
* E_WRONG_CALL = 1
.
when others.
endcase.
else."行号错误
endif.
endmethod.
endclass. "LCL_EVENT_RECEIVE IMPLEMENTATION
selection-screen begin of block b1 with frame title text-t01. "TR选择
select-options:
s_date for e070-as4date,
s_user for e070-as4user,
s_trkorr for e070-trkorr.
selection-screen end of block b1.
start-of-selection.
perform frm_get_data.
call screen 9000.
*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form frm_get_data .
field-symbols:<fs_outtab> type tys_outtab,
<fs_value> type any.
data:ls_cofile type ctslg_cofile,
ls_system type ctslg_system.
select a~*,
b~as4text
into corresponding fields of table @gt_outtab
from e070 as a inner join e07t as b
on a~trkorr eq b~trkorr
where a~as4date in @s_date
and a~as4user in @s_user
and a~trstatus eq 'R'
and a~trkorr in @s_trkorr.
if sy-subrc eq 0.
loop at gt_outtab assigning <fs_outtab>.
clear ls_cofile.
*读取TR传输反馈结果信息
call function 'TR_READ_GLOBAL_INFO_OF_REQUEST'
exporting
iv_trkorr = <fs_outtab>-trkorr
importing
es_cofile = ls_cofile.
loop at ls_cofile-systems into ls_system.
assign component ls_system-systemid
of structure <fs_outtab> to <fs_value>.
if sy-subrc eq 0.
case ls_system-rc.
when '0'. "成功
<fs_value> = '@08@'.
when '4'."警告
<fs_value> = '@09@'.
when others."错误
<fs_value> = '@0A@'.
endcase.
endif.
endloop.
endloop.
endif.
endform.
*&---------------------------------------------------------------------*
*& Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module status_9000 output.
set pf-status '9000'.
set titlebar '9000'.
*显示ALV
perform frm_display_alv.
endmodule.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module user_command_9000 input.
case sy-ucomm.
when 'BACK' or 'EXIT' or 'CANCEL'.
set screen 0.
endcase.
endmodule.
*&---------------------------------------------------------------------*
*& Form FRM_DISPLAY_ALV
*&---------------------------------------------------------------------*
* 显示ALV
*----------------------------------------------------------------------*
form frm_display_alv .
data:lt_fieldcat type lvc_t_fcat, "字段目录列表
ls_layout type lvc_s_layo, "布局结构
ls_variant type disvariant, "变式
ls_print type lvc_s_prnt, "打印控制
lt_sort type lvc_t_sort, "排序表\\
lt_filter type lvc_t_filt, "过滤表
lt_funs_excl type ui_functions, "隐藏标准按钮内表
lt_hyperlink type lvc_t_hype, "超级链接内表
ls_refresh_stbl type lvc_s_stbl. "刷新行列固定结构
if gr_alv_grid is initial.
*create container controller
create object gr_con
exporting
container_name = 'CONTAINER'.
*create alv controller
create object gr_alv_grid
exporting
i_appl_events = abap_true
i_parent = gr_con.
ls_layout-zebra = 'X' .
ls_layout-sel_mode = 'D'.
* ls_layout-grid_title = sy-title. "标题
* ls_layout-smalltitle = abap_true. "标体大小
ls_layout-cwidth_opt = abap_true. "列宽优化
ls_variant-report = sy-repid .
* ls_variant-username = sy-uname.
*-----ALV 事件设置
perform frm_set_alv_event.
*-----准备获取字段目录
perform frm_prepare_field_catalog changing lt_fieldcat .
call method gr_alv_grid->set_table_for_first_display
exporting
is_variant = ls_variant "显示变式
i_save = 'X' "决定是否保存变式''/A/U/X
* I_DEFAULT = 'X' "是否可以定义默认布局
is_layout = ls_layout
changing
it_outtab = gt_outtab[]
it_fieldcatalog = lt_fieldcat
it_sort = lt_sort
it_filter = lt_filter
exceptions
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
others = 4.
else.
*----刷新alv
ls_refresh_stbl-row = abap_true. "行滚动条不滑动
ls_refresh_stbl-col = abap_true. "列滚动条不滑动
call method gr_alv_grid->refresh_table_display
exporting
is_stable = ls_refresh_stbl
* I_SOFT_REFRESH = GC_TRUE "过滤、合计、排序等设置不变
exceptions
finished = 1
others = 2.
if sy-subrc <> 0.
*--异常处理
endif.
endif.
endform.
*&---------------------------------------------------------------------*
*& Form FRM_SET_ALV_EVENT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form frm_set_alv_event .
*事件
set handler lcl_event_receive=>handle_toolbar for gr_alv_grid.
set handler lcl_event_receive=>handle_hotspot_click for gr_alv_grid.
endform.
*&---------------------------------------------------------------------*
*& Form FRM_PREPARE_FIELD_CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form frm_prepare_field_catalog changing pt_fieldcat type lvc_t_fcat.
field-symbols:<fs_fieldcat> type lvc_s_fcat.
data:lv_sname type tabname,
lv_index type i.
data:ls_fieldcat type lvc_s_fcat.
define change_text.
ls_fieldcat-REPTEXT =
ls_fieldcat-SCRTEXT_L =
ls_fieldcat-SCRTEXT_M =
ls_fieldcat-SCRTEXT_S = &1.
end-of-definition.
call function 'LVC_FIELDCATALOG_MERGE'
exporting
i_structure_name = 'E070'
changing
ct_fieldcat = pt_fieldcat[]
exceptions
inconsistent_interface = 1
program_error = 2.
if sy-subrc <> 0.
*--Exception handling
else.
loop at pt_fieldcat assigning <fs_fieldcat> .
lv_index = sy-tabix.
case <fs_fieldcat>-fieldname.
when 'TRKORR' or 'TARSYSTEM' or 'AS4USER' or 'AS4DATE'.
if <fs_fieldcat>-fieldname eq 'TRKORR'.
<fs_fieldcat>-hotspot = 'X'.
endif.
when others.
delete pt_fieldcat index lv_index.
endcase.
endloop .
clear:ls_fieldcat.
ls_fieldcat-col_pos = '10'.
ls_fieldcat-fieldname = 'AS4TEXT'.
change_text '请求描述'.
append ls_fieldcat to pt_fieldcat.
ls_fieldcat-fieldname = 'ECD'.
change_text 'ECD'.
ls_fieldcat-icon = abap_true.
append ls_fieldcat to pt_fieldcat.
ls_fieldcat-fieldname = 'ECQ'.
change_text 'ECQ'.
ls_fieldcat-icon = abap_true.
append ls_fieldcat to pt_fieldcat.
ls_fieldcat-fieldname = 'ECM'.
change_text 'ECM'.
ls_fieldcat-icon = abap_true.
append ls_fieldcat to pt_fieldcat.
ls_fieldcat-fieldname = 'ECP'.
change_text 'ECP'.
ls_fieldcat-icon = abap_true.
append ls_fieldcat to pt_fieldcat.
ls_fieldcat-fieldname = 'ED2'.
change_text 'ED2'.
ls_fieldcat-icon = abap_true.
append ls_fieldcat to pt_fieldcat.
endif.
endform.