出货明细表,反正都是差不多的,ALV显示呗。以后一定要记得即时写Blog。还是不多说了,直接上code
- *&---------------------------------------------------------------------*
- *& Report ZSD018
- *&---------------------------------------------------------------------*
- * Author : Jasson.Lee
- * Date : 2011.12.08
- * Purpose :
- * Modi Log: 2011.12.08 Jasson.Lee Create
- * Modi Log:
- * Modi Log:
- * Modi Log:
- *----------------------------------------------------------------------
- REPORT zsd018.
- TABLES: likp,vttp.
- TYPE-POOLS: slis.
- *--------------------------------
- * Selection Screen
- *--------------------------------
- SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
- SELECT-OPTIONS:
- s_num FOR likp-vbeln, "送货单
- s_date FOR likp-bldat.
- SELECTION-SCREEN END OF BLOCK b1.
- *****************************************************************************
- DATA: g_status TYPE slis_formname VALUE 'STANDARD_02'. "加工具栏
- DATA:
- i_fieldcat_alv TYPE slis_t_fieldcat_alv,
- i_fieldcat TYPE slis_fieldcat_alv,
- i_layout TYPE slis_layout_alv,
- i_events TYPE slis_t_event,
- w_events LIKE LINE OF i_events,
- i_list_comments TYPE slis_t_listheader,
- w_list_comments LIKE LINE OF i_list_comments,
- w_repid LIKE sy-repid.
- DATA:
- w_loop TYPE sy-tabix.
- * l_prod_num1 type co_psmng,
- * l_prod_num2 type co_psmng.
- DATA: BEGIN OF i_tab1 OCCURS 0,
- vbeln LIKE likp-vbeln,
- tknum LIKE vttk-tknum,
- exti1 LIKE vttk-exti1,
- exti2 LIKE vttk-exti2,
- END OF i_tab1.
- DATA: BEGIN OF i_tab2 OCCURS 0,
- vbeln LIKE likp-vbeln, "送货编号
- posnr LIKE lips-posnr, "行项号
- bldat LIKE likp-bldat, "凭证日期
- kunnr LIKE likp-kunnr, "送达方
- wadat LIKE likp-wadat, "计划货物移动日期
- * wadat_ist like likp-wadat_ist, "实际货物移动日期
- anzpk LIKE likp-anzpk, "包数
- lfimg LIKE lips-lfimg, "交货数量
- matnr LIKE lips-matnr, "物料号
- tknum LIKE vttk-tknum, "装运编号
- exti1 LIKE vttk-exti1, "外部标识1 运输公司
- exti2 LIKE vttk-exti2, "外部标识2 司机/车牌号
- vgpos LIKE lips-vgpos, "参考项目的项目号
- END OF i_tab2.
- DATA: BEGIN OF i_tab3 OCCURS 0,
- vbeln LIKE likp-vbeln,
- posnr LIKE lips-posnr,
- vgpos LIKE lips-vgpos,
- END OF i_tab3.
- *data :p_coco like knb1-bukrs.
- *data :w_total(10) type c.
- *data :w_loop1 like sy-tabix.
- *data :w_loop2 like sy-tabix.
- *data :w_loop3 like sy-tabix.
- DATA scount(8).
- DATA :rcount LIKE sy-tabix.
- DATA lstr(20).
- DATA lpos(6).
- *data lstr1(40).
- *data lstr2(40).
- *data lstr3(100).
- *data lstr4(40).
- *data lstr5(40).
- *--------------------------------
- * Initialization
- *--------------------------------
- INITIALIZATION.
- *--------------------------------
- * At Selection Screen PBO
- *--------------------------------
- AT SELECTION-SCREEN OUTPUT.
- *--------------------------------
- * Start of Selection
- *--------------------------------
- START-OF-SELECTION.
- PERFORM get_data.
- PERFORM process_data.
- * perform cal_data.
- PERFORM events_build.
- PERFORM layout_build.
- PERFORM fields_build.
- PERFORM display_data.
- END-OF-SELECTION.
- *--------------------------------
- * Top of Page
- *--------------------------------
- TOP-OF-PAGE.
- *&---------------------------------------------------------------------*
- *& Form get_data
- *&---------------------------------------------------------------------*
- FORM get_data.
- SELECT k~vbeln p~posnr k~bldat k~kunnr k~wadat k~anzpk p~lfimg p~matnr p~vgpos
- INTO CORRESPONDING FIELDS OF TABLE i_tab2
- FROM likp AS k INNER JOIN lips AS p ON k~vbeln = p~vbeln
- WHERE k~vbeln IN s_num
- AND k~bldat IN s_date
- AND p~lfimg > 0 .
- IF i_tab2[] IS INITIAL .
- MESSAGE i000(zmsg) WITH '没找到对应的数据,请更改查询条件'.
- LEAVE LIST-PROCESSING .
- ELSE.
- SELECT p~vbeln k~tknum k~exti1 k~exti2
- INTO TABLE i_tab1
- FROM vttk AS k INNER JOIN vttp AS p ON k~tknum = p~tknum
- FOR ALL ENTRIES IN i_tab2
- WHERE p~vbeln = i_tab2-vbeln.
- SELECT p~vbeln p~posnr p~vgpos
- INTO TABLE i_tab3
- FROM lips AS p
- FOR ALL ENTRIES IN i_tab2
- WHERE p~vbeln = i_tab2-vbeln AND p~posnr < '900001'.
- ENDIF.
- ENDFORM. "get_data
- *&---------------------------------------------------------------------*
- *& Form process_data
- *&---------------------------------------------------------------------*
- FORM process_data.
- LOOP AT i_tab2.
- w_loop = sy-tabix.
- CLEAR i_tab1.
- READ TABLE i_tab1 WITH KEY vbeln = i_tab2-vbeln BINARY SEARCH.
- IF sy-subrc = 0.
- i_tab2-tknum = i_tab1-tknum.
- i_tab2-exti1 = i_tab1-exti1.
- i_tab2-exti2 = i_tab1-exti2.
- ENDIF.
- READ TABLE i_tab3 WITH KEY vbeln = i_tab2-vbeln
- vgpos = i_tab2-vgpos.
- IF sy-subrc = 0.
- i_tab2-posnr = i_tab3-posnr.
- ENDIF.
- MODIFY i_tab2 INDEX w_loop.
- sy-tabix = w_loop + 1.
- ENDLOOP.
- ENDFORM. "process_data
- *&---------------------------------------------------------------------*
- *& Form CAL_DATA
- *&---------------------------------------------------------------------*
- FORM cal_data .
- DESCRIBE TABLE i_tab2 LINES rcount.
- scount = rcount.
- CONCATENATE '符合条件的记录数:' scount INTO lstr.
- IF i_tab2[] IS INITIAL .
- MESSAGE i000(zmsg) WITH '没找到对应的数据,请更改查询条件'.
- LEAVE LIST-PROCESSING .
- ENDIF.
- ENDFORM. " CAL_DATA
- *&---------------------------------------------------------------------*
- *& Form EVENTS_BUILD
- *&---------------------------------------------------------------------*
- FORM events_build .
- CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
- EXPORTING
- i_list_type = 0
- IMPORTING
- et_events = i_events.
- * read table i_events with key name = 'END_OF_LIST' into w_events.
- * if sy-subrc = 0.
- * move 'ALV_END_OF_LIST' to w_events-form.
- * modify i_events from w_events index sy-tabix.
- * endif.
- READ TABLE i_events WITH KEY name = 'USER_COMMAND' INTO w_events.
- IF sy-subrc = 0.
- MOVE 'USER_COMMAND' TO w_events-form.
- MODIFY i_events FROM w_events INDEX sy-tabix.
- ENDIF.
- ENDFORM. " EVENTS_BUILD
- *&--------------------------------------------------------------------*
- *& Form ALV_END_OF_LIST
- *&--------------------------------------------------------------------*
- FORM alv_top_of_page.
- CLEAR: i_list_comments.
- w_list_comments-typ = 'H'.
- w_list_comments-key = ''.
- w_list_comments-info = ' '.
- APPEND w_list_comments TO i_list_comments.
- CLEAR w_list_comments.
- CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
- EXPORTING
- it_list_commentary = i_list_comments
- i_end_of_list_grid = 'X'.
- ENDFORM. "ALV_TOP_OF_PAGE
- *&--------------------------------------------------------------------*
- *& Form ALV_END_OF_LIST
- *&--------------------------------------------------------------------*
- FORM alv_end_of_list.
- CLEAR: i_list_comments.
- w_list_comments-typ = 'H'.
- w_list_comments-key = ''.
- w_list_comments-info = lstr.
- APPEND w_list_comments TO i_list_comments.
- CLEAR w_list_comments.
- w_list_comments-typ = 'S'.
- w_list_comments-key = ''.
- w_list_comments-info = ' 报表开发者:IT部 开发日期:2011/12/08'.
- APPEND w_list_comments TO i_list_comments.
- CLEAR w_list_comments.
- CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
- EXPORTING
- it_list_commentary = i_list_comments
- i_end_of_list_grid = 'X'.
- ENDFORM. "ALV_END_OF_LIST
- *&---------------------------------------------------------------------*
- *& Form LAYOUT_BUILD
- *&---------------------------------------------------------------------*
- FORM layout_build .
- i_layout-zebra = 'X' . " 显示界面成色带交替
- i_layout-detail_popup = 'X'. "弹出详细信息窗口
- i_layout-info_fieldname = 'COLOR'. "颜色值
- * I_LAYOUT-COLWIDTH_OPTIMIZE = 'X'. "优化列宽选项
- i_layout-detail_initial_lines = 'X'.
- i_layout-detail_titlebar = 'Delivery Status'.
- i_layout-no_colhead =' '.
- * I_LAYOUT-BOX_FIELDNAME = 'BOX' . " 指明复选框
- w_repid = sy-repid.
- ENDFORM. " LAYOUT_BUILD
- *&---------------------------------------------------------------------*
- *& Form DISPLAY_DATA
- *&---------------------------------------------------------------------*
- FORM display_data .
- CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
- * call function 'REUSE_ALV_LIST_DISPLAY'
- EXPORTING
- i_callback_user_command = 'USER_COMMAND' "用户触发事件
- i_callback_pf_status_set = g_status "调用用户事件和按钮事件
- i_callback_program = w_repid "当前程序
- is_layout = i_layout "子函数layout_build填充的格式定义
- it_fieldcat = i_fieldcat_alv[] "子函数fields填充的各列
- it_events = i_events[]
- i_save = 'A' "保存变式
- TABLES
- t_outtab = i_tab2. "假设数据都在itab内表中
- ENDFORM. " DISPLAY_DATA
- *-----------------------------------------------------------------------
- * FORM PF_STATUS_SET 加工具栏
- *-----------------------------------------------------------------------
- FORM standard_02 USING extab TYPE slis_t_extab.
- SET PF-STATUS 'STD' EXCLUDING extab.
- ENDFORM. "STANDARD_02
- *&---------------------------------------------------------------------*
- *& Form USER_COMMAND
- *&---------------------------------------------------------------------*
- FORM user_command USING i_ucomm LIKE sy-ucomm
- selfield TYPE slis_selfield.
- CASE i_ucomm.
- WHEN '&IC1'.
- CASE selfield-sel_tab_field.
- WHEN '1-VBELN'.
- SET PARAMETER ID 'VL' FIELD selfield-value.
- CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
- WHEN '1-TKNUM'.
- SET PARAMETER ID 'TNR' FIELD selfield-value.
- CALL TRANSACTION 'VT03N' AND SKIP FIRST SCREEN.
- ENDCASE.
- WHEN OTHERS.
- ENDCASE.
- ENDFORM. "callback_ucomm
- *&---------------------------------------------------------------------*
- *& Form FIELDS_BUILD
- *&---------------------------------------------------------------------*
- FORM fields_build .
- DATA tmp_pos TYPE i.
- REFRESH i_fieldcat_alv.
- CLEAR i_fieldcat.
- tmp_pos = tmp_pos + 1.
- i_fieldcat-col_pos = tmp_pos.
- i_fieldcat-fieldname = 'VBELN'.
- i_fieldcat-seltext_l = '送货单号'.
- i_fieldcat-outputlen = 10.
- i_fieldcat-no_zero = 'X'.
- i_fieldcat-key = 'X'.
- APPEND i_fieldcat TO i_fieldcat_alv.
- CLEAR i_fieldcat.
- tmp_pos = tmp_pos + 1.
- i_fieldcat-col_pos = tmp_pos.
- i_fieldcat-fieldname = 'POSNR'.
- i_fieldcat-seltext_l = '行项'.
- i_fieldcat-outputlen = 6.
- i_fieldcat-no_zero = 'X'.
- i_fieldcat-key = 'X'.
- APPEND i_fieldcat TO i_fieldcat_alv.
- CLEAR i_fieldcat.
- tmp_pos = tmp_pos + 1.
- i_fieldcat-col_pos = tmp_pos.
- i_fieldcat-fieldname = 'KUNNR'.
- i_fieldcat-seltext_l = '送达方'.
- i_fieldcat-outputlen = 10.
- APPEND i_fieldcat TO i_fieldcat_alv.
- CLEAR i_fieldcat.
- tmp_pos = tmp_pos + 1.
- i_fieldcat-col_pos = tmp_pos.
- i_fieldcat-fieldname = 'BLDAT'.
- i_fieldcat-seltext_l = '凭证日期'.
- i_fieldcat-outputlen = 10.
- APPEND i_fieldcat TO i_fieldcat_alv.
- CLEAR i_fieldcat.
- tmp_pos = tmp_pos + 1.
- i_fieldcat-col_pos = tmp_pos.
- i_fieldcat-fieldname = 'WADAT'.
- i_fieldcat-seltext_l = '计划货物移动日期'.
- i_fieldcat-outputlen = 16.
- APPEND i_fieldcat TO i_fieldcat_alv.
- CLEAR i_fieldcat.
- tmp_pos = tmp_pos + 1.
- i_fieldcat-col_pos = tmp_pos.
- i_fieldcat-fieldname = 'ANZPK'.
- i_fieldcat-seltext_l = '包数'.
- i_fieldcat-outputlen = 5.
- i_fieldcat-no_zero = 'X'.
- APPEND i_fieldcat TO i_fieldcat_alv.
- CLEAR i_fieldcat.
- tmp_pos = tmp_pos + 1.
- i_fieldcat-col_pos = tmp_pos.
- i_fieldcat-fieldname = 'LFIMG'.
- i_fieldcat-seltext_l = '数量'.
- i_fieldcat-outputlen = 8.
- i_fieldcat-no_zero = 'X'.
- APPEND i_fieldcat TO i_fieldcat_alv.
- CLEAR i_fieldcat.
- tmp_pos = tmp_pos + 1.
- i_fieldcat-col_pos = tmp_pos.
- i_fieldcat-fieldname = 'MATNR'.
- i_fieldcat-seltext_l = '物料号'.
- i_fieldcat-outputlen = 15.
- APPEND i_fieldcat TO i_fieldcat_alv.
- CLEAR i_fieldcat.
- tmp_pos = tmp_pos + 1.
- i_fieldcat-col_pos = tmp_pos.
- i_fieldcat-fieldname = 'TKNUM'.
- i_fieldcat-seltext_l = '装运号'.
- i_fieldcat-outputlen = 9.
- i_fieldcat-no_zero = 'X'.
- APPEND i_fieldcat TO i_fieldcat_alv.
- CLEAR i_fieldcat.
- tmp_pos = tmp_pos + 1.
- i_fieldcat-col_pos = tmp_pos.
- i_fieldcat-fieldname = 'EXTI1'.
- i_fieldcat-seltext_l = '商号名称'.
- i_fieldcat-outputlen = 12.
- APPEND i_fieldcat TO i_fieldcat_alv.
- CLEAR i_fieldcat.
- tmp_pos = tmp_pos + 1.
- i_fieldcat-col_pos = tmp_pos.
- i_fieldcat-fieldname = 'EXTI2'.
- i_fieldcat-seltext_l = '带货人/车'.
- i_fieldcat-outputlen = 15.
- APPEND i_fieldcat TO i_fieldcat_alv.
- CLEAR i_fieldcat.
- ENDFORM. " FIELDS_BUILD
*&---------------------------------------------------------------------*
*& Report ZSD018
*&---------------------------------------------------------------------*
* Author : Jasson.Lee
* Date : 2011.12.08
* Purpose :
* Modi Log: 2011.12.08 Jasson.Lee Create
* Modi Log:
* Modi Log:
* Modi Log:
*----------------------------------------------------------------------
REPORT zsd018.
TABLES: likp,vttp.
TYPE-POOLS: slis.
*--------------------------------
* Selection Screen
*--------------------------------
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:
s_num FOR likp-vbeln, "送货单
s_date FOR likp-bldat.
SELECTION-SCREEN END OF BLOCK b1.
*****************************************************************************
DATA: g_status TYPE slis_formname VALUE 'STANDARD_02'. "加工具栏
DATA:
i_fieldcat_alv TYPE slis_t_fieldcat_alv,
i_fieldcat TYPE slis_fieldcat_alv,
i_layout TYPE slis_layout_alv,
i_events TYPE slis_t_event,
w_events LIKE LINE OF i_events,
i_list_comments TYPE slis_t_listheader,
w_list_comments LIKE LINE OF i_list_comments,
w_repid LIKE sy-repid.
DATA:
w_loop TYPE sy-tabix.
* l_prod_num1 type co_psmng,
* l_prod_num2 type co_psmng.
DATA: BEGIN OF i_tab1 OCCURS 0,
vbeln LIKE likp-vbeln,
tknum LIKE vttk-tknum,
exti1 LIKE vttk-exti1,
exti2 LIKE vttk-exti2,
END OF i_tab1.
DATA: BEGIN OF i_tab2 OCCURS 0,
vbeln LIKE likp-vbeln, "送货编号
posnr LIKE lips-posnr, "行项号
bldat LIKE likp-bldat, "凭证日期
kunnr LIKE likp-kunnr, "送达方
wadat LIKE likp-wadat, "计划货物移动日期
* wadat_ist like likp-wadat_ist, "实际货物移动日期
anzpk LIKE likp-anzpk, "包数
lfimg LIKE lips-lfimg, "交货数量
matnr LIKE lips-matnr, "物料号
tknum LIKE vttk-tknum, "装运编号
exti1 LIKE vttk-exti1, "外部标识1 运输公司
exti2 LIKE vttk-exti2, "外部标识2 司机/车牌号
vgpos LIKE lips-vgpos, "参考项目的项目号
END OF i_tab2.
DATA: BEGIN OF i_tab3 OCCURS 0,
vbeln LIKE likp-vbeln,
posnr LIKE lips-posnr,
vgpos LIKE lips-vgpos,
END OF i_tab3.
*data :p_coco like knb1-bukrs.
*data :w_total(10) type c.
*data :w_loop1 like sy-tabix.
*data :w_loop2 like sy-tabix.
*data :w_loop3 like sy-tabix.
DATA scount(8).
DATA :rcount LIKE sy-tabix.
DATA lstr(20).
DATA lpos(6).
*data lstr1(40).
*data lstr2(40).
*data lstr3(100).
*data lstr4(40).
*data lstr5(40).
*--------------------------------
* Initialization
*--------------------------------
INITIALIZATION.
*--------------------------------
* At Selection Screen PBO
*--------------------------------
AT SELECTION-SCREEN OUTPUT.
*--------------------------------
* Start of Selection
*--------------------------------
START-OF-SELECTION.
PERFORM get_data.
PERFORM process_data.
* perform cal_data.
PERFORM events_build.
PERFORM layout_build.
PERFORM fields_build.
PERFORM display_data.
END-OF-SELECTION.
*--------------------------------
* Top of Page
*--------------------------------
TOP-OF-PAGE.
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
FORM get_data.
SELECT k~vbeln p~posnr k~bldat k~kunnr k~wadat k~anzpk p~lfimg p~matnr p~vgpos
INTO CORRESPONDING FIELDS OF TABLE i_tab2
FROM likp AS k INNER JOIN lips AS p ON k~vbeln = p~vbeln
WHERE k~vbeln IN s_num
AND k~bldat IN s_date
AND p~lfimg > 0 .
IF i_tab2[] IS INITIAL .
MESSAGE i000(zmsg) WITH '没找到对应的数据,请更改查询条件'.
LEAVE LIST-PROCESSING .
ELSE.
SELECT p~vbeln k~tknum k~exti1 k~exti2
INTO TABLE i_tab1
FROM vttk AS k INNER JOIN vttp AS p ON k~tknum = p~tknum
FOR ALL ENTRIES IN i_tab2
WHERE p~vbeln = i_tab2-vbeln.
SELECT p~vbeln p~posnr p~vgpos
INTO TABLE i_tab3
FROM lips AS p
FOR ALL ENTRIES IN i_tab2
WHERE p~vbeln = i_tab2-vbeln AND p~posnr < '900001'.
ENDIF.
ENDFORM. "get_data
*&---------------------------------------------------------------------*
*& Form process_data
*&---------------------------------------------------------------------*
FORM process_data.
LOOP AT i_tab2.
w_loop = sy-tabix.
CLEAR i_tab1.
READ TABLE i_tab1 WITH KEY vbeln = i_tab2-vbeln BINARY SEARCH.
IF sy-subrc = 0.
i_tab2-tknum = i_tab1-tknum.
i_tab2-exti1 = i_tab1-exti1.
i_tab2-exti2 = i_tab1-exti2.
ENDIF.
READ TABLE i_tab3 WITH KEY vbeln = i_tab2-vbeln
vgpos = i_tab2-vgpos.
IF sy-subrc = 0.
i_tab2-posnr = i_tab3-posnr.
ENDIF.
MODIFY i_tab2 INDEX w_loop.
sy-tabix = w_loop + 1.
ENDLOOP.
ENDFORM. "process_data
*&---------------------------------------------------------------------*
*& Form CAL_DATA
*&---------------------------------------------------------------------*
FORM cal_data .
DESCRIBE TABLE i_tab2 LINES rcount.
scount = rcount.
CONCATENATE '符合条件的记录数:' scount INTO lstr.
IF i_tab2[] IS INITIAL .
MESSAGE i000(zmsg) WITH '没找到对应的数据,请更改查询条件'.
LEAVE LIST-PROCESSING .
ENDIF.
ENDFORM. " CAL_DATA
*&---------------------------------------------------------------------*
*& Form EVENTS_BUILD
*&---------------------------------------------------------------------*
FORM events_build .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = i_events.
* read table i_events with key name = 'END_OF_LIST' into w_events.
* if sy-subrc = 0.
* move 'ALV_END_OF_LIST' to w_events-form.
* modify i_events from w_events index sy-tabix.
* endif.
READ TABLE i_events WITH KEY name = 'USER_COMMAND' INTO w_events.
IF sy-subrc = 0.
MOVE 'USER_COMMAND' TO w_events-form.
MODIFY i_events FROM w_events INDEX sy-tabix.
ENDIF.
ENDFORM. " EVENTS_BUILD
*&--------------------------------------------------------------------*
*& Form ALV_END_OF_LIST
*&--------------------------------------------------------------------*
FORM alv_top_of_page.
CLEAR: i_list_comments.
w_list_comments-typ = 'H'.
w_list_comments-key = ''.
w_list_comments-info = ' '.
APPEND w_list_comments TO i_list_comments.
CLEAR w_list_comments.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_list_comments
i_end_of_list_grid = 'X'.
ENDFORM. "ALV_TOP_OF_PAGE
*&--------------------------------------------------------------------*
*& Form ALV_END_OF_LIST
*&--------------------------------------------------------------------*
FORM alv_end_of_list.
CLEAR: i_list_comments.
w_list_comments-typ = 'H'.
w_list_comments-key = ''.
w_list_comments-info = lstr.
APPEND w_list_comments TO i_list_comments.
CLEAR w_list_comments.
w_list_comments-typ = 'S'.
w_list_comments-key = ''.
w_list_comments-info = ' 报表开发者:IT部 开发日期:2011/12/08'.
APPEND w_list_comments TO i_list_comments.
CLEAR w_list_comments.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_list_comments
i_end_of_list_grid = 'X'.
ENDFORM. "ALV_END_OF_LIST
*&---------------------------------------------------------------------*
*& Form LAYOUT_BUILD
*&---------------------------------------------------------------------*
FORM layout_build .
i_layout-zebra = 'X' . " 显示界面成色带交替
i_layout-detail_popup = 'X'. "弹出详细信息窗口
i_layout-info_fieldname = 'COLOR'. "颜色值
* I_LAYOUT-COLWIDTH_OPTIMIZE = 'X'. "优化列宽选项
i_layout-detail_initial_lines = 'X'.
i_layout-detail_titlebar = 'Delivery Status'.
i_layout-no_colhead =' '.
* I_LAYOUT-BOX_FIELDNAME = 'BOX' . " 指明复选框
w_repid = sy-repid.
ENDFORM. " LAYOUT_BUILD
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*&---------------------------------------------------------------------*
FORM display_data .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
* call function 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_user_command = 'USER_COMMAND' "用户触发事件
i_callback_pf_status_set = g_status "调用用户事件和按钮事件
i_callback_program = w_repid "当前程序
is_layout = i_layout "子函数layout_build填充的格式定义
it_fieldcat = i_fieldcat_alv[] "子函数fields填充的各列
it_events = i_events[]
i_save = 'A' "保存变式
TABLES
t_outtab = i_tab2. "假设数据都在itab内表中
ENDFORM. " DISPLAY_DATA
*-----------------------------------------------------------------------
* FORM PF_STATUS_SET 加工具栏
*-----------------------------------------------------------------------
FORM standard_02 USING extab TYPE slis_t_extab.
SET PF-STATUS 'STD' EXCLUDING extab.
ENDFORM. "STANDARD_02
*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
FORM user_command USING i_ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
CASE i_ucomm.
WHEN '&IC1'.
CASE selfield-sel_tab_field.
WHEN '1-VBELN'.
SET PARAMETER ID 'VL' FIELD selfield-value.
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
WHEN '1-TKNUM'.
SET PARAMETER ID 'TNR' FIELD selfield-value.
CALL TRANSACTION 'VT03N' AND SKIP FIRST SCREEN.
ENDCASE.
WHEN OTHERS.
ENDCASE.
ENDFORM. "callback_ucomm
*&---------------------------------------------------------------------*
*& Form FIELDS_BUILD
*&---------------------------------------------------------------------*
FORM fields_build .
DATA tmp_pos TYPE i.
REFRESH i_fieldcat_alv.
CLEAR i_fieldcat.
tmp_pos = tmp_pos + 1.
i_fieldcat-col_pos = tmp_pos.
i_fieldcat-fieldname = 'VBELN'.
i_fieldcat-seltext_l = '送货单号'.
i_fieldcat-outputlen = 10.
i_fieldcat-no_zero = 'X'.
i_fieldcat-key = 'X'.
APPEND i_fieldcat TO i_fieldcat_alv.
CLEAR i_fieldcat.
tmp_pos = tmp_pos + 1.
i_fieldcat-col_pos = tmp_pos.
i_fieldcat-fieldname = 'POSNR'.
i_fieldcat-seltext_l = '行项'.
i_fieldcat-outputlen = 6.
i_fieldcat-no_zero = 'X'.
i_fieldcat-key = 'X'.
APPEND i_fieldcat TO i_fieldcat_alv.
CLEAR i_fieldcat.
tmp_pos = tmp_pos + 1.
i_fieldcat-col_pos = tmp_pos.
i_fieldcat-fieldname = 'KUNNR'.
i_fieldcat-seltext_l = '送达方'.
i_fieldcat-outputlen = 10.
APPEND i_fieldcat TO i_fieldcat_alv.
CLEAR i_fieldcat.
tmp_pos = tmp_pos + 1.
i_fieldcat-col_pos = tmp_pos.
i_fieldcat-fieldname = 'BLDAT'.
i_fieldcat-seltext_l = '凭证日期'.
i_fieldcat-outputlen = 10.
APPEND i_fieldcat TO i_fieldcat_alv.
CLEAR i_fieldcat.
tmp_pos = tmp_pos + 1.
i_fieldcat-col_pos = tmp_pos.
i_fieldcat-fieldname = 'WADAT'.
i_fieldcat-seltext_l = '计划货物移动日期'.
i_fieldcat-outputlen = 16.
APPEND i_fieldcat TO i_fieldcat_alv.
CLEAR i_fieldcat.
tmp_pos = tmp_pos + 1.
i_fieldcat-col_pos = tmp_pos.
i_fieldcat-fieldname = 'ANZPK'.
i_fieldcat-seltext_l = '包数'.
i_fieldcat-outputlen = 5.
i_fieldcat-no_zero = 'X'.
APPEND i_fieldcat TO i_fieldcat_alv.
CLEAR i_fieldcat.
tmp_pos = tmp_pos + 1.
i_fieldcat-col_pos = tmp_pos.
i_fieldcat-fieldname = 'LFIMG'.
i_fieldcat-seltext_l = '数量'.
i_fieldcat-outputlen = 8.
i_fieldcat-no_zero = 'X'.
APPEND i_fieldcat TO i_fieldcat_alv.
CLEAR i_fieldcat.
tmp_pos = tmp_pos + 1.
i_fieldcat-col_pos = tmp_pos.
i_fieldcat-fieldname = 'MATNR'.
i_fieldcat-seltext_l = '物料号'.
i_fieldcat-outputlen = 15.
APPEND i_fieldcat TO i_fieldcat_alv.
CLEAR i_fieldcat.
tmp_pos = tmp_pos + 1.
i_fieldcat-col_pos = tmp_pos.
i_fieldcat-fieldname = 'TKNUM'.
i_fieldcat-seltext_l = '装运号'.
i_fieldcat-outputlen = 9.
i_fieldcat-no_zero = 'X'.
APPEND i_fieldcat TO i_fieldcat_alv.
CLEAR i_fieldcat.
tmp_pos = tmp_pos + 1.
i_fieldcat-col_pos = tmp_pos.
i_fieldcat-fieldname = 'EXTI1'.
i_fieldcat-seltext_l = '商号名称'.
i_fieldcat-outputlen = 12.
APPEND i_fieldcat TO i_fieldcat_alv.
CLEAR i_fieldcat.
tmp_pos = tmp_pos + 1.
i_fieldcat-col_pos = tmp_pos.
i_fieldcat-fieldname = 'EXTI2'.
i_fieldcat-seltext_l = '带货人/车'.
i_fieldcat-outputlen = 15.
APPEND i_fieldcat TO i_fieldcat_alv.
CLEAR i_fieldcat.
ENDFORM. " FIELDS_BUILD