mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 02:39:48 +08:00

Update of all the slinkees files with the latest version of SAPLink to simplify merge of pull request
376 lines
20 KiB
XML
376 lines
20 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<PROG NAME="ZDEMO_EXCEL26" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
|
|
<textPool>
|
|
<language SPRAS="E">
|
|
<textElement ID="R" ENTRY="abap2xlsx Demo: Test Excel Reader (Now in ZDEMO_EXCEL15)" LENGTH="56 "/>
|
|
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="24 "/>
|
|
<textElement ID="S" KEY="P_READER" ENTRY=" Write back after using Reader" LENGTH="37 "/>
|
|
</language>
|
|
</textPool>
|
|
<pfstatus>
|
|
<pfstatus_sta CODE="ALV_STATUS" MODAL="D" ACTCODE="000001" PFKCODE="000001" BUTCODE="0001" INT_NOTE="Standard for General List Output"/>
|
|
<pfstatus_fun CODE="%PC" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_EXPORT" ICON_ID="@49@" FUN_TEXT="Local file..."/>
|
|
<pfstatus_fun CODE="%SC" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SEARCH" ICON_ID="@13@" FUN_TEXT="Find"/>
|
|
<pfstatus_fun CODE="%SC+" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SEARCH_NEXT" ICON_ID="@4E@" FUN_TEXT="Find next"/>
|
|
<pfstatus_fun CODE="%SL" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Mail recipient"/>
|
|
<pfstatus_fun CODE="&ABC" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="ABC Analysis"/>
|
|
<pfstatus_fun CODE="&ALL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SELECT_ALL" ICON_ID="@4B@" FUN_TEXT="Select all"/>
|
|
<pfstatus_fun CODE="&AQW" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Word processing..."/>
|
|
<pfstatus_fun CODE="&AVE" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANT_SAVE" ICON_ID="@DN@" FUN_TEXT="Save layout..."/>
|
|
<pfstatus_fun CODE="&CRB" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_TOTAL_LEFT" ICON_ID="@0B@" FUN_TEXT="First Column"/>
|
|
<pfstatus_fun CODE="&CRE" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_TOTAL_RIGHT" ICON_ID="@0C@" FUN_TEXT="Last column"/>
|
|
<pfstatus_fun CODE="&CRL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_COLUMN_LEFT" ICON_ID="@0D@" FUN_TEXT="Column left"/>
|
|
<pfstatus_fun CODE="&CRR" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_COLUMN_RIGHT" ICON_ID="@0E@" FUN_TEXT="Column right"/>
|
|
<pfstatus_fun CODE="&EB9" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_TABLE_SETTINGS" ICON_ID="@36@" FUN_TEXT="Call Up Report"/>
|
|
<pfstatus_fun CODE="&ETA" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SELECT_DETAIL" ICON_ID="@16@" FUN_TEXT="Details"/>
|
|
<pfstatus_fun CODE="&F03" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Back"/>
|
|
<pfstatus_fun CODE="&F12" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_CANCEL" ICON_ID="@0W@" FUN_TEXT="Cancel"/>
|
|
<pfstatus_fun CODE="&F15" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Exit"/>
|
|
<pfstatus_fun CODE="&IC1" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SELECT_DETAIL" ICON_ID="@16@" FUN_TEXT="Choose" PATH="S"/>
|
|
<pfstatus_fun CODE="&ILD" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_FILTER_UNDO" ICON_ID="@GD@" FUN_TEXT="Delete Filter"/>
|
|
<pfstatus_fun CODE="&ILT" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME=" ICON_FILTER" ICON_ID="@4G@" FUN_TEXT="Set filter"/>
|
|
<pfstatus_fun CODE="&LFO" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_INFORMATION" ICON_ID="@0S@" FUN_TEXT="List status..."/>
|
|
<pfstatus_fun CODE="&NFO" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_INFORMATION" ICON_ID="@0S@" FUN_TEXT="Selections..." INFO_TEXT="Selections"/>
|
|
<pfstatus_fun CODE="&NTE" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Refresh"/>
|
|
<pfstatus_fun CODE="&OAD" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANT_CHOOSE" ICON_ID="@DM@" FUN_TEXT="Select layout..."/>
|
|
<pfstatus_fun CODE="&ODN" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SORT_DOWN" ICON_ID="@3F@" FUN_TEXT="Sort in descendin."/>
|
|
<pfstatus_fun CODE="&OL0" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_ALV_VARIANTS" ICON_ID="@LZ@" FUN_TEXT="Change layout..."/>
|
|
<pfstatus_fun CODE="&OMP" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Collapse"/>
|
|
<pfstatus_fun CODE="&OUP" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SORT_UP" ICON_ID="@3E@" FUN_TEXT="Sort in Ascending..."/>
|
|
<pfstatus_fun CODE="&RNT" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_PRINT" ICON_ID="@0X@" FUN_TEXT="Print"/>
|
|
<pfstatus_fun CODE="&RNT_PREV" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Print preview"/>
|
|
<pfstatus_fun CODE="&SAL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_DESELECT_ALL" ICON_ID="@4D@" FUN_TEXT="Deselect all"/>
|
|
<pfstatus_fun CODE="&SUM" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_INTERMEDIATE_SUM" ICON_ID="@5V@" FUN_TEXT="Subtotals..."/>
|
|
<pfstatus_fun CODE="&UMC" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_SUM" ICON_ID="@3Z@" FUN_TEXT="Total"/>
|
|
<pfstatus_fun CODE="&XML" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="XML Export..."/>
|
|
<pfstatus_fun CODE="&XPA" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Expand"/>
|
|
<pfstatus_fun CODE="&XXL" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="Spreadsheet..."/>
|
|
<pfstatus_fun CODE="EXCEL" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_XLV" ICON_ID="@J3@" FUN_TEXT="Excel" ICON_TEXT="Export to Excel" INFO_TEXT="Export to Excel"/>
|
|
<pfstatus_fun CODE="P" TEXTNO="001" TEXT_TYPE="S" FUN_TEXT="First Page"/>
|
|
<pfstatus_fun CODE="P+" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_NEXT_PAGE" ICON_ID="@30@" FUN_TEXT="Next page"/>
|
|
<pfstatus_fun CODE="P++" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_LAST_PAGE" ICON_ID="@31@" FUN_TEXT="Last Page"/>
|
|
<pfstatus_fun CODE="P-" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_PREVIOUS_PAGE" ICON_ID="@2Z@" FUN_TEXT="Previous Page"/>
|
|
<pfstatus_fun CODE="P--" TEXTNO="001" TEXT_TYPE="S" TEXT_NAME="ICON_FIRST_PAGE" ICON_ID="@2Y@" FUN_TEXT="First Page"/>
|
|
<pfstatus_mtx CODE="000001" TEXT_TYPE="S" TEXT="List"/>
|
|
<pfstatus_mtx CODE="000002" TEXT_TYPE="S" TEXT="Edit"/>
|
|
<pfstatus_mtx CODE="000003" TEXT_TYPE="S" TEXT="Goto"/>
|
|
<pfstatus_mtx CODE="000004" TEXT_TYPE="S" TEXT="Settings"/>
|
|
<pfstatus_act CODE="000001" NO="01" MENUCODE="000001"/>
|
|
<pfstatus_act CODE="000001" NO="02" MENUCODE="000002"/>
|
|
<pfstatus_act CODE="000001" NO="03" MENUCODE="000003"/>
|
|
<pfstatus_act CODE="000001" NO="04" MENUCODE="000004"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="01" PFNO="39"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="02" PFNO="37"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="04" PFNO="05"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="05" PFNO="06"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="07" PFNO="28"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="08" PFNO="40"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="09" PFNO="29"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="10" PFNO="38"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="12" PFNO="30"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="13" PFNO="42"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="15" PFNO="45"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="17" PFNO="32"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="18" PFNO="33"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="19" PFNO="34"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="20" PFNO="09"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="22" PFNO="41"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="23" PFNO="07"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="25" PFNO="18"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="26" PFNO="26"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="27" PFNO="27"/>
|
|
<pfstatus_but PFK_CODE="000001" CODE="0001" NO="28" PFNO="19"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="02" FUNCODE="&IC1" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="03" FUNCODE="&F03" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="05" FUNCODE="&ALL" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="06" FUNCODE="&SAL" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="07" FUNCODE="&NFO" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="08" FUNCODE="&NTE" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="09" FUNCODE="EXCEL" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="12" FUNCODE="&F12" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="15" FUNCODE="&F15" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="18" FUNCODE="&CRB" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="19" FUNCODE="&CRE" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="21" FUNCODE="P" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="22" FUNCODE="P-" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="23" FUNCODE="P+" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="24" FUNCODE="P++" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="25" FUNCODE="&ABC" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="26" FUNCODE="&CRL" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="27" FUNCODE="&CRR" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="28" FUNCODE="&OUP" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="29" FUNCODE="&ILT" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="30" FUNCODE="&UMC" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="31" FUNCODE="%SL" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="32" FUNCODE="&OL0" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="33" FUNCODE="&OAD" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="34" FUNCODE="&AVE" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="35" FUNCODE="&XPA" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="37" FUNCODE="&EB9" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="38" FUNCODE="&ILD" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="39" FUNCODE="&ETA" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="40" FUNCODE="&ODN" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="41" FUNCODE="&LFO" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="42" FUNCODE="&SUM" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="43" FUNCODE="&XXL" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="44" FUNCODE="&AQW" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="45" FUNCODE="%PC" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="46" FUNCODE="&RNT_PREV" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="47" FUNCODE="&OMP" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="48" FUNCODE="&XML" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="71" FUNCODE="%SC" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="80" FUNCODE="P--" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="81" FUNCODE="P-" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="82" FUNCODE="P+" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="83" FUNCODE="P++" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="84" FUNCODE="%SC+" FUNNO="001"/>
|
|
<pfstatus_pfk CODE="000001" PFNO="86" FUNCODE="&RNT" FUNNO="001"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%PC"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%SC"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%SC+"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="%SL"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&ABC"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&ALL"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&AQW"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&AVE"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&CRB"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&CRE"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&CRL"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&CRR"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&EB9"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&ETA"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&F03"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&F12"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&F15"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&IC1"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&ILD"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&ILT"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&LFO"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&NFO"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&NTE"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&OAD"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&ODN"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&OL0"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&OMP"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&OUP"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&RNT"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&RNT_PREV"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&SAL"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&SUM"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&UMC"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&XML"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&XPA"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="&XXL"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="EXCEL"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P+"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P++"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P-"/>
|
|
<pfstatus_set STATUS="ALV_STATUS" FUNCTION="P--"/>
|
|
<pfstatus_doc OBJ_TYPE="A" OBJ_CODE="000001" MODAL="D" INT_NOTE="Standard for General List Output"/>
|
|
<pfstatus_doc OBJ_TYPE="P" OBJ_CODE="000001" MODAL="D" INT_NOTE="Standard for General List Output"/>
|
|
<pfstatus_doc OBJ_TYPE="B" OBJ_CODE="000001" SUB_CODE="0001" MODAL="D" INT_NOTE="Standard for General List Output"/>
|
|
</pfstatus>
|
|
<source>*--------------------------------------------------------------------*
|
|
* REPORT ZDEMO_EXCEL26
|
|
* Demo for method zcl_excel_worksheet-bind_object:
|
|
* export data from ALV (CL_GUI_ALV_GRID) object or cl_salv_table object
|
|
* to Excel.
|
|
*--------------------------------------------------------------------*
|
|
report zdemo_excel26.
|
|
|
|
*----------------------------------------------------------------------*
|
|
* CLASS lcl_handle_events DEFINITION
|
|
*----------------------------------------------------------------------*
|
|
*
|
|
*----------------------------------------------------------------------*
|
|
class lcl_handle_events definition.
|
|
public section.
|
|
methods:
|
|
on_user_command for event added_function of cl_salv_events
|
|
importing e_salv_function.
|
|
endclass. "lcl_handle_events DEFINITION
|
|
|
|
*----------------------------------------------------------------------*
|
|
* CLASS lcl_handle_events IMPLEMENTATION
|
|
*----------------------------------------------------------------------*
|
|
*
|
|
*----------------------------------------------------------------------*
|
|
class lcl_handle_events implementation.
|
|
method on_user_command.
|
|
perform user_command." using e_salv_function text-i08.
|
|
endmethod. "on_user_command
|
|
endclass. "lcl_handle_events IMPLEMENTATION
|
|
|
|
*--------------------------------------------------------------------*
|
|
* DATA DECLARATION
|
|
*--------------------------------------------------------------------*
|
|
|
|
data: lo_excel type ref to zcl_excel,
|
|
lo_worksheet type ref to zcl_excel_worksheet,
|
|
lo_salv type ref to cl_salv_table,
|
|
gr_events type ref to lcl_handle_events,
|
|
lr_events type ref to cl_salv_events_table,
|
|
gt_sbook type table of sbook.
|
|
|
|
data: l_path type string, " local dir
|
|
lv_workdir type string,
|
|
lv_file_separator type c.
|
|
|
|
constants:
|
|
lv_default_file_name type string value '26_Bind_ALV.xlsx'.
|
|
*--------------------------------------------------------------------*
|
|
*START-OF-SELECTION
|
|
*--------------------------------------------------------------------*
|
|
|
|
start-of-selection.
|
|
|
|
* get data
|
|
* ------------------------------------------
|
|
|
|
select *
|
|
into table gt_sbook[]
|
|
from sbook "#EC CI_NOWHERE
|
|
up to 10 rows.
|
|
|
|
* Display ALV
|
|
* ------------------------------------------
|
|
|
|
try.
|
|
cl_salv_table=>factory(
|
|
exporting
|
|
list_display = abap_false
|
|
importing
|
|
r_salv_table = lo_salv
|
|
changing
|
|
t_table = gt_sbook[] ).
|
|
catch cx_salv_msg .
|
|
endtry.
|
|
|
|
try.
|
|
lo_salv->set_screen_status(
|
|
exporting
|
|
report = sy-repid
|
|
pfstatus = 'ALV_STATUS'
|
|
set_functions = lo_salv->c_functions_all ).
|
|
catch cx_salv_msg .
|
|
endtry.
|
|
|
|
lr_events = lo_salv->get_event( ).
|
|
create object gr_events.
|
|
set handler gr_events->on_user_command for lr_events.
|
|
|
|
lo_salv->display( ).
|
|
|
|
|
|
*&---------------------------------------------------------------------*
|
|
*& Form USER_COMMAND
|
|
*&---------------------------------------------------------------------*
|
|
* ALV user command
|
|
*--------------------------------------------------------------------*
|
|
form user_command .
|
|
if sy-ucomm = 'EXCEL'.
|
|
|
|
* get save file path
|
|
cl_gui_frontend_services=>get_sapgui_workdir( changing sapworkdir = l_path ).
|
|
cl_gui_cfw=>flush( ).
|
|
cl_gui_frontend_services=>directory_browse(
|
|
exporting initial_folder = l_path
|
|
changing selected_folder = l_path ).
|
|
|
|
if l_path is initial.
|
|
cl_gui_frontend_services=>get_sapgui_workdir(
|
|
changing sapworkdir = lv_workdir ).
|
|
l_path = lv_workdir.
|
|
endif.
|
|
|
|
cl_gui_frontend_services=>get_file_separator(
|
|
changing file_separator = lv_file_separator ).
|
|
|
|
concatenate l_path lv_file_separator lv_default_file_name
|
|
into l_path.
|
|
|
|
* export file to save file path
|
|
perform export_to_excel.
|
|
|
|
endif.
|
|
endform. " USER_COMMAND
|
|
|
|
*--------------------------------------------------------------------*
|
|
* FORM EXPORT_TO_EXCEL
|
|
*--------------------------------------------------------------------*
|
|
* This subroutine is principal demo session
|
|
*--------------------------------------------------------------------*
|
|
form export_to_excel.
|
|
data: lo_converter type ref to zcl_excel_converter.
|
|
* create zcl_excel_worksheet object
|
|
|
|
create object lo_excel.
|
|
lo_worksheet = lo_excel->get_active_worksheet( ).
|
|
lo_worksheet->set_title( ip_title = 'Sheet1' ).
|
|
|
|
* write to excel using method Bin_object
|
|
try.
|
|
lo_worksheet->bind_alv(
|
|
io_alv = lo_salv
|
|
it_table = gt_sbook
|
|
i_top = 2
|
|
i_left = 1
|
|
).
|
|
catch zcx_excel .
|
|
endtry.
|
|
|
|
perform write_file.
|
|
|
|
endform. "EXPORT_TO_EXCEL
|
|
*&---------------------------------------------------------------------*
|
|
*& Form WRITE_FILE
|
|
*&---------------------------------------------------------------------*
|
|
* text
|
|
*----------------------------------------------------------------------*
|
|
* --> p1 text
|
|
* <-- p2 text
|
|
*----------------------------------------------------------------------*
|
|
form write_file .
|
|
data: lt_file type solix_tab,
|
|
l_bytecount type i,
|
|
l_file type xstring.
|
|
|
|
data: lo_excel_writer type ref to zif_excel_writer.
|
|
|
|
data: ls_seoclass type seoclass.
|
|
|
|
create object lo_excel_writer type zcl_excel_writer_2007.
|
|
l_file = lo_excel_writer->write_file( lo_excel ).
|
|
|
|
select single * into ls_seoclass
|
|
from seoclass
|
|
where clsname = 'CL_BCS_CONVERT'.
|
|
|
|
if sy-subrc = 0.
|
|
call method (ls_seoclass-clsname)=>xstring_to_solix
|
|
exporting
|
|
iv_xstring = l_file
|
|
receiving
|
|
et_solix = lt_file.
|
|
|
|
l_bytecount = xstrlen( l_file ).
|
|
else.
|
|
" Convert to binary
|
|
call function 'SCMS_XSTRING_TO_BINARY'
|
|
exporting
|
|
buffer = l_file
|
|
importing
|
|
output_length = l_bytecount
|
|
tables
|
|
binary_tab = lt_file.
|
|
endif.
|
|
|
|
cl_gui_frontend_services=>gui_download( exporting bin_filesize = l_bytecount
|
|
filename = l_path
|
|
filetype = 'BIN'
|
|
changing data_tab = lt_file ).
|
|
|
|
endform. " WRITE_FILE</source>
|
|
</PROG>
|