您的位置:首页 > 其它

ALV最后一行加合计(笨方法)计算好放到最后一行

2015-04-27 15:04 134 查看
type-pools:slis.

TYPES:BEGIN OF ty_itab,

chk,

carrid TYPE spfli-carrid,

connid TYPE spfli-connid,

distance TYPE spfli-distance,

END OF ty_itab.

DATA:lt_itab TYPE TABLE OF ty_itab.

DATA:ls_itab TYPE ty_itab.

DATA:nn TYPE spfli-distance.

DATA:ws_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,

ws_fieldgroups_tab TYPE slis_t_sp_group_alv,

ws_layout TYPE slis_layout_alv,

ws_sortfields_tab TYPE slis_t_sortinfo_alv WITH HEADER LINE,

ws_events TYPE slis_t_event,

l_user_command TYPE slis_formname,

i_event TYPE slis_t_event..

FIELD-SYMBOLS:<fs> TYPE ty_itab.

DATA:i_sort TYPE slis_t_sortinfo_alv,

wa_sort TYPE slis_sortinfo_alv.

START-OF-SELECTION.

CLEAR nn.

SELECT carrid connid distance

FROM spfli

INto CORRESPONDING FIELDS OF TABLE lt_itab.

LOOP AT lt_itab ASSIGNING <fs>.

nn = nn + <fs>-distance.

ENDLOOP.

ls_itab-carrid = '合计'.

ls_itab-distance = nn.

APPEND ls_itab to lt_itab.

CLEAR ls_itab.

DEFINE hout.

ws_fieldcat-fieldname = &1.

ws_fieldcat-seltext_m = &2.

ws_fieldcat-edit = &3.

ws_fieldcat-quantity = &4.

ws_fieldcat-ref_tabname = &5.

ws_fieldcat-ref_fieldname = &6.

ws_fieldcat-no_zero = &7.

ws_fieldcat-do_sum = &8.

if &1 = 'CHK'.

ws_fieldcat-checkbox = 'X'.

endif.

append ws_fieldcat.

clear ws_fieldcat.

END-OF-DEFINITION.

hout:

'CARRID' '航班' '' '' '' '' '' '' ,

'CONNID' '航线' '' '' '' '' '' '' ,

'DISTANCE' '距离' '' '' '' '' '' '' .

ws_layout-zebra = 'X'.

ws_layout-get_selinfos = 'X'.

ws_layout-colwidth_optimize = 'X'.

ws_layout-detail_popup = 'X'.

ws_layout-box_fieldname = 'CHK'.

DATA:g_reid like sy-repid.

g_reid = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = g_reid

* i_callback_top_of_page = 'SUB_ALV_TOP_OF_PAGE'

is_layout = ws_layout

it_fieldcat = ws_fieldcat[]

* it_events = i_event

* I_CALLBACK_USER_COMMAND = L_USER_COMMAND

* I_CALLBACK_PF_STATUS_SET = 'FRM_SET_STATUS'

* IT_SPECIAL_GROUPS = WS_FIELDGROUPS_TAB[]

it_sort = i_sort

* I_GRID_SETTINGS = GS_SETTINGS

i_default = 'X'

i_save = 'A'

TABLES

t_outtab = lt_itab

EXCEPTIONS

program_error = 1

OTHERS = 2.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐