REPORT zrfi_pp_trace_list_test.
*----------------------------------------------------------------------*
* TABLE WORKAREA DECLARE *
*----------------------------------------------------------------------*
TABLES bsik.
*----------------------------------------------------------------------*
* DATA DEFINE *
*----------------------------------------------------------------------*
TYPE-POOLS slis.
FIELD-SYMBOLS: TYPE table.
DATA: w_fcat1 TYPE lvc_t_fcat WITH HEADER LINE,
i_head TYPE LINE OF lvc_t_fcat ,
gp_table TYPE REF TO data.
DATA lwk_repid LIKE sy-repid VALUE sy-repid.
DATA: i_fcat TYPE lvc_t_fcat,
pp_field TYPE slis_fieldcat_alv OCCURS 0 WITH HEADER LINE,
w_fcat TYPE lvc_s_fcat,
w_layo TYPE lvc_s_layo,
* w_layo TYPE slis_layout_alv,
i_excluding TYPE slis_t_extab,
gs_sort TYPE lvc_s_sort,
gt_sort TYPE lvc_t_sort,
* gs_sort type LINE OF slis_t_sortinfo_alv,
* gt_sort type slis_t_sortinfo_alv,
gs_event TYPE slis_alv_event,
gt_events TYPE slis_t_event,
gv_txt TYPE slis_t_listheader,
gv_title TYPE lvc_title.
DATA:BEGIN OF gi_list OCCURS 0,
bukrs LIKE bsik-bukrs,
lifnr LIKE bsik-lifnr,
land1 LIKE lfa1-land1,
name1(60) TYPE c,
vertn LIKE bsik-vertn,
bwart(8) TYPE c,
ebeln LIKE bsik-ebeln,
zhong(60) TYPE c,
neirong(20) TYPE c,
dmbtr_g LIKE ekbe-dmbtr,
dmbtr_p LIKE bsik-dmbtr,
waers LIKE bsik-waers,
wrbtr LIKE bsik-wrbtr,
dmbt1 LIKE bsik-dmbtr,
dmbt2 LIKE bsik-dmbtr,
dmbt3 LIKE bsik-dmbtr,
dmbt4 LIKE bsik-dmbtr,
dmbt5 LIKE bsik-dmbtr,
dmbt6 LIKE bsik-dmbtr,
dmbt7 LIKE bsik-dmbtr,
dmbt8 LIKE bsik-dmbtr,
gsber LIKE bsik-gsber,
cbox(1) TYPE c,
END OF gi_list.
RANGES:r_hkont FOR bsik-hkont,
r_budat FOR bsik-budat.
DATA:BEGIN OF gi_temp OCCURS 0,
bukrs LIKE bsik-bukrs,
lifnr LIKE bsik-lifnr,
vertn LIKE bsik-vertn,
bwart(8) TYPE c,
waers LIKE bsik-waers,
ebeln LIKE bsik-ebeln,
ebelp LIKE bsik-ebelp,
budat LIKE bsik-budat,
shkzg LIKE bsik-shkzg,
dmbtr LIKE bsik-dmbtr,
wrbtr LIKE bsik-wrbtr,
gsber LIKE bsik-gsber,
ebeln_t LIKE bsik-ebeln,
END OF gi_temp.
DATA:BEGIN OF gi_pre OCCURS 0,
bukrs LIKE bsik-bukrs,
belnr LIKE bsik-belnr,
gjahr LIKE bsik-gjahr,
buzei LIKE bsik-buzei,
rebzg LIKE bsik-rebzg,
rebzj LIKE bsik-rebzj,
rebzz LIKE bsik-rebzz,
lifnr LIKE bsik-lifnr,
vertn LIKE bsik-vertn,
ebeln LIKE bsik-ebeln,
ebelp LIKE bsik-ebelp,
budat LIKE bsik-budat,
waers LIKE bsik-waers,
shkzg LIKE bsik-shkzg,
dmbtr LIKE bsik-dmbtr,
wrbtr LIKE bsik-wrbtr,
gsber LIKE bsik-gsber,
ebeln_t LIKE bsik-ebeln,
elikz LIKE ekpo-elikz,
bwart(8) TYPE c,
END OF gi_pre.
DATA: BEGIN OF gi_bwart1 OCCURS 0,
shkzg LIKE ekbe-shkzg,
bpmng LIKE ekbe-bpmng,
bpwes LIKE ekbe-bpwes,
END OF gi_bwart1.
DATA: gi_bwart2 LIKE TABLE OF gi_bwart1 WITH HEADER LINE.
DATA:BEGIN OF gi_ekbe OCCURS 0,
ebeln LIKE ekbe-ebeln,
ebelp LIKE ekbe-ebelp,
waers LIKE ekbe-waers,
zekkn LIKE ekbe-zekkn,
vgabe LIKE ekbe-vgabe,
gjahr LIKE ekbe-gjahr,
belnr LIKE ekbe-belnr,
buzei LIKE ekbe-buzei,
shkzg LIKE ekbe-shkzg,
dmbtr LIKE ekbe-dmbtr,
END OF gi_ekbe.
DATA:BEGIN OF gi_ekbet OCCURS 0,
ebeln LIKE ekbe-ebeln,
ebelp LIKE ekbe-ebelp,
waers LIKE ekbe-waers,
dmbtr LIKE ekbe-dmbtr,
END OF gi_ekbet.
DATA: BEGIN OF gi_waers OCCURS 0,
waers LIKE bsik-waers,
ktext LIKE tcurt-ktext,
END OF gi_waers.
DATA:gv_dmbtr LIKE ekbe-dmbtr.
DATA: gv_name1(35) TYPE c.
DATA: gv_name2(35) TYPE c.
DATA: gv_total TYPE p DECIMALS 3.
DATA: gv_i TYPE i.
DATA: gv_amount TYPE p DECIMALS 3.
DATA:gv_date1 TYPE d,
gv_date2 TYPE d,
gv_date3 TYPE d,
gv_date4 TYPE d,
gv_date5 TYPE d,
gv_date6 TYPE d,
gv_date7 TYPE d,
gv_date8 TYPE d.
*----------------------------------------------------------------------*
* SELECTION-SCREEN *
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:s_bukrs FOR bsik-bukrs OBLIGATORY,
s_gsber FOR bsik-gsber,
s_vertn FOR bsik-vertn,
s_lifnr FOR bsik-lifnr.
PARAMETERS p_budat LIKE bsik-budat OBLIGATORY DEFAULT sy-datum.
SELECTION-SCREEN END OF BLOCK block1.
*----------------------------------------------------------------------*
* INITIALIZATION *
*----------------------------------------------------------------------*
INITIALIZATION.
lwk_repid = sy-repid.
CLEAR:r_hkont,r_hkont[].
r_hkont-sign = 'I'.
r_hkont-option = 'EQ'.
r_hkont-low = '0000115001'.
APPEND r_hkont.
CLEAR r_hkont-low.
r_hkont-low = '0000115002'.
APPEND r_hkont.
CLEAR r_hkont.
*----------------------------------------------------------------------*
* START-OF-SELECTION *
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM frm_get_data.
PERFORM frm_fieldcat_build.
PERFORM frm_alv_list.
*&---------------------------------------------------------------------*
*& Form frm_get_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_get_data.
gv_date1 = p_budat.
gv_date2 = gv_date1 - 90.
gv_date3 = gv_date2 - 90.
gv_date4 = gv_date3 - 180.
gv_date5 = gv_date4 - 360.
gv_date6 = gv_date5 - 360.
gv_date7 = gv_date6 - 360.
gv_date8 = gv_date7 - 360.
CLEAR:r_budat,r_budat[].
r_budat-sign = 'I'.
r_budat-option = 'BT'.
r_budat-low = '00010101'.
r_budat-high = p_budat.
APPEND r_budat.
CLEAR r_budat.
CLEAR:gi_pre,gi_pre[],gi_temp,gi_temp[].
SELECT bsik~bukrs
bsik~belnr
bsik~gjahr
bsik~buzei
bsik~rebzg
bsik~rebzj
bsik~rebzz
bsik~lifnr
bsik~vertn
bsik~ebeln
bsik~ebelp
bsik~budat
bsik~waers
bsik~shkzg
bsik~dmbtr
bsik~wrbtr
bsik~gsber
ekpo~elikz
INTO CORRESPONDING FIELDS OF TABLE gi_pre
FROM bsik LEFT JOIN ekpo
ON ekpo~ebeln = bsik~ebeln
AND ekpo~ebelp = bsik~ebelp
WHERE bsik~bukrs IN s_bukrs
AND bsik~hkont IN r_hkont
AND bsik~lifnr IN s_lifnr
AND bsik~vertn IN s_vertn
AND bsik~budat IN r_budat
AND bsik~gsber IN s_gsber.
CLEAR gv_i.
LOOP AT gi_pre WHERE NOT ebeln IS INITIAL AND NOT ebelp IS INITIAL.
gv_i = sy-tabix.
IF gi_pre-elikz = 'X'.
gi_pre-bwart = '105(101)'.
ELSE.
REFRESH: gi_bwart1[],gi_bwart2[].
SELECT shkzg bpmng bpwes
INTO CORRESPONDING FIELDS OF TABLE gi_bwart1
FROM ekbe
WHERE ekbe~ebeln = gi_pre-ebeln
AND ekbe~ebelp = gi_pre-ebelp
AND ekbe~bewtp = 'E'.
IF gi_bwart1[] IS INITIAL.
gi_pre-bwart = ''.
ELSE.
LOOP AT gi_bwart1.
IF gi_bwart1-shkzg = 'H'.
gi_bwart1-bpmng = 0 - gi_bwart1-bpmng.
gi_bwart1-bpwes = 0 - gi_bwart1-bpwes.
ENDIF.
COLLECT gi_bwart1 INTO gi_bwart2.
ENDLOOP.
READ TABLE gi_bwart2 INDEX 1.
gv_total = gi_bwart2-bpmng + gi_bwart2-bpwes .
IF gv_total > 0.
gi_pre-bwart = '103'.
ELSE.
gi_pre-bwart = ''.
ENDIF.
ENDIF.
ENDIF.
MODIFY gi_pre INDEX gv_i.
ENDLOOP.
SELECT bukrs
belnr
gjahr
buzei
rebzg
rebzj
rebzz
lifnr
vertn
ebeln
ebelp
budat
waers
shkzg
dmbtr
wrbtr
gsber
APPENDING CORRESPONDING FIELDS OF TABLE gi_pre
FROM bsak
WHERE bukrs IN s_bukrs
AND hkont IN r_hkont
AND lifnr IN s_lifnr
AND vertn IN s_vertn
AND augdt <= sy-datum
AND augdt > p_budat
AND gsber IN s_gsber
AND shkzg = 'S'.
IF gi_pre[] IS INITIAL.
MESSAGE i208(00) WITH text-not.
STOP.
ENDIF.
LOOP AT gi_pre.
IF gi_pre-shkzg = 'H'.
SELECT SINGLE budat
INTO gi_pre-budat
FROM bsik
WHERE bukrs = gi_pre-bukrs
AND belnr = gi_pre-rebzg
AND gjahr = gi_pre-rebzj
AND buzei = gi_pre-rebzz.
IF sy-subrc <> 0.
SELECT SINGLE budat
INTO gi_pre-budat
FROM bsak
WHERE bukrs = gi_pre-bukrs
AND belnr = gi_pre-rebzg
AND gjahr = gi_pre-rebzj
AND buzei = gi_pre-rebzz.
ENDIF.
ENDIF.
MOVE-CORRESPONDING gi_pre TO gi_temp.
COLLECT gi_temp.
CLEAR:gi_pre,gi_temp.
ENDLOOP.
LOOP AT gi_temp.
gi_temp-ebeln_t = gi_temp-ebeln.
MODIFY gi_temp TRANSPORTING ebeln_t.
CLEAR gi_temp.
ENDLOOP.
SORT gi_temp STABLE ASCENDING BY bukrs lifnr vertn bwart waers ebeln gsber.
SELECT ebeln
ebelp
zekkn
vgabe
gjahr
belnr
buzei
shkzg
dmbtr
waers
INTO CORRESPONDING FIELDS OF TABLE gi_ekbe
FROM ekbe
FOR ALL ENTRIES IN gi_temp
WHERE ebeln = gi_temp-ebeln_t
AND vgabe = '1'.
IF sy-subrc = 0.
SORT gi_ekbe STABLE ASCENDING BY ebeln ebelp waers.
CLEAR:gi_ekbet,gi_ekbet[],gv_dmbtr.
LOOP AT gi_ekbe.
IF gi_ekbe-shkzg = 'S'.
gv_dmbtr = gv_dmbtr + gi_ekbe-dmbtr.
ELSEIF gi_ekbe-shkzg = 'H'.
gv_dmbtr = gv_dmbtr - gi_ekbe-dmbtr.
ENDIF.
gi_ekbet-ebeln = gi_ekbe-ebeln.
gi_ekbet-ebelp = gi_ekbe-ebelp.
gi_ekbet-waers = gi_ekbe-waers.
AT END OF waers.
IF gv_dmbtr <> 0.
gi_ekbet-dmbtr = gv_dmbtr.
APPEND gi_ekbet.
ENDIF.
CLEAR:gi_ekbet,gv_dmbtr.
ENDAT.
CLEAR gi_ekbe.
ENDLOOP.
IF NOT gi_ekbet[] IS INITIAL.
SORT gi_ekbet STABLE ASCENDING BY ebeln.
ENDIF.
ENDIF.
CLEAR:gi_list,gi_list[].
LOOP AT gi_temp.
gi_list-bukrs = gi_temp-bukrs.
gi_list-lifnr = gi_temp-lifnr.
IF NOT gi_list-lifnr IS INITIAL.
CLEAR: gv_name1,gv_name2.
SELECT SINGLE land1 name1 name3
INTO (gi_list-land1, gv_name1, gv_name2)
FROM lfa1
WHERE lfa1~lifnr = gi_list-lifnr.
CONCATENATE gv_name1 gv_name2 INTO gi_list-name1.
ENDIF.
gi_list-vertn = gi_temp-vertn.
gi_list-waers = gi_temp-waers.
gi_list-ebeln = gi_temp-ebeln.
gi_list-gsber = gi_temp-gsber.
gi_list-bwart = gi_temp-bwart.
IF NOT gi_temp-ebeln_t IS INITIAL.
READ TABLE gi_ekbet WITH KEY ebeln = gi_temp-ebeln_t
ebelp = gi_temp-ebelp
waers = gi_temp-waers
BINARY SEARCH.
IF sy-subrc = 0.
gi_list-dmbtr_g = gi_ekbet-dmbtr.
ENDIF.
ENDIF.
IF gi_temp-shkzg = 'H'.
gi_temp-dmbtr = 0 - gi_temp-dmbtr.
gi_temp-wrbtr = 0 - gi_temp-wrbtr.
ENDIF.
gi_list-dmbtr_p = gi_list-dmbtr_p + gi_temp-dmbtr.
IF gi_temp-waers <> 'RMB'.
gi_list-wrbtr = gi_list-wrbtr + gi_temp-wrbtr.
ENDIF.
IF gi_temp-budat <= gv_date1 AND gi_temp-budat > gv_date2.
gi_list-dmbt1 = gi_list-dmbt1 + gi_temp-dmbtr.
ELSEIF gi_temp-budat <= gv_date2 AND gi_temp-budat > gv_date3.
gi_list-dmbt2 = gi_list-dmbt2 + gi_temp-dmbtr.
ELSEIF gi_temp-budat <= gv_date3 AND gi_temp-budat > gv_date4.
gi_list-dmbt3 = gi_list-dmbt3 + gi_temp-dmbtr.
ELSEIF gi_temp-budat <= gv_date4 AND gi_temp-budat > gv_date5.
gi_list-dmbt4 = gi_list-dmbt4 + gi_temp-dmbtr.
ELSEIF gi_temp-budat <= gv_date5 AND gi_temp-budat > gv_date6.
gi_list-dmbt5 = gi_list-dmbt5 + gi_temp-dmbtr.
ELSEIF gi_temp-budat <= gv_date6 AND gi_temp-budat > gv_date7.
gi_list-dmbt6 = gi_list-dmbt6 + gi_temp-dmbtr.
ELSEIF gi_temp-budat <= gv_date7 AND gi_temp-budat > gv_date8.
gi_list-dmbt7 = gi_list-dmbt7 + gi_temp-dmbtr.
ELSEIF gi_temp-budat <= gv_date8.
gi_list-dmbt8 = gi_list-dmbt8 + gi_temp-dmbtr.
ENDIF.
AT END OF ebeln.
IF gi_list-dmbtr_p <> 0.
IF NOT gi_list-vertn IS INITIAL .
gi_list-neirong = '资产'.
IF gi_list-bwart ='' AND NOT gi_list-ebeln IS INITIAL.
gi_list-zhong = '预付购买固定资产款'.
ELSEIF gi_list-bwart = '103' AND NOT gi_list-ebeln IS INITIAL.
gi_list-zhong = '固定资产已到,需安装,测试,未转入固定资产'.
ELSEIF gi_list-bwart = '105(101)' AND NOT gi_list-ebeln IS INITIAL.
gi_list-zhong = '固定资产已到, 需安裝,测验 , 已暂估转入固定资产'.
ENDIF.
ELSEIF NOT gi_list-ebeln IS INITIAL.
gi_list-neirong = '材料'.
ELSE.
gi_list-neirong = '其它'.
ENDIF.
APPEND gi_list.
CLEAR gi_list.
ENDIF.
ENDAT.
CLEAR:gi_temp,gi_ekbet.
ENDLOOP.
SORT gi_list STABLE ASCENDING BY bukrs lifnr vertn ebeln.
ENDFORM. "frm_get_data
*&---------------------------------------------------------------------*
*& Form frm_fieldcat_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_fieldcat_build.
FIELD-SYMBOLS: ,
.
CLEAR:i_fcat[].
CLEAR w_fcat.
w_fcat-fieldname = 'BUKRS'.
w_fcat-coltext = '公司代码'.
w_fcat-outputlen = 8.
w_fcat-no_merging = 'X'.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'GSBER'.
w_fcat-coltext = '业务范围'.
w_fcat-outputlen = 8.
w_fcat-no_merging = 'X'.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'LIFNR'.
w_fcat-coltext = '供应商代码'.
w_fcat-outputlen = 10.
w_fcat-no_merging = 'X'.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'NAME1'.
w_fcat-coltext = '供应商名称'.
w_fcat-outputlen = 60.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'LAND1'.
w_fcat-coltext = '供应商国家'.
w_fcat-outputlen = 3.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'VERTN'.
w_fcat-coltext = '合同号'.
w_fcat-outputlen = 13.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'EBELN'.
w_fcat-coltext = '采购订单号'.
w_fcat-outputlen = 10.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'BWART'.
w_fcat-coltext = '采购订单状态'.
w_fcat-outputlen = 10.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'ZHONG'.
w_fcat-coltext = '预付帐款种类'.
w_fcat-outputlen = 60.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'NEIRONG'.
w_fcat-coltext = '主要内容'.
w_fcat-outputlen = 8.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'DMBTR_G'.
w_fcat-coltext = '暂估数'.
w_fcat-outputlen = 20.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'DMBTR_P'.
w_fcat-coltext = '预付'.
w_fcat-outputlen = 20.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'WAERS'.
w_fcat-coltext = '币别'.
w_fcat-outputlen = 4.
APPEND w_fcat TO i_fcat.
* CLEAR w_fcat.
* w_fcat-fieldname = 'WRBTR'.
* w_fcat-coltext = '外币金额'.
* w_fcat-outputlen = 20.
* APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'DMBT1'.
w_fcat-coltext = '1~90天'.
w_fcat-outputlen = 20.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'DMBT2'.
w_fcat-coltext = '90~180天'.
w_fcat-outputlen = 20.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'DMBT3'.
w_fcat-coltext = '180~360天'.
w_fcat-outputlen = 20.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'DMBT4'.
w_fcat-coltext = '1~2年'.
w_fcat-outputlen = 20.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'DMBT5'.
w_fcat-coltext = '2~3年'.
w_fcat-outputlen = 20.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'DMBT6'.
w_fcat-coltext = '3~4年'.
w_fcat-outputlen = 20.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'DMBT7'.
w_fcat-coltext = '4~5年'.
w_fcat-outputlen = 20.
APPEND w_fcat TO i_fcat.
CLEAR w_fcat.
w_fcat-fieldname = 'DMBT8'.
w_fcat-coltext = '5年以上'.
w_fcat-outputlen = 20.
APPEND w_fcat TO i_fcat.
LOOP AT gi_list.
gi_waers-waers = gi_list-waers.
COLLECT gi_waers.
ENDLOOP.
SORT gi_waers BY waers.
DELETE ADJACENT DUPLICATES FROM gi_waers COMPARING ALL FIELDS.
LOOP AT gi_waers.
SELECT SINGLE ktext FROM tcurt
INTO gi_waers-ktext
WHERE spras = '1' AND waers = gi_waers-waers.
MODIFY gi_waers.
CLEAR w_fcat.
w_fcat-fieldname = gi_waers-waers.
w_fcat-coltext = gi_waers-ktext.
* w_fcat-inttype = 'N'.
w_fcat-outputlen = 20.
* w_fcat-no_zero = 'X'.
APPEND w_fcat TO i_fcat.
ENDLOOP.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = i_fcat
IMPORTING
ep_table = gp_table.
ASSIGN gp_table->* TO .
ASSIGN LOCAL COPY OF INITIAL LINE OF TO .
DATA: gv_factor TYPE p DECIMALS 3.
LOOP AT gi_list.
MOVE-CORRESPONDING gi_list TO .
ASSIGN COMPONENT gi_list-waers OF STRUCTURE TO .
IF gi_list-wrbtr <> 0 AND gi_list-waers <> 'RMB'.
CLEAR gv_factor.
CALL FUNCTION 'CURRENCY_CONVERTING_FACTOR'
EXPORTING
currency = gi_list-waers
IMPORTING
factor = gv_factor
EXCEPTIONS
too_many_decimals = 1
OTHERS = 2.
= gi_list-wrbtr * gv_factor.
ELSEIF gi_list-waers = 'RMB'.
= gi_list-dmbtr_p.
ENDIF.
APPEND TO .
CLEAR .
ENDLOOP.
ENDFORM. "frm_fieldcat_build
*&---------------------------------------------------------------------*
*& Form frm_alv_list
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_alv_list.
CLEAR w_layo.
w_layo-zebra = 'X'.
w_layo-cwidth_opt = 'X'.
gv_title = '注:报表以30天为1个自然月进行计算'.
CLEAR:gt_sort[].
CLEAR gs_sort.
gs_sort-spos = 1.
gs_sort-fieldname = 'BUKRS'.
gs_sort-up = 'X'.
APPEND gs_sort TO gt_sort.
CLEAR gs_sort.
gs_sort-spos = 2.
gs_sort-fieldname = 'GSBER'.
gs_sort-up = 'X'.
APPEND gs_sort TO gt_sort.
CLEAR gs_sort.
gs_sort-spos = 3.
gs_sort-fieldname = 'LIFNR'.
gs_sort-up = 'X'.
APPEND gs_sort TO gt_sort.
CLEAR gs_sort.
gs_sort-spos = 4.
gs_sort-fieldname = 'VERTN'.
gs_sort-up = 'X'.
APPEND gs_sort TO gt_sort.
CLEAR gs_sort.
gs_sort-spos = 5.
gs_sort-fieldname = 'EBELN'.
gs_sort-up = 'X'.
APPEND gs_sort TO gt_sort.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = lwk_repid
is_layout_lvc = w_layo
it_fieldcat_lvc = i_fcat
i_bypassing_buffer = 'X'
i_default = 'X'
i_save = 'U'
i_grid_title = gv_title
it_sort_lvc = gt_sort[]
TABLES
t_outtab =
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. "frm_alv_list
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23495244/viewspace-692319/
,如需转载,请注明出处,否则将追究法律责任。