|
![]() ![]()
REPORT ZTEST_020.
TABLES:ZDSMT_BMXHTJB_D2. TYPE-POOLS: SLIS. DATA:BEGIN OF WA_XHB,
HH TYPE SY-TABIX.
INCLUDE STRUCTURE ZDSMT_BMXHTJB_D2. DATA: END OF WA_XHB. data: head1 like TABLE OF WA_XHB WITH HEADER LINE. data: i_fieldcat_alv type slis_t_fieldcat_alv with header line,
i_layout type slis_layout_alv, "alv的格式
i_fieldcat type slis_fieldcat_alv,
w_repid like sy-repid. *它对应的start-of-selection中定义子函数如下: start-of-selection.
perform getdata. "从数据库中取数据到相应内表中
perform layout_build. "用于定义ALV表单的相关格式、属性
perform fields. "用来定义表单中的各个列的相关信息,比如列名等
perform display_data. "用来显示ALV表单 * 子函数定义如下: form layout_build.
i_layout-zebra = 'X'.
i_layout-detail_popup = 'X'. "是否弹出详细信息窗口
w_repid = sy-repid. "程序为当前程序
i_layout-f2code = '&ETA'. "设置触发弹出详细信息窗口的功能码,这里是双击
i_layout-no_vline = 'X'. "这个用来设置列间隔线
i_layout-colwidth_optimize = 'X'. "优化列宽选项是否设置
i_layout-detail_initial_lines = 'X'.
i_layout-detail_titlebar = '详细内容'. "设置弹出窗口的标题栏 endform. "layout_build *&---------------------------------------------------------------------* *& Form fields *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* form fields. * 下面继续添加要显示的列及对应名称文本,
data:pos type i.
refresh i_fieldcat_alv.
pos = 1.
clear i_fieldcat.
pos = pos + 1.
i_fieldcat-col_pos = pos.
i_fieldcat-fieldname = 'HH'.
i_fieldcat-seltext_l = '行号'.
append i_fieldcat to i_fieldcat_alv.
clear i_fieldcat.
i_fieldcat-col_pos = pos. "第几列
i_fieldcat-fieldname = 'KOSTL'.
i_fieldcat-seltext_l = '成本中心'. "列名
append i_fieldcat to i_fieldcat_alv.
pos = pos + 1.
i_fieldcat-col_pos = pos.
i_fieldcat-fieldname = 'LTEXT'.
i_fieldcat-seltext_l = '成本中心名称'.
append i_fieldcat to i_fieldcat_alv.
clear i_fieldcat.
pos = pos + 1.
i_fieldcat-col_pos = pos.
i_fieldcat-fieldname = 'CJMC'.
i_fieldcat-seltext_l = '车间名称'.
append i_fieldcat to i_fieldcat_alv.
clear i_fieldcat.
pos = pos + 1.
i_fieldcat-col_pos = pos.
i_fieldcat-fieldname = 'ZZMC'.
i_fieldcat-seltext_l = '装置名称'.
append i_fieldcat to i_fieldcat_alv.
clear i_fieldcat.
Endform. *&---------------------------------------------------------------------* *& Form DISPLAY_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM DISPLAY_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING * I_INTERFACE_CHECK = ' ' * I_BYPASSING_BUFFER = ' ' * I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = w_repid "当前程序 * I_CALLBACK_PF_STATUS_SET = ' ' * I_CALLBACK_USER_COMMAND = ' ' * I_CALLBACK_TOP_OF_PAGE = ' ' * I_CALLBACK_HTML_TOP_OF_PAGE = ' ' * I_CALLBACK_HTML_END_OF_LIST = ' ' * I_STRUCTURE_NAME = * I_BACKGROUND_ID = ' ' * I_GRID_TITLE = * I_GRID_SETTINGS =
IS_LAYOUT = i_layout "子函数layout_build填充的格式定义
IT_FIELDCAT = i_fieldcat_alv[] "子函数fields填充的各列 tables * IT_EXCLUDING = * IT_SPECIAL_GROUPS = * IT_SORT = * IT_FILTER = * IS_SEL_HIDE = * I_DEFAULT = 'X'
I_SAVE = ' ' * IS_VARIANT = * IT_EVENTS = * IT_EVENT_EXIT = * IS_PRINT = * IS_REPREP_ID = * I_SCREEN_START_COLUMN = 0 * I_SCREEN_START_LINE = 0 * I_SCREEN_END_COLUMN = 0 * I_SCREEN_END_LINE = 0 * I_HTML_HEIGHT_TOP = 0 * I_HTML_HEIGHT_END = 0 * IT_ALV_GRAPHICS = * IT_HYPERLINK = * IT_ADD_FIELDCAT = * IT_EXCEPT_QINFO = * IR_SALV_FULLSCREEN_ADAPTER = * IMPORTING * E_EXIT_CAUSED_BY_CALLER = * ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = head1. "假设数据都在head1内表中 * EXCEPTIONS * PROGRAM_ERROR = 1 * OTHERS = 2
.
IF SY-SUBRC <> 0. * Implement suitable error handling here
ENDIF.
ENDFORM. " DISPLAY_DATA *&---------------------------------------------------------------------* *& Form GETDATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM GETDATA .
SELECT * from ZDSMT_BMXHTJB_D2
into CORRESPONDING FIELDS OF TABLE head1.
LOOP AT head1 .
head1-HH = SY-TABIX.
MODIFY head1.
ENDLOOP. ENDFORM. " GETDATA |
|