FORM display .
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
it_events TYPE slis_t_event,
is_layout TYPE slis_layout_alv,
title TYPE lvc_title,
it_sort TYPE slis_t_sortinfo_alv WITH HEADER LINE .
DATA: g_repid TYPE sy-repid.
PERFORM layout_init CHANGING is_layout.
PERFORM fieldcat_init CHANGING it_fieldcat.
g_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_callback_html_top_of_page = 'HTML_HEADER' " HTML Header
i_html_height_top = 12 "Header area height
is_layout = is_layout
it_fieldcat = it_fieldcat
* it_events = it_events
TABLES
t_outtab = it_result
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " display
*&---------------------------------------------------------------------*
*& Form layout_init
*&---------------------------------------------------------------------*
* Layout initialization for ALV
*----------------------------------------------------------------------*
FORM layout_init CHANGING is_layout TYPE slis_layout_alv.
is_layout-colwidth_optimize = 'X'. " ALV各列自适应列宽
ENDFORM. " layout_init
*&---------------------------------------------------------------------*
*& Form fieldcat_init
*&---------------------------------------------------------------------*
* ALV Colum header Text Set
*----------------------------------------------------------------------*
FORM fieldcat_init USING it_fieldcat TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
DEFINE gen_fieldcatalog. " Fill data to fieldcat
ls_fieldcat-col_pos = &1. " Column No.
ls_fieldcat-fieldname = &2. "Field Name
ls_fieldcat-seltext_m = &3. "Column Title
ls_fieldcat-no_out = &4. "Display? X-No display
ls_fieldcat-hotspot = &5. "event?.
ls_fieldcat-do_sum = &6. " Total
ls_fieldcat-no_zero = &7. "No Dispplay front Zero.
append ls_fieldcat to it_fieldcat.
END-OF-DEFINITION.
"设用宏,为每列指定列头
" Changed by garywang 2008-11-18 增加三列 客户号/客户名称/货币
gen_fieldcatalog '1' 'KUNRG' 'Customer No.' space space space 'X'.
gen_fieldcatalog '2' 'NAME1' 'Customer Name' space space space space.
gen_fieldcatalog '3' 'PSPID' 'Project Code' space space space space.
gen_fieldcatalog '4' 'FKDAT' 'Sales Date' space space space space.
gen_fieldcatalog '5' 'VTEXT' 'Due Date' space space space space.
gen_fieldcatalog '6' 'BUDAT' 'Received Date' space space space space.
gen_fieldcatalog '7' 'VBELN' 'Invice No.' space space space 'X'.
gen_fieldcatalog '8' 'POSNR' 'Item No.' space space space space.
gen_fieldcatalog '9' 'INVO_NO' 'Custom No.' space space space space.
gen_fieldcatalog '10' 'POST1' 'Project Name' space space space space.
gen_fieldcatalog '11' 'SERNR' 'Remark' space space space space.
gen_fieldcatalog '12' 'LANDX' 'Country' space space space space.
gen_fieldcatalog '13' 'KTEXT' 'Region' space space space space.
gen_fieldcatalog '14' 'FKIMG' 'Quantity' space space space space.
gen_fieldcatalog '15' 'MATNR' 'Material' space space space 'X'.
gen_fieldcatalog '16' 'WAERK' 'Currency' space space space space.
gen_fieldcatalog '17' 'NETWR' 'Sales Price' space space space space.
gen_fieldcatalog '18' 'AMOUNT' 'Amount(RMB)' space space space space.
gen_fieldcatalog '19' 'MWSBP' 'VAT' space space space space.
gen_fieldcatalog '20' 'CMSN' 'Commission' space space space space.
ENDFORM. " fieldcat_init
*&---------------------------------------------------------------------*
*& Form header
*&---------------------------------------------------------------------*
* HTML Header
*----------------------------------------------------------------------*
FORM html_header USING document TYPE REF TO cl_dd_document.
DATA: text TYPE sdydo_text_element.
DATA: v_date1 TYPE string,
v_date2 TYPE string.
v_date1 = fkdat-low.
v_date2 = fkdat-high.
text = 'Invoice List of Sales'.
IF v_date1 <> space AND v_date2 <> space.
CONCATENATE v_date1 '-' v_date2 text INTO text SEPARATED BY space.
ELSEIF v_date1 <> space.
CONCATENATE v_date1 text INTO text SEPARATED BY space.
ELSEIF v_date2 <> space.
CONCATENATE v_date2 text INTO text SEPARATED BY space.
ENDIF.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'HEADING'.
CALL METHOD document->new_line.
ENDFORM. " header
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
it_events TYPE slis_t_event,
is_layout TYPE slis_layout_alv,
title TYPE lvc_title,
it_sort TYPE slis_t_sortinfo_alv WITH HEADER LINE .
DATA: g_repid TYPE sy-repid.
PERFORM layout_init CHANGING is_layout.
PERFORM fieldcat_init CHANGING it_fieldcat.
g_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_callback_html_top_of_page = 'HTML_HEADER' " HTML Header
i_html_height_top = 12 "Header area height
is_layout = is_layout
it_fieldcat = it_fieldcat
* it_events = it_events
TABLES
t_outtab = it_result
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " display
*&---------------------------------------------------------------------*
*& Form layout_init
*&---------------------------------------------------------------------*
* Layout initialization for ALV
*----------------------------------------------------------------------*
FORM layout_init CHANGING is_layout TYPE slis_layout_alv.
is_layout-colwidth_optimize = 'X'. " ALV各列自适应列宽
ENDFORM. " layout_init
*&---------------------------------------------------------------------*
*& Form fieldcat_init
*&---------------------------------------------------------------------*
* ALV Colum header Text Set
*----------------------------------------------------------------------*
FORM fieldcat_init USING it_fieldcat TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
DEFINE gen_fieldcatalog. " Fill data to fieldcat
ls_fieldcat-col_pos = &1. " Column No.
ls_fieldcat-fieldname = &2. "Field Name
ls_fieldcat-seltext_m = &3. "Column Title
ls_fieldcat-no_out = &4. "Display? X-No display
ls_fieldcat-hotspot = &5. "event?.
ls_fieldcat-do_sum = &6. " Total
ls_fieldcat-no_zero = &7. "No Dispplay front Zero.
append ls_fieldcat to it_fieldcat.
END-OF-DEFINITION.
"设用宏,为每列指定列头
" Changed by garywang 2008-11-18 增加三列 客户号/客户名称/货币
gen_fieldcatalog '1' 'KUNRG' 'Customer No.' space space space 'X'.
gen_fieldcatalog '2' 'NAME1' 'Customer Name' space space space space.
gen_fieldcatalog '3' 'PSPID' 'Project Code' space space space space.
gen_fieldcatalog '4' 'FKDAT' 'Sales Date' space space space space.
gen_fieldcatalog '5' 'VTEXT' 'Due Date' space space space space.
gen_fieldcatalog '6' 'BUDAT' 'Received Date' space space space space.
gen_fieldcatalog '7' 'VBELN' 'Invice No.' space space space 'X'.
gen_fieldcatalog '8' 'POSNR' 'Item No.' space space space space.
gen_fieldcatalog '9' 'INVO_NO' 'Custom No.' space space space space.
gen_fieldcatalog '10' 'POST1' 'Project Name' space space space space.
gen_fieldcatalog '11' 'SERNR' 'Remark' space space space space.
gen_fieldcatalog '12' 'LANDX' 'Country' space space space space.
gen_fieldcatalog '13' 'KTEXT' 'Region' space space space space.
gen_fieldcatalog '14' 'FKIMG' 'Quantity' space space space space.
gen_fieldcatalog '15' 'MATNR' 'Material' space space space 'X'.
gen_fieldcatalog '16' 'WAERK' 'Currency' space space space space.
gen_fieldcatalog '17' 'NETWR' 'Sales Price' space space space space.
gen_fieldcatalog '18' 'AMOUNT' 'Amount(RMB)' space space space space.
gen_fieldcatalog '19' 'MWSBP' 'VAT' space space space space.
gen_fieldcatalog '20' 'CMSN' 'Commission' space space space space.
ENDFORM. " fieldcat_init
*&---------------------------------------------------------------------*
*& Form header
*&---------------------------------------------------------------------*
* HTML Header
*----------------------------------------------------------------------*
FORM html_header USING document TYPE REF TO cl_dd_document.
DATA: text TYPE sdydo_text_element.
DATA: v_date1 TYPE string,
v_date2 TYPE string.
v_date1 = fkdat-low.
v_date2 = fkdat-high.
text = 'Invoice List of Sales'.
IF v_date1 <> space AND v_date2 <> space.
CONCATENATE v_date1 '-' v_date2 text INTO text SEPARATED BY space.
ELSEIF v_date1 <> space.
CONCATENATE v_date1 text INTO text SEPARATED BY space.
ELSEIF v_date2 <> space.
CONCATENATE v_date2 text INTO text SEPARATED BY space.
ENDIF.
CALL METHOD document->add_text
EXPORTING
text = text
sap_style = 'HEADING'.
CALL METHOD document->new_line.
ENDFORM. " header