mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 16:36:12 +08:00
Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
5cef0dc851 |
12
.apack-manifest.xml
Normal file
12
.apack-manifest.xml
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<DATA>
|
||||
<GROUP_ID>github.com/abap2xlsx/abap2xlsx</GROUP_ID>
|
||||
<ARTIFACT_ID>abap2xlsx</ARTIFACT_ID>
|
||||
<VERSION>7.14.0</VERSION>
|
||||
<REPOSITORY_TYPE>abapGit</REPOSITORY_TYPE>
|
||||
<GIT_URL>https://github.com/abap2xlsx/abap2xlsx.git</GIT_URL>
|
||||
</DATA>
|
||||
</asx:values>
|
||||
</asx:abap>
|
17
.github/workflows/unit.yml
vendored
17
.github/workflows/unit.yml
vendored
|
@ -1,17 +0,0 @@
|
|||
name: unit
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
unit:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
- run: npm install
|
||||
- run: npm test
|
6
.gitignore
vendored
6
.gitignore
vendored
|
@ -1,6 +0,0 @@
|
|||
node_modules/
|
||||
package-lock.json
|
||||
output
|
||||
foo.zip
|
||||
foo.xlsx
|
||||
foo
|
4
LICENSE
4
LICENSE
|
@ -1,4 +1,4 @@
|
|||
Apache License
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
|
@ -186,7 +186,7 @@
|
|||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright 2010 abap2xlsx Contributors
|
||||
Copyright {yyyy} {name of copyright owner}
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
|
|
@ -2,8 +2,5 @@
|
|||
|
||||
For general information please refer to the blog series [abap2xlsx - Generate your professional Excel spreadsheet from ABAP](http://scn.sap.com/community/abap/blog/2010/07/12/abap2xlsx--generate-your-professional-excel-spreadsheet-from-abap) and the [documentation](https://abap2xlsx.github.io/abap2xlsx/).
|
||||
Please refer to the official wiki for the [abapGit installation guide](https://abap2xlsx.github.io/abap2xlsx/abapGit-installation).
|
||||
Note that the **Demo programs** are provided in a [separate repository](https://github.com/abap2xlsx/demos), and can be installed after abap2xlsx.
|
||||
|
||||
For questions, bug reports and more information on contributing to the project, please refer to the [contributing guidelines](./CONTRIBUTING.md).
|
||||
|
||||
Version support: minimum tested version is SAP_ABA 731, it might work on older versions still but we need volunteers to test it.
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
# Reporting Security Issues
|
||||
|
||||
To report a security issue, please use the GitHub Security Advisory ["Report a Vulnerability"](https://github.com/abap2xlsx/abap2xlsx/security/advisories/new) tab.
|
|
@ -1,61 +0,0 @@
|
|||
{
|
||||
"input_folder": "{src,test}",
|
||||
"input_filter": [
|
||||
"src/zcl_excel_a",
|
||||
"src/zcl_excel_c",
|
||||
"src/zcl_excel_d",
|
||||
"src/zcl_excel_fill_template",
|
||||
"src/zcl_excel_font TODO, missing TDFONTSIZE",
|
||||
"src/zcl_excel_g",
|
||||
"src/zcl_excel_h",
|
||||
"src/zcl_excel_l",
|
||||
"src/zcl_excel_o",
|
||||
"src/zcl_excel_r",
|
||||
"src/zcl_excel_s",
|
||||
"src/zcl_excel_t",
|
||||
"src/zcl_excel_w",
|
||||
"src/zcl_excel.clas",
|
||||
"src/zcx_",
|
||||
"src/zexcel_.*doma",
|
||||
"src/zexcel_.*dtel",
|
||||
"src/not_cloud/zexcel_.*dtel",
|
||||
"src/not_cloud/zexcel_.*doma",
|
||||
"src/zexcel_c",
|
||||
"src/zexcel_p",
|
||||
"src/zexcel_s",
|
||||
"src/zexcel_t",
|
||||
"src/zif_",
|
||||
"test/"
|
||||
],
|
||||
"output_folder": "output",
|
||||
"lib": "https://github.com/open-abap/open-abap",
|
||||
"write_unit_tests": true,
|
||||
"write_source_map": true,
|
||||
"options": {
|
||||
"ignoreSyntaxCheck": false,
|
||||
"addFilenames": true,
|
||||
"addCommonJS": true,
|
||||
"unknownTypes": "runtimeError",
|
||||
"skip": [
|
||||
{"object": "ZCL_EXCEL_READER_HUGE_FILE", "class": "lcl_test", "method": "test_number", "note": "SXML in open-abap currently only handles json, todo"},
|
||||
{"object": "ZCL_EXCEL_READER_HUGE_FILE", "class": "lcl_test", "method": "test_shared_string", "note": "SXML in open-abap currently only handles json, todo"},
|
||||
{"object": "ZCL_EXCEL_READER_HUGE_FILE", "class": "lcl_test", "method": "test_shared_string_missing", "note": "??"},
|
||||
{"object": "ZCL_EXCEL_READER_HUGE_FILE", "class": "lcl_test", "method": "test_inline_string", "note": "??"},
|
||||
{"object": "ZCL_EXCEL_READER_HUGE_FILE", "class": "lcl_test", "method": "test_empty_cells", "note": "??"},
|
||||
{"object": "ZCL_EXCEL_READER_HUGE_FILE", "class": "lcl_test", "method": "test_boolean", "note": "SXML in open-abap currently only handles json, todo"},
|
||||
{"object": "ZCL_EXCEL_READER_HUGE_FILE", "class": "lcl_test", "method": "test_style", "note": "??"},
|
||||
{"object": "ZCL_EXCEL_READER_HUGE_FILE", "class": "lcl_test", "method": "test_style_missing", "note": "??"},
|
||||
{"object": "ZCL_EXCEL_READER_HUGE_FILE", "class": "lcl_test", "method": "test_formula", "note": "??"},
|
||||
{"object": "ZCL_EXCEL_READER_HUGE_FILE", "class": "lcl_test", "method": "test_read_shared_strings", "note": "??"},
|
||||
{"object": "ZCL_EXCEL_READER_HUGE_FILE", "class": "lcl_test", "method": "test_shared_string_some_empty", "note": "??"},
|
||||
{"object": "ZCL_EXCEL_READER_HUGE_FILE", "class": "lcl_test", "method": "test_shared_string_multi_style", "note": "??"},
|
||||
{"object": "ZCL_EXCEL_READER_HUGE_FILE", "class": "lcl_test", "method": "test_skip_to_inexistent", "note": "??"},
|
||||
|
||||
{"object": "ZCL_EXCEL_WRITER_2007", "class": "ltc_column_formula", "method": "one_column_formula", "note": "?? CALL TRANSFORMATION xml_header = 'no'"},
|
||||
{"object": "ZCL_EXCEL_WRITER_2007", "class": "ltc_column_formula", "method": "two_column_formulas", "note": "??"},
|
||||
|
||||
{"object": "ZCL_EXCEL_COMMON", "class": "ltc_utclong_to_excel_string", "method": "simple", "note": "?? missing method CL_ABAP_TSTMP=>UTCLONG2TSTMP_SHORT, I'm too lazy to add it today"},
|
||||
{"object": "ZCL_EXCEL_COMMON", "class": "lcl_excel_common_test", "method": "convert_column2int_oob_empty", "note": "?? sy value defaults"}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"configurations": {
|
||||
"default": {
|
||||
"filename": "./abaplint.json"
|
||||
},
|
||||
"steampunk": {
|
||||
"filename": "./abaplint-steampunk.json",
|
||||
"annotations": false
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
{
|
||||
"global": {
|
||||
"files": "/src/**/*.*",
|
||||
"noIssues": ["/demos/", "/not_cloud/"]
|
||||
},
|
||||
"dependencies": [
|
||||
{
|
||||
"url": "https://github.com/abapedia/steampunk-2205-api",
|
||||
"files": "/src/**/*.*"
|
||||
}
|
||||
],
|
||||
"syntax": {
|
||||
"version": "Cloud",
|
||||
"errorNamespace": "."
|
||||
},
|
||||
"rules": {
|
||||
"begin_end_names": {
|
||||
"severity": "Warning"
|
||||
},
|
||||
"check_ddic": {
|
||||
"severity": "Warning"
|
||||
},
|
||||
"check_include": {
|
||||
"severity": "Warning"
|
||||
},
|
||||
"check_syntax": {
|
||||
"severity": "Warning"
|
||||
},
|
||||
"global_class": {
|
||||
"severity": "Warning"
|
||||
},
|
||||
"implement_methods": {
|
||||
"severity": "Warning"
|
||||
},
|
||||
"method_implemented_twice": {
|
||||
"severity": "Warning"
|
||||
},
|
||||
"parser_error": {
|
||||
"severity": "Warning"
|
||||
},
|
||||
"parser_missing_space": {
|
||||
"severity": "Warning"
|
||||
},
|
||||
"superclass_final": {
|
||||
"severity": "Warning"
|
||||
},
|
||||
"unknown_types": {
|
||||
"severity": "Warning"
|
||||
},
|
||||
"xml_consistency": {
|
||||
"severity": "Warning"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -19,27 +19,10 @@
|
|||
"globalMacros": []
|
||||
},
|
||||
"rules": {
|
||||
"align_parameters": false,
|
||||
"cds_legacy_view": true,
|
||||
"cds_parser_error": true,
|
||||
"classic_exceptions_overlap": true,
|
||||
"local_testclass_consistency": true,
|
||||
"no_aliases": false,
|
||||
"no_chained_assignment": false,
|
||||
"unnecessary_pragma": false,
|
||||
"unnecessary_chaining": false,
|
||||
"superfluous_value": true,
|
||||
"static_call_via_instance": false,
|
||||
"slow_parameter_passing": false,
|
||||
"prefer_corresponding": true,
|
||||
"pragma_style": true,
|
||||
"omit_preceding_zeros": true,
|
||||
"no_inline_in_optional_branches": false,
|
||||
"nrob_consistency": true,
|
||||
"no_external_form_calls": true,
|
||||
"constant_classes": true,
|
||||
"cyclic_oo": false,
|
||||
"many_parentheses": true,
|
||||
"pragma_placement": true,
|
||||
"unused_ddic": true,
|
||||
"dangerous_statement": true,
|
||||
"db_operation_in_loop": false,
|
||||
|
@ -53,7 +36,7 @@
|
|||
"prefer_raise_exception_new": true,
|
||||
"select_add_order_by": false,
|
||||
"select_performance": false,
|
||||
"uncaught_exception": true,
|
||||
"uncaught_exception": false,
|
||||
"unsecure_fae": false,
|
||||
"use_class_based_exceptions": false,
|
||||
"call_transaction_authority_check": true,
|
||||
|
@ -94,7 +77,6 @@
|
|||
"avoid_use": {
|
||||
"define": true,
|
||||
"describeLines": false,
|
||||
"testSeams": true,
|
||||
"statics": false,
|
||||
"defaultKey": false,
|
||||
"break": true
|
||||
|
@ -105,6 +87,7 @@
|
|||
"check_comments": false,
|
||||
"check_ddic": true,
|
||||
"check_include": true,
|
||||
"check_no_handler_pragma": true,
|
||||
"check_syntax": true,
|
||||
"check_text_elements": false,
|
||||
"check_transformation_exists": true,
|
||||
|
@ -134,11 +117,10 @@
|
|||
"ignoreFunctionModuleName": false
|
||||
},
|
||||
"local_class_naming": false,
|
||||
"local_testclass_location": true,
|
||||
"main_file_contents": true,
|
||||
"message_exists": false,
|
||||
"msag_consistency": {
|
||||
"numericParamters": false
|
||||
},
|
||||
"msag_consistency": true,
|
||||
"newline_between_methods": false,
|
||||
"no_public_attributes": false,
|
||||
"object_naming": {
|
||||
|
|
2
additional objects/DEVC/ZABAP2XLSX.slnk
Normal file
2
additional objects/DEVC/ZABAP2XLSX.slnk
Normal file
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<DEVC DEVCLASS="ZABAP2XLSX" CTEXT="abap2xlsx" LANGUAGE="E" MASTERLANG="E" KORRFLAG="X" PDEVCLASS="ZHVE" DLVUNIT="HOME" NAMESPACE="/0CUST/" PARENTCL="ZT3G_NW_DEV" CREATED_BY="FEMIA" CREATED_ON="20140905" CHANGED_BY="FEMIA" CHANGED_ON="20141226" PROJECT_GUID="00000000000000000000000000000000"/>
|
139
additional objects/PROG/ZAKE_SVN_A2X.slnk
Normal file
139
additional objects/PROG/ZAKE_SVN_A2X.slnk
Normal file
|
@ -0,0 +1,139 @@
|
|||
<?xml version="1.0" encoding="utf-16"?>
|
||||
<PROG NAME="ZAKE_SVN_A2X" VARCL="X" SUBC="1" CNAM="FEMIA" CDAT="20100713" UNAM="DEVELOPER" UDAT="20120310" VERN="000020" RSTAT="T" RMAND="000" RLOAD="E" FIXPT="X" SDATE="20120310" STIME="172535" IDATE="20120310" ITIME="172535" UCCHECK="X">
|
||||
<textPool>
|
||||
<language SPRAS="E">
|
||||
<textElement ID="R" ENTRY="Program Z_ZAKE_SVN" LENGTH="18 "/>
|
||||
</language>
|
||||
</textPool>
|
||||
<source>*&---------------------------------------------------------------------*
|
||||
*& Report Z_ZAKE_SVN
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
*& Checkout / Checkin the ZAKE_SVN Project
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
|
||||
REPORT zake_svn_a2x.
|
||||
|
||||
CONSTANTS cl_svn TYPE seoclsname VALUE 'ZCL_ZAKE_SVN'.
|
||||
CONSTANTS cl_tortoise_svn TYPE seoclsname VALUE 'ZCL_ZAKE_TORTOISE_SVN'.
|
||||
|
||||
DATA package TYPE devclass.
|
||||
DATA zake TYPE REF TO zake.
|
||||
|
||||
DATA objects TYPE scts_tadir.
|
||||
DATA object LIKE LINE OF objects.
|
||||
|
||||
DATA files TYPE string_table.
|
||||
DATA file LIKE LINE OF files.
|
||||
|
||||
DATA zake_build TYPE string.
|
||||
DATA zake_nuggetname TYPE string.
|
||||
|
||||
DATA comment_str TYPE string.
|
||||
DATA loclpath_str TYPE string.
|
||||
DATA svnpath_str TYPE string.
|
||||
DATA username_str TYPE string.
|
||||
DATA password_str TYPE string.
|
||||
DATA class TYPE seoclsname.
|
||||
|
||||
DATA: ex TYPE REF TO zcx_saplink,
|
||||
message TYPE string.
|
||||
|
||||
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE a.
|
||||
PARAMETERS:
|
||||
checkout TYPE flag RADIOBUTTON GROUP act,
|
||||
update TYPE flag RADIOBUTTON GROUP act DEFAULT 'X',
|
||||
install TYPE flag RADIOBUTTON GROUP act,
|
||||
export TYPE flag RADIOBUTTON GROUP act,
|
||||
build TYPE flag RADIOBUTTON GROUP act,
|
||||
checkin TYPE flag RADIOBUTTON GROUP act.
|
||||
SELECTION-SCREEN END OF BLOCK a.
|
||||
|
||||
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE b.
|
||||
PARAMETERS:
|
||||
svn TYPE flag RADIOBUTTON GROUP cl,
|
||||
tortoise TYPE flag RADIOBUTTON GROUP cl.
|
||||
SELECTION-SCREEN END OF BLOCK b.
|
||||
|
||||
SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE c.
|
||||
PARAMETERS:
|
||||
loclpath TYPE char512 DEFAULT 'C:\Projects\abap2xlsx\trunk' LOWER CASE OBLIGATORY,
|
||||
zakenugg TYPE char512 DEFAULT 'C:\Projects\abap2xlsx\nuggs\abap2xlsx_Daily.nugg' LOWER CASE OBLIGATORY,
|
||||
svnpath TYPE char512 DEFAULT 'https://code.sdn.sap.com/svn/abap2xlsx/trunk' LOWER CASE OBLIGATORY,
|
||||
comment TYPE char512 DEFAULT '' LOWER CASE,
|
||||
username TYPE char512 LOWER CASE,
|
||||
password TYPE char512 LOWER CASE,
|
||||
testrun TYPE flag DEFAULT 'X'.
|
||||
SELECTION-SCREEN END OF BLOCK c.
|
||||
|
||||
INITIALIZATION.
|
||||
a = 'Action'.
|
||||
b = 'Version Controll Program'.
|
||||
c = 'Parameters'.
|
||||
|
||||
START-OF-SELECTION.
|
||||
|
||||
svnpath_str = svnpath.
|
||||
loclpath_str = loclpath.
|
||||
zake_nuggetname = zakenugg.
|
||||
comment_str = comment.
|
||||
|
||||
" SELECT * INTO TABLE objects FROM tadir WHERE devclass = 'ZABAP2XLSX'.
|
||||
" DELETE zake_objects WHERE object = 'DEVC'.
|
||||
|
||||
TRY.
|
||||
IF svn = 'X'.
|
||||
class = cl_svn.
|
||||
ELSE.
|
||||
class = cl_tortoise_svn.
|
||||
ENDIF.
|
||||
|
||||
CREATE OBJECT zake
|
||||
TYPE
|
||||
(class)
|
||||
EXPORTING
|
||||
i_svnpath = svnpath_str
|
||||
i_localpath = loclpath_str.
|
||||
zake->set_testrun( testrun ).
|
||||
zake->set_package( 'ZA2X' ).
|
||||
|
||||
IF checkout = 'X'.
|
||||
zake->checkout( ).
|
||||
ELSEIF update = 'X'.
|
||||
zake->update( ).
|
||||
ELSEIF install = 'X'.
|
||||
zake->install_slinkees_from_lm( testrun ).
|
||||
" zake->install_objects( zake_objects ).
|
||||
ELSEIF export = 'X'.
|
||||
" Build Object list for Export
|
||||
" Programs
|
||||
object-object = 'PROG'.
|
||||
object-obj_name = 'ZAKE_SVN_A2X'.
|
||||
APPEND object TO objects.
|
||||
zake->set_checkin_objects( objects ).
|
||||
zake->download_slinkees_to_lm = abap_true.
|
||||
zake->download_nugget_to_lm = space.
|
||||
zake->download_zip_to_lm_flag = space.
|
||||
zake->create_slinkees( zake_nuggetname ).
|
||||
ELSEIF build = 'X'.
|
||||
" Build a complete package for download
|
||||
zake->set_checkin_objects( objects ).
|
||||
" We don't want that for the complete Package Slinkees are created
|
||||
" in the ZAKE folder
|
||||
zake->download_slinkees_to_lm = space.
|
||||
zake->download_nugget_to_lm = space.
|
||||
zake->create_slinkees( zake_nuggetname ).
|
||||
ELSEIF checkin = 'X'.
|
||||
zake->set_package( 'ZA2X' ).
|
||||
zake->set_checkin_objects( objects ).
|
||||
zake->create_slinkees( zake_nuggetname ).
|
||||
IF testrun IS INITIAL.
|
||||
zake->checkin( comment_str ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
CATCH zcx_saplink INTO ex.
|
||||
message = ex->msg.
|
||||
WRITE: / 'An Error occured: ', message.
|
||||
ENDTRY.</source>
|
||||
</PROG>
|
71
additional objects/PROG/ZDEMO_EXCEL_GAPPS.slnk
Normal file
71
additional objects/PROG/ZDEMO_EXCEL_GAPPS.slnk
Normal file
|
@ -0,0 +1,71 @@
|
|||
<?xml version="1.0" encoding="utf-16"?>
|
||||
<PROG NAME="ZDEMO_EXCEL_GAPPS" VARCL="X" SUBC="1" CNAM="IANNACCI" CDAT="20110823" UNAM="FEMIA" UDAT="20110907" VERN="000012" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" SDATE="20110907" STIME="221339" IDATE="20110907" ITIME="221339" UCCHECK="X">
|
||||
<textPool>
|
||||
<language SPRAS="E">
|
||||
<textElement ID="R" ENTRY="From abap2xlsx to abap2gapps Demo: Hello World" LENGTH="46 "/>
|
||||
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
|
||||
</language>
|
||||
</textPool>
|
||||
<source>*&---------------------------------------------------------------------*
|
||||
*& Report ZDEMO_EXCEL1
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
*&
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
|
||||
REPORT zdemo_excel_gapps.
|
||||
|
||||
DATA: lo_excel TYPE REF TO zcl_excel,
|
||||
lo_excel_writer TYPE REF TO zif_excel_writer,
|
||||
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
||||
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
|
||||
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
|
||||
|
||||
DATA: lv_file TYPE xstring,
|
||||
lv_bytecount TYPE i.
|
||||
|
||||
|
||||
PARAMETERS: consumer TYPE zoauth2_consumer_name,
|
||||
username TYPE zoauth2_user_name,
|
||||
proxyhst TYPE string,
|
||||
proxysrv TYPE string,
|
||||
ssl_id TYPE ssfapplssl DEFAULT 'ANONYM'.
|
||||
|
||||
START-OF-SELECTION.
|
||||
|
||||
|
||||
" Creates active sheet
|
||||
CREATE OBJECT lo_excel.
|
||||
|
||||
" Get active sheet
|
||||
lo_worksheet = lo_excel->get_active_worksheet( ).
|
||||
lo_worksheet->set_title( ip_title = 'Sheet1' ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = sy-datum ).
|
||||
lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ).
|
||||
lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'https://cw.sdn.sap.com/cw/groups/abap2xlsx' ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 4 ip_value = 'Click here to visit abap2xlsx homepage' ip_hyperlink = lo_hyperlink ).
|
||||
|
||||
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
|
||||
column_dimension->set_width( ip_width = 11 ).
|
||||
|
||||
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
|
||||
lv_file = lo_excel_writer->write_file( lo_excel ).
|
||||
|
||||
" Save the file ONLINE
|
||||
DATA: lo_spreadsheet TYPE REF TO zcl_docs_spreadsheet.
|
||||
|
||||
CREATE OBJECT lo_spreadsheet
|
||||
EXPORTING
|
||||
i_consumer_name = consumer
|
||||
i_user_name = username
|
||||
i_proxy_host = proxyhst
|
||||
i_proxy_service = proxysrv
|
||||
i_ssl_id = ssl_id.
|
||||
|
||||
lv_bytecount = XSTRLEN( lv_file ).
|
||||
|
||||
lo_spreadsheet->zif_docs~upload( i_document = lv_file
|
||||
i_title = 'demo1froma2xlsx' i_size = lv_bytecount ).</source>
|
||||
</PROG>
|
4
additional objects/WDYA/ZDEMO_EXCEL_WDA01.slnk
Normal file
4
additional objects/WDYA/ZDEMO_EXCEL_WDA01.slnk
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-16"?>
|
||||
<WDYA APPLICATION_NAME="ZDEMO_EXCEL_WDA01" COMPONENT="ZDEMO_EXCEL_WDA01" STARTUP_VIEW="W_MAIN" STARTUP_PLUG="DEFAULT" DISPLAY_NAME="ZDEMO_EXCEL_WDA01" MSG_DISP_MODE="00" help_desc_txt="">
|
||||
<wdy_applicationt APPLICATION_NAME="ZDEMO_EXCEL_WDA01" LANGU="E" DESCRIPTION="abap2xlsx Web Dynpro Demo 1"/>
|
||||
</WDYA>
|
177
additional objects/WDYN/ZDEMO_EXCEL_WDA01.slnk
Normal file
177
additional objects/WDYN/ZDEMO_EXCEL_WDA01.slnk
Normal file
|
@ -0,0 +1,177 @@
|
|||
<?xml version="1.0" encoding="utf-16"?>
|
||||
<WDYN COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VERSION="I" TYPE="0" CMP_CONTROLLER="COMPONENTCONTROLLER" CMP_INTERFACE="COMPONENTINTERFACE" DISPLAY_NAME="ZDEMO_EXCEL_WDA01" GENDATE="00000000" GENTIME="000000" CONFIG_EXPL_PROP="0" CONFIG_IMPL_PROP="0" P13N_EXPL_PROP="0" P13N_IMPL_PROP="0">
|
||||
<wdy_componentt COMPONENT_NAME="ZDEMO_EXCEL_WDA01" LANGU="E" DESCRIPTION="abap2xlsx Web Dynpro Demo 1"/>
|
||||
<view_definition COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" VERSION="I" TYPE="CL_WDY_MD_VIEW" VIEW_TYPE="00" LIFESPAN="0" VIEW_CONTROLLER="V_MAIN" ROOT_UI_CONT="ROOTUIELEMENTCONTAINER" DISPLAY_NAME="V_MAIN" VISIBILITY="00">
|
||||
<wdy_ui_element COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" ELEMENT_POSITION="1 " UI_ELEMENT_TYPE="CL_WDY_MD_BUTTON" DISPLAY_NAME="BTN_DOWNLOAD" UI_ELEM_DEF_LIB="STANDARD" UI_ELEMENT_DEF="BUTTON" PARENT_NAME="ROOTUIELEMENTCONTAINER" AGGREGATION_NAME="CHILDREN"/>
|
||||
<wdy_ui_element COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD_LD" VERSION="I" ELEMENT_POSITION="1 " UI_ELEMENT_TYPE="CL_WDY_MD_FLOW_DATA" DISPLAY_NAME="BTN_DOWNLOAD_LD" UI_ELEM_DEF_LIB="STANDARD" UI_ELEMENT_DEF="FLOW_DATA" PARENT_NAME="BTN_DOWNLOAD" AGGREGATION_NAME="LAYOUT_DATA"/>
|
||||
<wdy_ui_element COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="ROOTUIELEMENTCONTAINER" VERSION="I" ELEMENT_POSITION="0 " UI_ELEMENT_TYPE="CL_WDY_MD_TRANSP_CONTAINER" DISPLAY_NAME="ROOTUIELEMENTCONTAINER" UI_ELEM_DEF_LIB="STANDARD" UI_ELEMENT_DEF="TRANSPARENT_CONTAINER"/>
|
||||
<wdy_ui_element COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="ROOTUIELEMENTCONTAINER_LAYOUT" VERSION="I" ELEMENT_POSITION="1 " UI_ELEMENT_TYPE="CL_WDY_MD_FLOW_LAYOUT" DISPLAY_NAME="ROOTUIELEMENTCONTAINER_LAYOUT" UI_ELEM_DEF_LIB="STANDARD" UI_ELEMENT_DEF="FLOW_LAYOUT" PARENT_NAME="ROOTUIELEMENTCONTAINER" AGGREGATION_NAME="LAYOUT"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" PROPERTY_NAME="CONTEXT_MENU_BEHAVIOUR" PROPERTY_VALUE="00"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" PROPERTY_NAME="DESIGN" PROPERTY_VALUE="00"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" PROPERTY_NAME="ENABLED" PROPERTY_VALUE="X"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" PROPERTY_NAME="HOTKEY" PROPERTY_VALUE="00"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" PROPERTY_NAME="IMAGE_FIRST" PROPERTY_VALUE="X"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" PROPERTY_NAME="TEXT" PROPERTY_VALUE="0202322174CD1ED1B3F0A0BDD61CD704" PropText="Download"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" PROPERTY_NAME="TEXT_DIRECTION" PROPERTY_VALUE="02"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" PROPERTY_NAME="VISIBLE" PROPERTY_VALUE="02"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD_LD" VERSION="I" PROPERTY_NAME="CELL_DESIGN" PROPERTY_VALUE="04"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD_LD" VERSION="I" PROPERTY_NAME="V_GUTTER" PROPERTY_VALUE="00"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="ROOTUIELEMENTCONTAINER" VERSION="I" PROPERTY_NAME="CONTEXT_MENU_BEHAVIOUR" PROPERTY_VALUE="00"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="ROOTUIELEMENTCONTAINER" VERSION="I" PROPERTY_NAME="ENABLED" PROPERTY_VALUE="X"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="ROOTUIELEMENTCONTAINER" VERSION="I" PROPERTY_NAME="IS_LAYOUT_CONTAINER" PROPERTY_VALUE="X"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="ROOTUIELEMENTCONTAINER" VERSION="I" PROPERTY_NAME="SCROLLING_MODE" PROPERTY_VALUE="02"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="ROOTUIELEMENTCONTAINER" VERSION="I" PROPERTY_NAME="VISIBLE" PROPERTY_VALUE="02"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="ROOTUIELEMENTCONTAINER_LAYOUT" VERSION="I" PROPERTY_NAME="WRAPPING" PROPERTY_VALUE="X"/>
|
||||
<wdy_ui_evt_bind COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" BINDING_NAME="ON_ACTION" VERSION="I" UI_ELEM_EVENT="ON_ACTION" BOUND_ACTION="BTN_DOWNLOAD"/>
|
||||
<controller_definition COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" VERSION="I" CONTROLLER_TYPE="01" CONTEXT="CONTEXT" DISPLAY_NAME="V_MAIN">
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="BTN_DOWNLOAD" VERSION="I" CMPTYPE="CL_WDY_MD_ACTION" CMP_POSITION="0 " VISIBILITY="0" DISPLAY_NAME="BTN_DOWNLOAD" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="ONACTIONBTN_DOWNLOAD" VERSION="I" CMPTYPE="CL_WDY_MD_CTLR_EVENT_HANDLER" CMP_POSITION="0 " VISIBILITY="2" REF_CTLR_NAME="V_MAIN" REF_CMPNAME="BTN_DOWNLOAD" DISPLAY_NAME="ONACTIONBTN_DOWNLOAD" CODE_BODY="METHOD onactionbtn_download .
|
||||
|
||||
DATA: lo_excel TYPE REF TO zcl_excel,
|
||||
lo_excel_writer TYPE REF TO zcl_excel_writer_2007,
|
||||
lo_worksheet TYPE REF TO zcl_excel_worksheet.
|
||||
DATA: lv_content TYPE xstring.
|
||||
|
||||
CREATE OBJECT lo_excel.
|
||||
lo_worksheet = lo_excel->get_active_worksheet( ).
|
||||
|
||||
lo_worksheet->set_cell( ip_column = 'B'
|
||||
ip_row = '2'
|
||||
ip_value = 'Welcome to Web Dynpro and abap2xlsx.' ).
|
||||
|
||||
CREATE OBJECT lo_excel_writer.
|
||||
lv_content = lo_excel_writer->zif_excel_writer~write_file( lo_excel ).
|
||||
|
||||
DATA: lv_filename TYPE string.
|
||||
lv_filename = 'wda01.xlsx'.
|
||||
|
||||
CALL METHOD cl_wd_runtime_services=>attach_file_to_response
|
||||
EXPORTING
|
||||
i_filename = lv_filename
|
||||
i_content = lv_content
|
||||
i_mime_type = 'EXCEL'
|
||||
i_in_new_window = abap_false
|
||||
i_inplace = abap_false.
|
||||
|
||||
ENDMETHOD.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOAFTERACTION" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOAFTERACTION" CODE_BODY="method WDDOAFTERACTION .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOBEFOREACTION" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOBEFOREACTION" CODE_BODY="method WDDOBEFOREACTION .
|
||||
* data lo_api_controller type ref to if_wd_view_controller.
|
||||
* data lo_action type ref to if_wd_action.
|
||||
|
||||
* lo_api_controller = wd_this->wd_get_api( ).
|
||||
* lo_action = lo_api_controller->get_current_action( ).
|
||||
|
||||
* if lo_action is bound.
|
||||
* case lo_action->name.
|
||||
* when '...'.
|
||||
|
||||
* endcase.
|
||||
* endif.
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOEXIT" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOEXIT" CODE_BODY="method WDDOEXIT .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOINIT" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOINIT" CODE_BODY="method WDDOINIT .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOMODIFYVIEW" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOMODIFYVIEW" CODE_BODY="method WDDOMODIFYVIEW .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOONCONTEXTMENU" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOONCONTEXTMENU" CODE_BODY="method WDDOONCONTEXTMENU .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="BTN_DOWNLOAD" LANGU="E" DESCRIPTION="Download Excel file"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="ONACTIONBTN_DOWNLOAD" LANGU="E" DESCRIPTION="Download Excel file"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOAFTERACTION" LANGU="E" DESCRIPTION="Method for non-action specific operations before navigation"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOBEFOREACTION" LANGU="E" DESCRIPTION="Method for Validation of User Input"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOEXIT" LANGU="E" DESCRIPTION="Controller Clean-Up Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOINIT" LANGU="E" DESCRIPTION="Controller Initialization Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOMODIFYVIEW" LANGU="E" DESCRIPTION="Method for Modifying the View Before Rendering"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOONCONTEXTMENU" LANGU="E" DESCRIPTION="Method for Modifying the Context Menu"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOMODIFYVIEW" PARAMETER_NAME="FIRST_TIME" VERSION="I" PARAM_POSITION="1 " DECLARATION_TYPE="0" ABAP_TYPING="0" ABAP_TYPE="WDY_BOOLEAN" DISPLAY_NAME="FIRST_TIME"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOMODIFYVIEW" PARAMETER_NAME="VIEW" VERSION="I" PARAM_POSITION="2 " DECLARATION_TYPE="0" ABAP_TYPING="1" ABAP_TYPE="IF_WD_VIEW" DISPLAY_NAME="VIEW"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOONCONTEXTMENU" PARAMETER_NAME="CONTEXT_MENU_EVENT" VERSION="I" PARAM_POSITION="1 " DECLARATION_TYPE="0" ABAP_TYPING="1" ABAP_TYPE="IF_WD_CONTEXT_MENU_EVENT" DISPLAY_NAME="CONTEXT_MENU_EVENT"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOONCONTEXTMENU" PARAMETER_NAME="CONTEXT_MENU_MANAGER" VERSION="I" PARAM_POSITION="2 " DECLARATION_TYPE="0" ABAP_TYPING="1" ABAP_TYPE="IF_WD_CONTEXT_MENU_MANAGER" DISPLAY_NAME="CONTEXT_MENU_MANAGER"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOONCONTEXTMENU" PARAMETER_NAME="MENU" VERSION="I" PARAM_POSITION="3 " DECLARATION_TYPE="3" ABAP_TYPING="1" ABAP_TYPE="CL_WD_MENU" DISPLAY_NAME="MENU"/>
|
||||
<wdy_ctlr_usage COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CTLR_USAGE_NAME="00O2TRN3HOPNY2XMW9ZPOIO72" VERSION="I" USED_CONTROLLER="COMPONENTCONTROLLER"/>
|
||||
<wdy_ctx_node COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" NODE_NAME="CONTEXT" VERSION="I" NODE_TYPE="CL_WDY_MD_CONTEXT_VALUE_NODE" NODE_POSITION="0 " COLLECTION_TYPE="03" CARDINALITY="01" SELECTION="01" SINGLETON="X" DISPLAY_NAME="CONTEXT" ABAP_TYPING="0" INIT_LEAD_SELECT="X"/>
|
||||
</controller_definition>
|
||||
</view_definition>
|
||||
<view_definition COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="W_MAIN" VERSION="I" TYPE="CL_WDY_MD_WINDOW" VIEW_TYPE="00" LIFESPAN="0" VIEW_CONTROLLER="W_MAIN" DISPLAY_NAME="W_MAIN" DEF_ROOT_NODE="V_MAIN_USAGE_0" VISIBILITY="00">
|
||||
<view_window title=""/>
|
||||
<wdy_iobound_plug COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="W_MAIN" PLUG_NAME="DEFAULT" VERSION="I" PLUG_TYPE="CL_WDY_MD_INBOUND_PLUG" IN_PLUG_TYPE="1" OUT_PLUG_TYPE="0" DISPLAY_NAME="DEFAULT" IS_INTF_ITEM="X"/>
|
||||
<wdy_vsh_node COMPONENT_NAME="ZDEMO_EXCEL_WDA01" WINDOW_NAME="W_MAIN" VSH_NODE_NAME="V_MAIN_USAGE_0" VERSION="I" VSH_NODE_TYPE="CL_WDY_MD_VIEW_USAGE" USED_VIEW="V_MAIN" DISPLAY_NAME="V_MAIN_USAGE_0"/>
|
||||
<controller_definition COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" VERSION="I" CONTROLLER_TYPE="06" CONTEXT="CONTEXT" DISPLAY_NAME="W_MAIN">
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="HANDLEDEFAULT" VERSION="I" CMPTYPE="CL_WDY_MD_CTLR_EVENT_HANDLER" CMP_POSITION="1 " VISIBILITY="2" REF_VIEW_NAME="W_MAIN" REF_PLUG_NAME="DEFAULT" DISPLAY_NAME="HANDLEDEFAULT" CODE_BODY="method HANDLEDEFAULT .
|
||||
endmethod." ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOEXIT" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOEXIT" CODE_BODY="method WDDOEXIT .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOINIT" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOINIT" CODE_BODY="method WDDOINIT .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOONCLOSE" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOONCLOSE" CODE_BODY="method WDDOONCLOSE .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOONOPEN" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOONOPEN" CODE_BODY="method WDDOONOPEN .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOEXIT" LANGU="E" DESCRIPTION="Controller Clean-Up Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOINIT" LANGU="E" DESCRIPTION="Controller Initialization Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOONCLOSE" LANGU="E" DESCRIPTION="Handling For Closing of Window"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOONOPEN" LANGU="E" DESCRIPTION="Handling For Opening of Window"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOONOPEN" PARAMETER_NAME="WINDOW_DESCR" VERSION="I" PARAM_POSITION="1 " DECLARATION_TYPE="0" ABAP_TYPING="1" ABAP_TYPE="IF_WD_WINDOW_DESCRIPTION" DISPLAY_NAME="WINDOW_DESCR"/>
|
||||
<wdy_ctlr_usage COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CTLR_USAGE_NAME="00O2TRN3HOPNY2XMW9ZPOIHVI" VERSION="I" USED_CONTROLLER="COMPONENTCONTROLLER"/>
|
||||
<wdy_ctx_node COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" NODE_NAME="CONTEXT" VERSION="I" NODE_TYPE="CL_WDY_MD_CONTEXT_VALUE_NODE" NODE_POSITION="0 " COLLECTION_TYPE="03" CARDINALITY="01" SELECTION="01" SINGLETON="X" DISPLAY_NAME="CONTEXT" ABAP_TYPING="0" INIT_LEAD_SELECT="X"/>
|
||||
</controller_definition>
|
||||
</view_definition>
|
||||
<controller_definition COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" VERSION="I" CONTROLLER_TYPE="02" CONTEXT="CONTEXT" DISPLAY_NAME="COMPONENTCONTROLLER" RUNTIME_OBJECT="ZIWCI_DEMO_EXCEL_WDA01">
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOAPPLICATIONSTATECHANGE" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOAPPLICATIONSTATECHANGE" CODE_BODY="method WDDOAPPLICATIONSTATECHANGE .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOBEFORENAVIGATION" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOBEFORENAVIGATION" CODE_BODY="method WDDOBEFORENAVIGATION .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOEXIT" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOEXIT" CODE_BODY="method WDDOEXIT .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOINIT" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOINIT" CODE_BODY="method WDDOINIT .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOPOSTPROCESSING" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOPOSTPROCESSING" CODE_BODY="method WDDOPOSTPROCESSING .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOAPPLICATIONSTATECHANGE" LANGU="E" DESCRIPTION="Handling for Suspending and Resuming an Application"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOBEFORENAVIGATION" LANGU="E" DESCRIPTION="Error Handling Before Navigation Through Application"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOEXIT" LANGU="E" DESCRIPTION="Controller Clean-Up Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOINIT" LANGU="E" DESCRIPTION="Controller Initialization Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOPOSTPROCESSING" LANGU="E" DESCRIPTION="Prepare Output"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOAPPLICATIONSTATECHANGE" PARAMETER_NAME="STATE_CHANGE" VERSION="I" PARAM_POSITION="1 " DECLARATION_TYPE="0" ABAP_TYPING="1" ABAP_TYPE="IF_WD_APPLICATION_STATE_CHANGE" DISPLAY_NAME="STATE_CHANGE"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOBEFORENAVIGATION" PARAMETER_NAME="IS_CURRENT_ROOT" VERSION="I" PARAM_POSITION="1 " DECLARATION_TYPE="0" ABAP_TYPING="0" ABAP_TYPE="WDY_BOOLEAN" DISPLAY_NAME="IS_CURRENT_ROOT"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOEXIT" PARAMETER_NAME="REASON" VERSION="I" PARAM_POSITION="1 " DECLARATION_TYPE="0" ABAP_TYPING="0" ABAP_TYPE="WDR_APPL_EXIT_REASON" DISPLAY_NAME="REASON"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOPOSTPROCESSING" PARAMETER_NAME="IS_CURRENT_ROOT" VERSION="I" PARAM_POSITION="1 " DECLARATION_TYPE="0" ABAP_TYPING="0" ABAP_TYPE="WDY_BOOLEAN" DISPLAY_NAME="IS_CURRENT_ROOT"/>
|
||||
<wdy_ctx_node COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" NODE_NAME="CONTEXT" VERSION="I" NODE_TYPE="CL_WDY_MD_CONTEXT_VALUE_NODE" NODE_POSITION="0 " COLLECTION_TYPE="03" CARDINALITY="01" SELECTION="01" SINGLETON="X" DISPLAY_NAME="CONTEXT" ABAP_TYPING="0" INIT_LEAD_SELECT="X" IS_INTF_ITEM="X"/>
|
||||
</controller_definition>
|
||||
<controller_definition COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="EMPTYVIEW" VERSION="A" CONTROLLER_TYPE="01" DISPLAY_NAME="EMPTYVIEW"/>
|
||||
<controller_definition COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" VERSION="A" CONTROLLER_TYPE="01" DISPLAY_NAME="V_MAIN">
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="BTN_DOWNLOAD" LANGU="E" DESCRIPTION="Download Excel file"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="ONACTIONBTN_DOWNLOAD" LANGU="E" DESCRIPTION="Download Excel file"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOAFTERACTION" LANGU="E" DESCRIPTION="Method for non-action specific operations before navigation"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOBEFOREACTION" LANGU="E" DESCRIPTION="Method for Validation of User Input"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOEXIT" LANGU="E" DESCRIPTION="Controller Clean-Up Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOINIT" LANGU="E" DESCRIPTION="Controller Initialization Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOMODIFYVIEW" LANGU="E" DESCRIPTION="Method for Modifying the View Before Rendering"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOONCONTEXTMENU" LANGU="E" DESCRIPTION="Method for Modifying the Context Menu"/>
|
||||
</controller_definition>
|
||||
<controller_definition COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" VERSION="A" CONTROLLER_TYPE="06" DISPLAY_NAME="W_MAIN">
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOEXIT" LANGU="E" DESCRIPTION="Controller Clean-Up Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOINIT" LANGU="E" DESCRIPTION="Controller Initialization Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOONCLOSE" LANGU="E" DESCRIPTION="Handling For Closing of Window"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOONOPEN" LANGU="E" DESCRIPTION="Handling For Opening of Window"/>
|
||||
</controller_definition>
|
||||
</WDYN>
|
BIN
build/6.20 patch/abap2xlsx6.20patch.nugg.zip
Normal file
BIN
build/6.20 patch/abap2xlsx6.20patch.nugg.zip
Normal file
Binary file not shown.
42337
build/ABAP2XLSX_V_7_0_4.nugg
Normal file
42337
build/ABAP2XLSX_V_7_0_4.nugg
Normal file
File diff suppressed because it is too large
Load Diff
BIN
build/ABAP2XLSX_V_7_0_4.nugg.zip
Normal file
BIN
build/ABAP2XLSX_V_7_0_4.nugg.zip
Normal file
Binary file not shown.
43758
build/ABAP2XLSX_V_7_0_5 - 2015-08-04.nugg
Normal file
43758
build/ABAP2XLSX_V_7_0_5 - 2015-08-04.nugg
Normal file
File diff suppressed because it is too large
Load Diff
BIN
build/ABAP2XLSX_V_7_0_5 - 2015-08-04.nugg.zip
Normal file
BIN
build/ABAP2XLSX_V_7_0_5 - 2015-08-04.nugg.zip
Normal file
Binary file not shown.
46132
build/ABAP2XLSX_V_7_0_6 - 2016-04-01.nugg
Normal file
46132
build/ABAP2XLSX_V_7_0_6 - 2016-04-01.nugg
Normal file
File diff suppressed because it is too large
Load Diff
BIN
build/ABAP2XLSX_V_7_0_6 - 2016-04-01.nugg.zip
Normal file
BIN
build/ABAP2XLSX_V_7_0_6 - 2016-04-01.nugg.zip
Normal file
Binary file not shown.
BIN
build/ABAP2XLSX_V_7_0_6 - 2016-04-01.zip
Normal file
BIN
build/ABAP2XLSX_V_7_0_6 - 2016-04-01.zip
Normal file
Binary file not shown.
202
build/LICENSE.txt
Normal file
202
build/LICENSE.txt
Normal file
|
@ -0,0 +1,202 @@
|
|||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
BIN
build/Transport-2019-02-20.zip
Normal file
BIN
build/Transport-2019-02-20.zip
Normal file
Binary file not shown.
BIN
build/Version history.docx
Normal file
BIN
build/Version history.docx
Normal file
Binary file not shown.
BIN
build/Version history.pdf
Normal file
BIN
build/Version history.pdf
Normal file
Binary file not shown.
272
build/extra/NUGG_ABAP2XLSX - EXTRA.nugg
Normal file
272
build/extra/NUGG_ABAP2XLSX - EXTRA.nugg
Normal file
|
@ -0,0 +1,272 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<nugget name="ABAP2XLSX - EXTRA">
|
||||
<INTF CLSNAME="ZIWCI_DEMO_EXCEL_WDA01" VERSION="1" LANGU="E" DESCRIPT="WebDynpro Interface COMPONENTCONTROLLER" CATEGORY="80" EXPOSURE="2" STATE="1" RELEASE="0" UNICODE="X">
|
||||
<method CLSNAME="ZIWCI_DEMO_EXCEL_WDA01" CMPNAME="WD_GET_API" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
|
||||
<parameter CLSNAME="ZIWCI_DEMO_EXCEL_WDA01" CMPNAME="WD_GET_API" SCONAME="RESULT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="IF_WD_CONTROLLER"/>
|
||||
</method>
|
||||
</INTF>
|
||||
<WDYA APPLICATION_NAME="ZDEMO_EXCEL_WDA01" COMPONENT="ZDEMO_EXCEL_WDA01" STARTUP_VIEW="W_MAIN" STARTUP_PLUG="DEFAULT" DISPLAY_NAME="ZDEMO_EXCEL_WDA01" MSG_DISP_MODE="00" AUTHORITY_CHECK="00" SESSION_KIND="00" help_desc_txt="">
|
||||
<wdy_applicationt APPLICATION_NAME="ZDEMO_EXCEL_WDA01" LANGU="E" DESCRIPTION="abap2xlsx Web Dynpro Demo 1"/>
|
||||
</WDYA>
|
||||
<WDYN COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VERSION="A" TYPE="0" CMP_CONTROLLER="COMPONENTCONTROLLER" CMP_INTERFACE="COMPONENTINTERFACE" DISPLAY_NAME="ZDEMO_EXCEL_WDA01" CONFIG_EXPL_PROP="0" CONFIG_IMPL_PROP="0" P13N_EXPL_PROP="0" P13N_IMPL_PROP="0">
|
||||
<wdy_componentt COMPONENT_NAME="ZDEMO_EXCEL_WDA01" LANGU="E" DESCRIPTION="abap2xlsx Web Dynpro Demo 1"/>
|
||||
<view_definition COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" VERSION="A" TYPE="CL_WDY_MD_VIEW" VIEW_TYPE="00" LIFESPAN="0" VIEW_CONTROLLER="V_MAIN" ROOT_UI_CONT="ROOTUIELEMENTCONTAINER" DISPLAY_NAME="V_MAIN" VISIBILITY="00">
|
||||
<wdy_ui_element COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" ELEMENT_POSITION="1 " UI_ELEMENT_TYPE="CL_WDY_MD_BUTTON" DISPLAY_NAME="BTN_DOWNLOAD" UI_ELEM_DEF_LIB="STANDARD" UI_ELEMENT_DEF="BUTTON" PARENT_NAME="ROOTUIELEMENTCONTAINER" AGGREGATION_NAME="CHILDREN"/>
|
||||
<wdy_ui_element COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD_LD" VERSION="I" ELEMENT_POSITION="1 " UI_ELEMENT_TYPE="CL_WDY_MD_FLOW_DATA" DISPLAY_NAME="BTN_DOWNLOAD_LD" UI_ELEM_DEF_LIB="STANDARD" UI_ELEMENT_DEF="FLOW_DATA" PARENT_NAME="BTN_DOWNLOAD" AGGREGATION_NAME="LAYOUT_DATA"/>
|
||||
<wdy_ui_element COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="ROOTUIELEMENTCONTAINER" VERSION="I" ELEMENT_POSITION="0 " UI_ELEMENT_TYPE="CL_WDY_MD_TRANSP_CONTAINER" DISPLAY_NAME="ROOTUIELEMENTCONTAINER" UI_ELEM_DEF_LIB="STANDARD" UI_ELEMENT_DEF="TRANSPARENT_CONTAINER"/>
|
||||
<wdy_ui_element COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="ROOTUIELEMENTCONTAINER_LAYOUT" VERSION="I" ELEMENT_POSITION="1 " UI_ELEMENT_TYPE="CL_WDY_MD_FLOW_LAYOUT" DISPLAY_NAME="ROOTUIELEMENTCONTAINER_LAYOUT" UI_ELEM_DEF_LIB="STANDARD" UI_ELEMENT_DEF="FLOW_LAYOUT" PARENT_NAME="ROOTUIELEMENTCONTAINER" AGGREGATION_NAME="LAYOUT"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" PROPERTY_NAME="CONTEXT_MENU_BEHAVIOUR" PROPERTY_VALUE="00"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" PROPERTY_NAME="DESIGN" PROPERTY_VALUE="00"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" PROPERTY_NAME="ENABLED" PROPERTY_VALUE="X"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" PROPERTY_NAME="HOTKEY" PROPERTY_VALUE="00"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" PROPERTY_NAME="IMAGE_FIRST" PROPERTY_VALUE="X"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" PROPERTY_NAME="TEXT" PROPERTY_VALUE="0202322174CD1ED1B3F0A0BDD61CD704" PropText="Download"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" PROPERTY_NAME="TEXT_DIRECTION" PROPERTY_VALUE="02"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" VERSION="I" PROPERTY_NAME="VISIBLE" PROPERTY_VALUE="02"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD_LD" VERSION="I" PROPERTY_NAME="CELL_DESIGN" PROPERTY_VALUE="04"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD_LD" VERSION="I" PROPERTY_NAME="V_GUTTER" PROPERTY_VALUE="00"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="ROOTUIELEMENTCONTAINER" VERSION="I" PROPERTY_NAME="CONTEXT_MENU_BEHAVIOUR" PROPERTY_VALUE="00"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="ROOTUIELEMENTCONTAINER" VERSION="I" PROPERTY_NAME="ENABLED" PROPERTY_VALUE="X"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="ROOTUIELEMENTCONTAINER" VERSION="I" PROPERTY_NAME="IS_LAYOUT_CONTAINER" PROPERTY_VALUE="X"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="ROOTUIELEMENTCONTAINER" VERSION="I" PROPERTY_NAME="SCROLLING_MODE" PROPERTY_VALUE="02"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="ROOTUIELEMENTCONTAINER" VERSION="I" PROPERTY_NAME="VISIBLE" PROPERTY_VALUE="02"/>
|
||||
<wdy_ui_property COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="ROOTUIELEMENTCONTAINER_LAYOUT" VERSION="I" PROPERTY_NAME="WRAPPING" PROPERTY_VALUE="X"/>
|
||||
<wdy_ui_evt_bind COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="V_MAIN" ELEMENT_NAME="BTN_DOWNLOAD" BINDING_NAME="ON_ACTION" VERSION="I" UI_ELEM_EVENT="ON_ACTION" BOUND_ACTION="BTN_DOWNLOAD"/>
|
||||
<controller_definition COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" VERSION="A" CONTROLLER_TYPE="01" CONTEXT="CONTEXT" DISPLAY_NAME="V_MAIN">
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="BTN_DOWNLOAD" VERSION="I" CMPTYPE="CL_WDY_MD_ACTION" CMP_POSITION="0 " VISIBILITY="0" DISPLAY_NAME="BTN_DOWNLOAD" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="ONACTIONBTN_DOWNLOAD" VERSION="I" CMPTYPE="CL_WDY_MD_CTLR_EVENT_HANDLER" CMP_POSITION="0 " VISIBILITY="2" REF_CTLR_NAME="V_MAIN" REF_CMPNAME="BTN_DOWNLOAD" DISPLAY_NAME="ONACTIONBTN_DOWNLOAD" CODE_BODY="METHOD onactionbtn_download .
|
||||
|
||||
DATA: lo_excel TYPE REF TO zcl_excel,
|
||||
lo_excel_writer TYPE REF TO zcl_excel_writer_2007,
|
||||
lo_worksheet TYPE REF TO zcl_excel_worksheet.
|
||||
DATA: lv_content TYPE xstring.
|
||||
|
||||
CREATE OBJECT lo_excel.
|
||||
lo_worksheet = lo_excel->get_active_worksheet( ).
|
||||
|
||||
lo_worksheet->set_cell( ip_column = 'B'
|
||||
ip_row = '2'
|
||||
ip_value = 'Welcome to Web Dynpro and abap2xlsx.' ).
|
||||
|
||||
CREATE OBJECT lo_excel_writer.
|
||||
lv_content = lo_excel_writer->zif_excel_writer~write_file( lo_excel ).
|
||||
|
||||
DATA: lv_filename TYPE string.
|
||||
lv_filename = 'wda01.xlsx'.
|
||||
|
||||
CALL METHOD cl_wd_runtime_services=>attach_file_to_response
|
||||
EXPORTING
|
||||
i_filename = lv_filename
|
||||
i_content = lv_content
|
||||
i_mime_type = 'EXCEL'
|
||||
i_in_new_window = abap_false
|
||||
i_inplace = abap_false.
|
||||
|
||||
ENDMETHOD.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOAFTERACTION" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOAFTERACTION" CODE_BODY="method WDDOAFTERACTION .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOBEFOREACTION" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOBEFOREACTION" CODE_BODY="method WDDOBEFOREACTION .
|
||||
* data lo_api_controller type ref to if_wd_view_controller.
|
||||
* data lo_action type ref to if_wd_action.
|
||||
|
||||
* lo_api_controller = wd_this->wd_get_api( ).
|
||||
* lo_action = lo_api_controller->get_current_action( ).
|
||||
|
||||
* if lo_action is bound.
|
||||
* case lo_action->name.
|
||||
* when '...'.
|
||||
|
||||
* endcase.
|
||||
* endif.
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOEXIT" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOEXIT" CODE_BODY="method WDDOEXIT .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOINIT" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOINIT" CODE_BODY="method WDDOINIT .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOMODIFYVIEW" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOMODIFYVIEW" CODE_BODY="method WDDOMODIFYVIEW .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOONCONTEXTMENU" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOONCONTEXTMENU" CODE_BODY="method WDDOONCONTEXTMENU .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="BTN_DOWNLOAD" LANGU="E" DESCRIPTION="Download Excel file"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="ONACTIONBTN_DOWNLOAD" LANGU="E" DESCRIPTION="Download Excel file"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOAFTERACTION" LANGU="E" DESCRIPTION="Method for non-action specific operations before navigation"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOBEFOREACTION" LANGU="E" DESCRIPTION="Method for Validation of User Input"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOEXIT" LANGU="E" DESCRIPTION="Controller Clean-Up Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOINIT" LANGU="E" DESCRIPTION="Controller Initialization Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOMODIFYVIEW" LANGU="E" DESCRIPTION="Method for Modifying the View Before Rendering"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOONCONTEXTMENU" LANGU="E" DESCRIPTION="Method for Modifying the Context Menu"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOMODIFYVIEW" PARAMETER_NAME="FIRST_TIME" VERSION="I" PARAM_POSITION="1 " DECLARATION_TYPE="0" ABAP_TYPING="0" ABAP_TYPE="WDY_BOOLEAN" DISPLAY_NAME="FIRST_TIME"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOMODIFYVIEW" PARAMETER_NAME="VIEW" VERSION="I" PARAM_POSITION="2 " DECLARATION_TYPE="0" ABAP_TYPING="1" ABAP_TYPE="IF_WD_VIEW" DISPLAY_NAME="VIEW"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOONCONTEXTMENU" PARAMETER_NAME="CONTEXT_MENU_EVENT" VERSION="I" PARAM_POSITION="1 " DECLARATION_TYPE="0" ABAP_TYPING="1" ABAP_TYPE="IF_WD_CONTEXT_MENU_EVENT" DISPLAY_NAME="CONTEXT_MENU_EVENT"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOONCONTEXTMENU" PARAMETER_NAME="CONTEXT_MENU_MANAGER" VERSION="I" PARAM_POSITION="2 " DECLARATION_TYPE="0" ABAP_TYPING="1" ABAP_TYPE="IF_WD_CONTEXT_MENU_MANAGER" DISPLAY_NAME="CONTEXT_MENU_MANAGER"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOONCONTEXTMENU" PARAMETER_NAME="MENU" VERSION="I" PARAM_POSITION="3 " DECLARATION_TYPE="3" ABAP_TYPING="1" ABAP_TYPE="CL_WD_MENU" DISPLAY_NAME="MENU"/>
|
||||
<wdy_ctlr_usage COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CTLR_USAGE_NAME="00O2TRN3HOPNY2XMW9ZPOIO72" VERSION="I" USED_CONTROLLER="COMPONENTCONTROLLER"/>
|
||||
<wdy_ctx_node COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" NODE_NAME="CONTEXT" VERSION="I" NODE_TYPE="CL_WDY_MD_CONTEXT_VALUE_NODE" NODE_POSITION="0 " COLLECTION_TYPE="03" CARDINALITY="01" SELECTION="01" SINGLETON="X" DISPLAY_NAME="CONTEXT" ABAP_TYPING="0" INIT_LEAD_SELECT="X"/>
|
||||
</controller_definition>
|
||||
</view_definition>
|
||||
<view_definition COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="W_MAIN" VERSION="A" TYPE="CL_WDY_MD_WINDOW" VIEW_TYPE="00" LIFESPAN="0" VIEW_CONTROLLER="W_MAIN" DISPLAY_NAME="W_MAIN" DEF_ROOT_NODE="V_MAIN_USAGE_0" VISIBILITY="00">
|
||||
<view_window title=""/>
|
||||
<wdy_iobound_plug COMPONENT_NAME="ZDEMO_EXCEL_WDA01" VIEW_NAME="W_MAIN" PLUG_NAME="DEFAULT" VERSION="I" PLUG_TYPE="CL_WDY_MD_INBOUND_PLUG" IN_PLUG_TYPE="1" OUT_PLUG_TYPE="0" DISPLAY_NAME="DEFAULT" IS_INTF_ITEM="X"/>
|
||||
<wdy_vsh_node COMPONENT_NAME="ZDEMO_EXCEL_WDA01" WINDOW_NAME="W_MAIN" VSH_NODE_NAME="V_MAIN_USAGE_0" VERSION="I" VSH_NODE_TYPE="CL_WDY_MD_VIEW_USAGE" USED_VIEW="V_MAIN" DISPLAY_NAME="V_MAIN_USAGE_0"/>
|
||||
<controller_definition COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" VERSION="A" CONTROLLER_TYPE="06" CONTEXT="CONTEXT" DISPLAY_NAME="W_MAIN">
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="HANDLEDEFAULT" VERSION="I" CMPTYPE="CL_WDY_MD_CTLR_EVENT_HANDLER" CMP_POSITION="1 " VISIBILITY="2" REF_VIEW_NAME="W_MAIN" REF_PLUG_NAME="DEFAULT" DISPLAY_NAME="HANDLEDEFAULT" CODE_BODY="method HANDLEDEFAULT .
|
||||
endmethod." ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOEXIT" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOEXIT" CODE_BODY="method WDDOEXIT .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOINIT" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOINIT" CODE_BODY="method WDDOINIT .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOONCLOSE" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOONCLOSE" CODE_BODY="method WDDOONCLOSE .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOONOPEN" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOONOPEN" CODE_BODY="method WDDOONOPEN .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOEXIT" LANGU="E" DESCRIPTION="Controller Clean-Up Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOINIT" LANGU="E" DESCRIPTION="Controller Initialization Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOONCLOSE" LANGU="E" DESCRIPTION="Handling For Closing of Window"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOONOPEN" LANGU="E" DESCRIPTION="Handling For Opening of Window"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOONOPEN" PARAMETER_NAME="WINDOW_DESCR" VERSION="I" PARAM_POSITION="1 " DECLARATION_TYPE="0" ABAP_TYPING="1" ABAP_TYPE="IF_WD_WINDOW_DESCRIPTION" DISPLAY_NAME="WINDOW_DESCR"/>
|
||||
<wdy_ctlr_usage COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CTLR_USAGE_NAME="00O2TRN3HOPNY2XMW9ZPOIHVI" VERSION="I" USED_CONTROLLER="COMPONENTCONTROLLER"/>
|
||||
<wdy_ctx_node COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" NODE_NAME="CONTEXT" VERSION="I" NODE_TYPE="CL_WDY_MD_CONTEXT_VALUE_NODE" NODE_POSITION="0 " COLLECTION_TYPE="03" CARDINALITY="01" SELECTION="01" SINGLETON="X" DISPLAY_NAME="CONTEXT" ABAP_TYPING="0" INIT_LEAD_SELECT="X"/>
|
||||
</controller_definition>
|
||||
</view_definition>
|
||||
<controller_definition COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" VERSION="A" CONTROLLER_TYPE="02" CONTEXT="CONTEXT" DISPLAY_NAME="COMPONENTCONTROLLER" RUNTIME_OBJECT="ZIWCI_DEMO_EXCEL_WDA01">
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOAPPLICATIONSTATECHANGE" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOAPPLICATIONSTATECHANGE" CODE_BODY="method WDDOAPPLICATIONSTATECHANGE .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOBEFORENAVIGATION" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOBEFORENAVIGATION" CODE_BODY="method WDDOBEFORENAVIGATION .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOEXIT" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOEXIT" CODE_BODY="method WDDOEXIT .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOINIT" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOINIT" CODE_BODY="method WDDOINIT .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOPOSTPROCESSING" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOPOSTPROCESSING" CODE_BODY="method WDDOPOSTPROCESSING .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOAPPLICATIONSTATECHANGE" LANGU="E" DESCRIPTION="Handling for Suspending and Resuming an Application"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOBEFORENAVIGATION" LANGU="E" DESCRIPTION="Error Handling Before Navigation Through Application"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOEXIT" LANGU="E" DESCRIPTION="Controller Clean-Up Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOINIT" LANGU="E" DESCRIPTION="Controller Initialization Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOPOSTPROCESSING" LANGU="E" DESCRIPTION="Prepare Output"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOAPPLICATIONSTATECHANGE" PARAMETER_NAME="STATE_CHANGE" VERSION="I" PARAM_POSITION="1 " DECLARATION_TYPE="0" ABAP_TYPING="1" ABAP_TYPE="IF_WD_APPLICATION_STATE_CHANGE" DISPLAY_NAME="STATE_CHANGE"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOBEFORENAVIGATION" PARAMETER_NAME="IS_CURRENT_ROOT" VERSION="I" PARAM_POSITION="1 " DECLARATION_TYPE="0" ABAP_TYPING="0" ABAP_TYPE="WDY_BOOLEAN" DISPLAY_NAME="IS_CURRENT_ROOT"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOEXIT" PARAMETER_NAME="REASON" VERSION="I" PARAM_POSITION="1 " DECLARATION_TYPE="0" ABAP_TYPING="0" ABAP_TYPE="WDR_APPL_EXIT_REASON" DISPLAY_NAME="REASON"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" CMPNAME="WDDOPOSTPROCESSING" PARAMETER_NAME="IS_CURRENT_ROOT" VERSION="I" PARAM_POSITION="1 " DECLARATION_TYPE="0" ABAP_TYPING="0" ABAP_TYPE="WDY_BOOLEAN" DISPLAY_NAME="IS_CURRENT_ROOT"/>
|
||||
<wdy_ctx_node COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="COMPONENTCONTROLLER" NODE_NAME="CONTEXT" VERSION="I" NODE_TYPE="CL_WDY_MD_CONTEXT_VALUE_NODE" NODE_POSITION="0 " COLLECTION_TYPE="03" CARDINALITY="01" SELECTION="01" SINGLETON="X" DISPLAY_NAME="CONTEXT" ABAP_TYPING="0" INIT_LEAD_SELECT="X" IS_INTF_ITEM="X"/>
|
||||
</controller_definition>
|
||||
<controller_definition COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="EMPTYVIEW" VERSION="A" CONTROLLER_TYPE="01" DISPLAY_NAME="EMPTYVIEW"/>
|
||||
<controller_definition COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" VERSION="A" CONTROLLER_TYPE="01" CONTEXT="CONTEXT" DISPLAY_NAME="V_MAIN">
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="BTN_DOWNLOAD" VERSION="I" CMPTYPE="CL_WDY_MD_ACTION" CMP_POSITION="0 " VISIBILITY="0" DISPLAY_NAME="BTN_DOWNLOAD" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="ONACTIONBTN_DOWNLOAD" VERSION="I" CMPTYPE="CL_WDY_MD_CTLR_EVENT_HANDLER" CMP_POSITION="0 " VISIBILITY="2" REF_CTLR_NAME="V_MAIN" REF_CMPNAME="BTN_DOWNLOAD" DISPLAY_NAME="ONACTIONBTN_DOWNLOAD" CODE_BODY="METHOD onactionbtn_download .
|
||||
|
||||
DATA: lo_excel TYPE REF TO zcl_excel,
|
||||
lo_excel_writer TYPE REF TO zcl_excel_writer_2007,
|
||||
lo_worksheet TYPE REF TO zcl_excel_worksheet.
|
||||
DATA: lv_content TYPE xstring.
|
||||
|
||||
CREATE OBJECT lo_excel.
|
||||
lo_worksheet = lo_excel->get_active_worksheet( ).
|
||||
|
||||
lo_worksheet->set_cell( ip_column = 'B'
|
||||
ip_row = '2'
|
||||
ip_value = 'Welcome to Web Dynpro and abap2xlsx.' ).
|
||||
|
||||
CREATE OBJECT lo_excel_writer.
|
||||
lv_content = lo_excel_writer->zif_excel_writer~write_file( lo_excel ).
|
||||
|
||||
DATA: lv_filename TYPE string.
|
||||
lv_filename = 'wda01.xlsx'.
|
||||
|
||||
CALL METHOD cl_wd_runtime_services=>attach_file_to_response
|
||||
EXPORTING
|
||||
i_filename = lv_filename
|
||||
i_content = lv_content
|
||||
i_mime_type = 'EXCEL'
|
||||
i_in_new_window = abap_false
|
||||
i_inplace = abap_false.
|
||||
|
||||
ENDMETHOD.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOAFTERACTION" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOAFTERACTION" CODE_BODY="method WDDOAFTERACTION .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOBEFOREACTION" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOBEFOREACTION" CODE_BODY="method WDDOBEFOREACTION .
|
||||
* data lo_api_controller type ref to if_wd_view_controller.
|
||||
* data lo_action type ref to if_wd_action.
|
||||
|
||||
* lo_api_controller = wd_this->wd_get_api( ).
|
||||
* lo_action = lo_api_controller->get_current_action( ).
|
||||
|
||||
* if lo_action is bound.
|
||||
* case lo_action->name.
|
||||
* when '...'.
|
||||
|
||||
* endcase.
|
||||
* endif.
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOEXIT" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOEXIT" CODE_BODY="method WDDOEXIT .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOINIT" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOINIT" CODE_BODY="method WDDOINIT .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOMODIFYVIEW" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOMODIFYVIEW" CODE_BODY="method WDDOMODIFYVIEW .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOONCONTEXTMENU" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="0 " VISIBILITY="2" DISPLAY_NAME="WDDOONCONTEXTMENU" CODE_BODY="method WDDOONCONTEXTMENU .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="BTN_DOWNLOAD" LANGU="E" DESCRIPTION="Download Excel file"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="ONACTIONBTN_DOWNLOAD" LANGU="E" DESCRIPTION="Download Excel file"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOAFTERACTION" LANGU="E" DESCRIPTION="Method for non-action specific operations before navigation"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOBEFOREACTION" LANGU="E" DESCRIPTION="Method for Validation of User Input"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOEXIT" LANGU="E" DESCRIPTION="Controller Clean-Up Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOINIT" LANGU="E" DESCRIPTION="Controller Initialization Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOMODIFYVIEW" LANGU="E" DESCRIPTION="Method for Modifying the View Before Rendering"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOONCONTEXTMENU" LANGU="E" DESCRIPTION="Method for Modifying the Context Menu"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOMODIFYVIEW" PARAMETER_NAME="FIRST_TIME" VERSION="I" PARAM_POSITION="1 " DECLARATION_TYPE="0" ABAP_TYPING="0" ABAP_TYPE="WDY_BOOLEAN" DISPLAY_NAME="FIRST_TIME"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOMODIFYVIEW" PARAMETER_NAME="VIEW" VERSION="I" PARAM_POSITION="2 " DECLARATION_TYPE="0" ABAP_TYPING="1" ABAP_TYPE="IF_WD_VIEW" DISPLAY_NAME="VIEW"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOONCONTEXTMENU" PARAMETER_NAME="CONTEXT_MENU_EVENT" VERSION="I" PARAM_POSITION="1 " DECLARATION_TYPE="0" ABAP_TYPING="1" ABAP_TYPE="IF_WD_CONTEXT_MENU_EVENT" DISPLAY_NAME="CONTEXT_MENU_EVENT"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOONCONTEXTMENU" PARAMETER_NAME="CONTEXT_MENU_MANAGER" VERSION="I" PARAM_POSITION="2 " DECLARATION_TYPE="0" ABAP_TYPING="1" ABAP_TYPE="IF_WD_CONTEXT_MENU_MANAGER" DISPLAY_NAME="CONTEXT_MENU_MANAGER"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CMPNAME="WDDOONCONTEXTMENU" PARAMETER_NAME="MENU" VERSION="I" PARAM_POSITION="3 " DECLARATION_TYPE="3" ABAP_TYPING="1" ABAP_TYPE="CL_WD_MENU" DISPLAY_NAME="MENU"/>
|
||||
<wdy_ctlr_usage COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" CTLR_USAGE_NAME="00O2TRN3HOPNY2XMW9ZPOIO72" VERSION="I" USED_CONTROLLER="COMPONENTCONTROLLER"/>
|
||||
<wdy_ctx_node COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="V_MAIN" NODE_NAME="CONTEXT" VERSION="I" NODE_TYPE="CL_WDY_MD_CONTEXT_VALUE_NODE" NODE_POSITION="0 " COLLECTION_TYPE="03" CARDINALITY="01" SELECTION="01" SINGLETON="X" DISPLAY_NAME="CONTEXT" ABAP_TYPING="0" INIT_LEAD_SELECT="X"/>
|
||||
</controller_definition>
|
||||
<controller_definition COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" VERSION="A" CONTROLLER_TYPE="06" CONTEXT="CONTEXT" DISPLAY_NAME="W_MAIN">
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="HANDLEDEFAULT" VERSION="I" CMPTYPE="CL_WDY_MD_CTLR_EVENT_HANDLER" CMP_POSITION="1 " VISIBILITY="2" REF_VIEW_NAME="W_MAIN" REF_PLUG_NAME="DEFAULT" DISPLAY_NAME="HANDLEDEFAULT" CODE_BODY="method HANDLEDEFAULT .
|
||||
endmethod." ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOEXIT" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOEXIT" CODE_BODY="method WDDOEXIT .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOINIT" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOINIT" CODE_BODY="method WDDOINIT .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOONCLOSE" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOONCLOSE" CODE_BODY="method WDDOONCLOSE .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compo COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOONOPEN" VERSION="I" CMPTYPE="CL_WDY_MD_CONTROLLER_METHOD" CMP_POSITION="1 " VISIBILITY="2" DISPLAY_NAME="WDDOONOPEN" CODE_BODY="method WDDOONOPEN .
|
||||
endmethod.
|
||||
" ACTION_TYPE="0" ABAP_TYPING="0"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOEXIT" LANGU="E" DESCRIPTION="Controller Clean-Up Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOINIT" LANGU="E" DESCRIPTION="Controller Initialization Method"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOONCLOSE" LANGU="E" DESCRIPTION="Handling For Closing of Window"/>
|
||||
<wdy_ctlr_compot COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOONOPEN" LANGU="E" DESCRIPTION="Handling For Opening of Window"/>
|
||||
<wdy_ctlr_param COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CMPNAME="WDDOONOPEN" PARAMETER_NAME="WINDOW_DESCR" VERSION="I" PARAM_POSITION="1 " DECLARATION_TYPE="0" ABAP_TYPING="1" ABAP_TYPE="IF_WD_WINDOW_DESCRIPTION" DISPLAY_NAME="WINDOW_DESCR"/>
|
||||
<wdy_ctlr_usage COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" CTLR_USAGE_NAME="00O2TRN3HOPNY2XMW9ZPOIHVI" VERSION="I" USED_CONTROLLER="COMPONENTCONTROLLER"/>
|
||||
<wdy_ctx_node COMPONENT_NAME="ZDEMO_EXCEL_WDA01" CONTROLLER_NAME="W_MAIN" NODE_NAME="CONTEXT" VERSION="I" NODE_TYPE="CL_WDY_MD_CONTEXT_VALUE_NODE" NODE_POSITION="0 " COLLECTION_TYPE="03" CARDINALITY="01" SELECTION="01" SINGLETON="X" DISPLAY_NAME="CONTEXT" ABAP_TYPING="0" INIT_LEAD_SELECT="X"/>
|
||||
</controller_definition>
|
||||
</WDYN>
|
||||
</nugget>
|
BIN
build/extra/NUGG_ABAP2XLSX - EXTRA.zip
Normal file
BIN
build/extra/NUGG_ABAP2XLSX - EXTRA.zip
Normal file
Binary file not shown.
BIN
build/old_releases/ABAP2XLSX_V_2_0.zip
Normal file
BIN
build/old_releases/ABAP2XLSX_V_2_0.zip
Normal file
Binary file not shown.
BIN
build/old_releases/ABAP2XLSX_V_3_0.zip
Normal file
BIN
build/old_releases/ABAP2XLSX_V_3_0.zip
Normal file
Binary file not shown.
BIN
build/old_releases/ABAP2XLSX_V_4_0.zip
Normal file
BIN
build/old_releases/ABAP2XLSX_V_4_0.zip
Normal file
Binary file not shown.
BIN
build/old_releases/ABAP2XLSX_V_5_0.zip
Normal file
BIN
build/old_releases/ABAP2XLSX_V_5_0.zip
Normal file
Binary file not shown.
BIN
build/old_releases/ABAP2XLSX_V_6_0.zip
Normal file
BIN
build/old_releases/ABAP2XLSX_V_6_0.zip
Normal file
Binary file not shown.
39014
build/old_releases/ABAP2XLSX_V_7_0.nugg
Normal file
39014
build/old_releases/ABAP2XLSX_V_7_0.nugg
Normal file
File diff suppressed because it is too large
Load Diff
BIN
build/old_releases/ABAP2XLSX_V_7_0.zip
Normal file
BIN
build/old_releases/ABAP2XLSX_V_7_0.zip
Normal file
Binary file not shown.
39027
build/old_releases/ABAP2XLSX_V_7_0_1.nugg
Normal file
39027
build/old_releases/ABAP2XLSX_V_7_0_1.nugg
Normal file
File diff suppressed because it is too large
Load Diff
BIN
build/old_releases/ABAP2XLSX_V_7_0_1.nugg.zip
Normal file
BIN
build/old_releases/ABAP2XLSX_V_7_0_1.nugg.zip
Normal file
Binary file not shown.
BIN
build/old_releases/ABAP2XLSX_V_7_0_1.zip
Normal file
BIN
build/old_releases/ABAP2XLSX_V_7_0_1.zip
Normal file
Binary file not shown.
BIN
build/old_releases/ABAP2XLSX_V_7_0_2.zip
Normal file
BIN
build/old_releases/ABAP2XLSX_V_7_0_2.zip
Normal file
Binary file not shown.
41033
build/old_releases/ABAP2XLSX_V_7_0_3.nugg
Normal file
41033
build/old_releases/ABAP2XLSX_V_7_0_3.nugg
Normal file
File diff suppressed because it is too large
Load Diff
BIN
build/old_releases/ABAP2XLSX_V_7_0_3.nugg.zip
Normal file
BIN
build/old_releases/ABAP2XLSX_V_7_0_3.nugg.zip
Normal file
Binary file not shown.
BIN
build/old_releases/ABAP2XLSX_V_7_0_3.zip
Normal file
BIN
build/old_releases/ABAP2XLSX_V_7_0_3.zip
Normal file
Binary file not shown.
7
build/old_releases/K902337.TIR
Normal file
7
build/old_releases/K902337.TIR
Normal file
|
@ -0,0 +1,7 @@
|
|||
FEMIA K WIR 1 191 312 0 0 2 0 0 0 330 731 . 0 0 0 0 0 800
|
||||
#A
|
||||
#/1/ A G D - R C T - Z RELE EX. _ _ _ _ _ CLI
|
||||
TIR f 0000 20170516214711 yukon tiradm
|
||||
TIR e 0000 20170516214720 yukon tiradm
|
||||
WIR < 0000 20170516214748 yukon tiradm
|
||||
TIR E 0000 20170516214748 yukon tiradm
|
11526
build/old_releases/NUGG_ABAP2XLSX_V_1_0.nugg
Normal file
11526
build/old_releases/NUGG_ABAP2XLSX_V_1_0.nugg
Normal file
File diff suppressed because it is too large
Load Diff
BIN
build/old_releases/NUGG_ABAP2XLSX_V_1_0.nugg.zip
Normal file
BIN
build/old_releases/NUGG_ABAP2XLSX_V_1_0.nugg.zip
Normal file
Binary file not shown.
6764
build/old_releases/NUGG_ABAP2XLSX_V_1_1.nugg
Normal file
6764
build/old_releases/NUGG_ABAP2XLSX_V_1_1.nugg
Normal file
File diff suppressed because it is too large
Load Diff
BIN
build/old_releases/NUGG_ABAP2XLSX_V_1_1.nugg.zip
Normal file
BIN
build/old_releases/NUGG_ABAP2XLSX_V_1_1.nugg.zip
Normal file
Binary file not shown.
BIN
build/old_releases/R902337.TIR
Normal file
BIN
build/old_releases/R902337.TIR
Normal file
Binary file not shown.
122
changelog.txt
Normal file
122
changelog.txt
Normal file
|
@ -0,0 +1,122 @@
|
|||
abapGit changelog
|
||||
=================
|
||||
|
||||
Legend
|
||||
------
|
||||
* : fixed
|
||||
! : changed
|
||||
+ : added
|
||||
- : removed
|
||||
|
||||
2021-11-11 v7.14.0
|
||||
------------------
|
||||
+ changelog
|
||||
! Refactor ABAP Cloud: column width based on SAP font
|
||||
! Refactor ABAP Cloud: DDIC references changed
|
||||
! Refactor ABAP Cloud: collection classes
|
||||
! Refactor: split unit tests into one method per case
|
||||
! pretty print zcl_excel_worksheet
|
||||
* SET_CELL_FORMULA: set formula even if cell was uninitialized
|
||||
! Refactor: replace all macros with methods
|
||||
+ Add ability to generate report from template
|
||||
* Read range of print titles
|
||||
+ Multiple Styles in One Cell ("rich text format")
|
||||
+ Bind ALV with non-displayed SALV data
|
||||
+ new feature "Ignored Errors"
|
||||
* Ignore invalid Excel Table names
|
||||
+ new feature "Calculated Columns"
|
||||
* better error message for ZDEMO_EXCEL25
|
||||
|
||||
2021-10-11 v7.13.0
|
||||
------------------
|
||||
! zcl_excel_common: refactor unit tests
|
||||
! Refactor: replace zcl_excel_aunit with cl_abap_unit_assert
|
||||
! Refactor ABAP Cloud: DDIC references changed
|
||||
* clear Style exporting parameter in GET_CELL
|
||||
+ Conditional Formatting for Cells that "Begin With" and more
|
||||
- Delete unused customui objects
|
||||
* ZDEMO_EXCEL37 incorrect screen field labels
|
||||
* SHIFT_FORMULA
|
||||
! Refactor: replace macro with method in zcl_excel_style_number_format
|
||||
* autofilter messed up if several sheets
|
||||
* autofilter + filtering value, then read it, the filtering value is lost
|
||||
* autofilter on row 2 is incorrectly set on row 1
|
||||
! Refactor: change EXIT to RETURN, where applicable
|
||||
! Refactor: zcl_excel_common: refactor STATICS to CLASS-DATA
|
||||
* Writer: trailing spaces of cell values lost
|
||||
! Refactor: move zexcel_s_org_rel to demos
|
||||
! update to latest abapGit format
|
||||
! abaplint to not change sy fields anymore
|
||||
! Refactor: Do not change sy fields anymore
|
||||
! abapGit diff says zdemo_calendar_classes has changed
|
||||
! update abaplint configuration to latest
|
||||
! Refactor: Move non-Cloud code to separate package (#795) …
|
||||
* Reader: empty Excel date -> ABAP 00000000
|
||||
|
||||
2021-09-11 v7.12.0
|
||||
------------------
|
||||
! First draft of the contributing guidelines
|
||||
! Refactor: remove usage of CHAR07 domain
|
||||
|
||||
2021-08-11 v7.11.0
|
||||
------------------
|
||||
! Pretty print on all source code
|
||||
! Create coding-guidelines.md
|
||||
! remove usage of CHAR08 DTEL
|
||||
! remove usage of CHAR10 domain
|
||||
! remove usage of OS_BOOLEAN
|
||||
|
||||
2021-07-11 v7.10.0
|
||||
------------------
|
||||
! remove unused DOMA
|
||||
! Reader: wrong worksheet dimension
|
||||
* GET_TABLE: support fields of type date
|
||||
* Vietnamese, Emoji and other characters not rendered in old SAP versions
|
||||
* SET_TABLE: support table headers with newline
|
||||
* SET_CELL: support values with wildcard format like `_x0041_`
|
||||
|
||||
2021-06-11 v7.9.0
|
||||
------------------
|
||||
! update linter config to latest
|
||||
+ Remove 15 chars. limit at encrypt password
|
||||
+ Reader to read range of hyperlinks and new method SET_AREA_HYPERLINK
|
||||
* Vietnamese, Emoji and other characters not rendered
|
||||
* Update of ZDEMO_EXCEL31 to use CALCULATE_COLUMN_WIDTHS
|
||||
! remove CHAR01
|
||||
|
||||
2021-05-11 v7.8.0
|
||||
------------------
|
||||
! remove "BOOLEAN" domain
|
||||
! replace messages with ones from ZABAP2XLSX message class
|
||||
|
||||
2021-04-11 v7.7.0
|
||||
------------------
|
||||
! remove CHAR_02 domain
|
||||
! abapGit format update
|
||||
|
||||
2021-03-11 v7.6.0
|
||||
------------------
|
||||
! AUnit warning zcl excel reader huge file "# au > "#au
|
||||
! Remove doma ZEXCEL_BOOLE01
|
||||
|
||||
2021-02-11 v7.5.0
|
||||
------------------
|
||||
+ Possibility to get the fieldcatalog with mandt
|
||||
! cleanup types in zif_excel_book_protection
|
||||
|
||||
2021-01-11 v7.4.0
|
||||
------------------
|
||||
! warning about SAPLink in documentation, and replace obsolete links in zangry_birds and zdemo_excel1
|
||||
! remove XFELD usage
|
||||
! Dynamic prefill of date in zdemo_calendar
|
||||
|
||||
2020-12-11 v7.3.0
|
||||
------------------
|
||||
* Fix in ZDEMO_EXCEL11: Field-symbol usage
|
||||
! Update abapGit-installation.md
|
||||
|
||||
2020-11-11 v7.2.0
|
||||
------------------
|
||||
! Improve Documentaiton
|
||||
! Fix package errors
|
||||
+ Feature: Enable custom converters
|
|
@ -22,6 +22,11 @@ Implement SAP OSS Notes:
|
|||
|
||||
[Note 1385713 - SUBMIT: Allowing parameter of type STRING](https://service.sap.com/sap/support/notes/1385713)
|
||||
|
||||
* Macro-Enabled workbook
|
||||
|
||||
Run report ZDEMO_EXCEL29 and use as VBA source file [TestMacro.xlsm](https://github.com/ivanfemia/abap2xlsx/blob/master/resources/TestMacro.xlsm) attached.
|
||||
Basically abap2xlsx works using an existing VBA binary (we do not want to create a VBA editor).
|
||||
|
||||
* Download XLSX files in Background
|
||||
|
||||
Run report ZDEMO_EXCEL25.
|
||||
|
|
|
@ -4,12 +4,8 @@
|
|||
|
||||
## Procedure
|
||||
|
||||
Execute abapGit using the report **ZABAPGIT_STANDALONE**, click on *New Online*, fill the field *Git repository URL* with *https://github.com/abap2xlsx/abap2xlsx.git*, package with *$abap2xlsx* if you just want to test. If you want to transport abap2xlsx to production then use a non local package, for example ZABAP2XLSX. Click *Create package* if the package doesn't exist yet. Then click *Clone online repo*.
|
||||
Execute abapGit using the report **ZABAPGIT_FULL**, click on *New Online*, fill the field *Git repository URL* with *https://github.com/abap2xlsx/abap2xlsx.git*, package with *$abap2xls* if you just want to test. If you want to transport abap2xlsx to production then use a non local package. Click *Create package* if the package doesn't exist yet. Then click *Clone online repo*
|
||||
|
||||

|
||||
|
||||
To install abap2xlsx click *pull*.
|
||||
|
||||
After installing, if you want to install the **demo programs**, repeat the actions above, starting from *New Online* to *pull*, and fill *Git repository URL* with *https://github.com/abap2xlsx/demos*. We recommend that you pick a local package name for the demos, for example $abap2xlsxdemos, since you most likely won't need them in a production system.
|
||||
|
||||
Be careful with the package name for demos: it should NOT be the basename of your abap2xlsx installation followed by "_demos"! If you have ZABAP2XLSX as base package, you may use ZABAP2XLSXDEMOS but not ZABAP2XLSX_DEMOS, for example. Quick background for the curious folks: before demos were spun off as a separate repository, they were placed in the "demos" subpackage of abap2xlsx and, yes, abapGit encodes the package / subpackage relationship with an underscore.
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
# Publishing a new release
|
||||
|
||||
Let's create a release from time to time, every 1 or 2 months for instance, to contain enough changes, but not too much.
|
||||
Before beginning, you should ensure that ZDEMO_EXCEL_CHECKER (in the demos repo) shows all green checkmarks.
|
||||
|
||||
Below are the notes taken while publishing the release `7.16.0`.
|
||||
|
||||
Version numbering is based on [Semantic Versioning 2.0.0](https://semver.org/):
|
||||
- `7`: a major release. NB: it will probably not change as we don't want to "make incompatible API changes".
|
||||
- `16`: a minor release
|
||||
- `0`: patch level (bug fixes)
|
||||
|
||||
Working directly on the upstream repository:
|
||||
- create a branch for this new release; suggested naming for the branch: your own prefix - slash - release - number. For example: abo/release7.16.0 OR sandraros/release7.16.0
|
||||
- change `version` in `zcl_excel` to indicate the new version number
|
||||
- push the changes to this new release branch
|
||||
|
||||
With GitHub Desktop (or any Git console or Git user interface), [add the (lightweight) tag](https://docs.github.com/en/desktop/contributing-and-collaborating-using-github-desktop/managing-commits/managing-tags) `v7.16.0` to this branch; suggested naming for version-related tags is v + version number.
|
||||
|
||||
Do a pull request.
|
||||
|
||||
Wait for approval/commit(s) merged into the master branch.
|
||||
|
||||
Now [create the release in GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release):
|
||||
- Click "Releases"
|
||||
- Click "Draft a new release"
|
||||
- Click "Choose a tag"
|
||||
- Type the title, select the previous tag, click "Auto-generate release notes" and click "Preview" to verify; you should have a list with the changes from the previous release, edit as required and remember to include the list below as explanation:
|
||||
- `+`: new feature
|
||||
- `*`: bug fix
|
||||
- `!`: feature modification
|
||||
- `-`: feature removed
|
||||
- Click "Publish release"
|
||||
- It's done, zip and tar.gz files are automatically assigned to the release
|
||||
- The new release appears in the Code home page, with the changelog in the release page itself.
|
||||
|
||||
Now create a release for the [demos](https://github.com/abap2xlsx/demos) repository as well: use the same process and tag the latest commit available at the time the main library is released, to ensure users will always have a matching set of demo programs.
|
||||
|
|
@ -7,4 +7,3 @@ This community project allows you to generate Professional Excel spreadsheets di
|
|||
* [SAPLink](SAPLink-installation) (obsolete)
|
||||
* [F.A.Q.](FAQ)
|
||||
* [abap2xlsx Calender Gallery](abap2xlsx-Calender-Gallery)
|
||||
* [Demos](https://github.com/abap2xlsx/demos)
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
16
package.json
16
package.json
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
"license": "MIT",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"test": "rm -rf output && abap_transpile abap_transpile.json && echo RUNNING && node output/index.mjs"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/abap2xlsx/abap2xlsx.git"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@abaplint/cli": "^2.112.10",
|
||||
"@abaplint/transpiler-cli": "^2.10.9",
|
||||
"@abaplint/runtime": "^2.10.9"
|
||||
}
|
||||
}
|
BIN
resources/TestMacro.xlsm
Normal file
BIN
resources/TestMacro.xlsm
Normal file
Binary file not shown.
18
src/demos/npl0018 89d0c0ce8687b56786306d6dd.sicf.xml
Normal file
18
src/demos/npl0018 89d0c0ce8687b56786306d6dd.sicf.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_SICF" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<URL>/sap/bc/webdynpro/sap/NPL0018/</URL>
|
||||
<ICFSERVICE>
|
||||
<ICF_NAME>NPL0018</ICF_NAME>
|
||||
<ORIG_NAME>NPL0018</ORIG_NAME>
|
||||
<ICFALTNME>ZDEMO_EXCEL_WDA01</ICFALTNME>
|
||||
</ICFSERVICE>
|
||||
<ICFDOCU>
|
||||
<ICF_NAME>NPL0018</ICF_NAME>
|
||||
<ICF_LANGU>E</ICF_LANGU>
|
||||
<ICF_DOCU>Web Dynpro Application ZDEMO_EXCEL_WDA01 / Component ZDEMO_EXCEL_WDA01</ICF_DOCU>
|
||||
</ICFDOCU>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
10
src/demos/package.devc.xml
Normal file
10
src/demos/package.devc.xml
Normal file
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DEVC" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<DEVC>
|
||||
<CTEXT>Spreadsheet Demo Reports</CTEXT>
|
||||
</DEVC>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
280
src/demos/zabap2xlsx_demo_show.prog.abap
Normal file
280
src/demos/zabap2xlsx_demo_show.prog.abap
Normal file
|
@ -0,0 +1,280 @@
|
|||
*&---------------------------------------------------------------------*
|
||||
*& Report ZABAP2XLSX_DEMO_SHOW
|
||||
*&---------------------------------------------------------------------*
|
||||
REPORT zabap2xlsx_demo_show.
|
||||
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS lcl_perform DEFINITION
|
||||
*----------------------------------------------------------------------*
|
||||
CLASS lcl_perform DEFINITION CREATE PRIVATE.
|
||||
PUBLIC SECTION.
|
||||
CLASS-METHODS: setup_objects,
|
||||
collect_reports,
|
||||
|
||||
handle_nav FOR EVENT double_click OF cl_gui_alv_grid
|
||||
IMPORTING e_row.
|
||||
|
||||
PRIVATE SECTION.
|
||||
TYPES: BEGIN OF ty_reports,
|
||||
progname TYPE reposrc-progname,
|
||||
sort TYPE reposrc-progname,
|
||||
description TYPE repti,
|
||||
filename TYPE string,
|
||||
END OF ty_reports.
|
||||
|
||||
CLASS-DATA:
|
||||
lo_grid TYPE REF TO cl_gui_alv_grid,
|
||||
lo_text TYPE REF TO cl_gui_textedit,
|
||||
cl_document TYPE REF TO i_oi_document_proxy,
|
||||
|
||||
t_reports TYPE STANDARD TABLE OF ty_reports WITH NON-UNIQUE DEFAULT KEY.
|
||||
CLASS-DATA:error TYPE REF TO i_oi_error,
|
||||
t_errors TYPE STANDARD TABLE OF REF TO i_oi_error WITH NON-UNIQUE DEFAULT KEY,
|
||||
cl_control TYPE REF TO i_oi_container_control. "Office Dokument
|
||||
|
||||
ENDCLASS. "lcl_perform DEFINITION
|
||||
|
||||
|
||||
START-OF-SELECTION.
|
||||
lcl_perform=>collect_reports( ).
|
||||
lcl_perform=>setup_objects( ).
|
||||
|
||||
END-OF-SELECTION.
|
||||
|
||||
WRITE '.'. " Force output
|
||||
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS lcl_perform IMPLEMENTATION
|
||||
*----------------------------------------------------------------------*
|
||||
CLASS lcl_perform IMPLEMENTATION.
|
||||
METHOD setup_objects.
|
||||
DATA: lo_split TYPE REF TO cl_gui_splitter_container,
|
||||
lo_container TYPE REF TO cl_gui_container.
|
||||
|
||||
DATA: it_fieldcat TYPE lvc_t_fcat,
|
||||
is_layout TYPE lvc_s_layo,
|
||||
is_variant TYPE disvariant.
|
||||
FIELD-SYMBOLS: <fc> LIKE LINE OF it_fieldcat.
|
||||
|
||||
|
||||
CREATE OBJECT lo_split
|
||||
EXPORTING
|
||||
parent = cl_gui_container=>screen0
|
||||
rows = 1
|
||||
columns = 3
|
||||
no_autodef_progid_dynnr = 'X'.
|
||||
lo_split->set_column_width( EXPORTING id = 1
|
||||
width = 20 ).
|
||||
lo_split->set_column_width( EXPORTING id = 2
|
||||
width = 40 ).
|
||||
|
||||
* Left: List of reports
|
||||
lo_container = lo_split->get_container( row = 1
|
||||
column = 1 ).
|
||||
|
||||
CREATE OBJECT lo_grid
|
||||
EXPORTING
|
||||
i_parent = lo_container.
|
||||
SET HANDLER lcl_perform=>handle_nav FOR lo_grid.
|
||||
|
||||
is_variant-report = sy-repid.
|
||||
is_variant-handle = '0001'.
|
||||
|
||||
is_layout-cwidth_opt = 'X'.
|
||||
|
||||
APPEND INITIAL LINE TO it_fieldcat ASSIGNING <fc>.
|
||||
<fc>-fieldname = 'PROGNAME'.
|
||||
<fc>-tabname = 'REPOSRC'.
|
||||
|
||||
APPEND INITIAL LINE TO it_fieldcat ASSIGNING <fc>.
|
||||
<fc>-fieldname = 'SORT'.
|
||||
<fc>-ref_field = 'PROGNAME'.
|
||||
<fc>-ref_table = 'REPOSRC'.
|
||||
<fc>-tech = abap_true. "No need to display this help field
|
||||
|
||||
APPEND INITIAL LINE TO it_fieldcat ASSIGNING <fc>.
|
||||
<fc>-fieldname = 'DESCRIPTION'.
|
||||
<fc>-ref_field = 'REPTI'.
|
||||
<fc>-ref_table = 'RS38M'.
|
||||
|
||||
lo_grid->set_table_for_first_display( EXPORTING
|
||||
is_variant = is_variant
|
||||
i_save = 'A'
|
||||
is_layout = is_layout
|
||||
CHANGING
|
||||
it_outtab = t_reports
|
||||
it_fieldcatalog = it_fieldcat
|
||||
EXCEPTIONS
|
||||
invalid_parameter_combination = 1
|
||||
program_error = 2
|
||||
too_many_lines = 3
|
||||
OTHERS = 4 ).
|
||||
|
||||
* Middle: Text with coding
|
||||
lo_container = lo_split->get_container( row = 1
|
||||
column = 2 ).
|
||||
CREATE OBJECT lo_text
|
||||
EXPORTING
|
||||
parent = lo_container.
|
||||
lo_text->set_readonly_mode( cl_gui_textedit=>true ).
|
||||
lo_text->set_font_fixed( ).
|
||||
|
||||
|
||||
|
||||
* right: DemoOutput
|
||||
lo_container = lo_split->get_container( row = 1
|
||||
column = 3 ).
|
||||
|
||||
c_oi_container_control_creator=>get_container_control( IMPORTING control = cl_control
|
||||
error = error ).
|
||||
APPEND error TO t_errors.
|
||||
|
||||
cl_control->init_control( EXPORTING inplace_enabled = 'X'
|
||||
no_flush = 'X'
|
||||
r3_application_name = 'Demo Document Container'
|
||||
parent = lo_container
|
||||
IMPORTING error = error
|
||||
EXCEPTIONS OTHERS = 2 ).
|
||||
APPEND error TO t_errors.
|
||||
|
||||
cl_control->get_document_proxy( EXPORTING document_type = 'Excel.Sheet' " EXCEL
|
||||
no_flush = ' '
|
||||
IMPORTING document_proxy = cl_document
|
||||
error = error ).
|
||||
APPEND error TO t_errors.
|
||||
* Errorhandling should be inserted here
|
||||
|
||||
|
||||
ENDMETHOD. "setup_objects
|
||||
|
||||
"collect_reports
|
||||
METHOD collect_reports.
|
||||
FIELD-SYMBOLS <report> LIKE LINE OF t_reports.
|
||||
DATA t_source TYPE STANDARD TABLE OF text255 WITH NON-UNIQUE DEFAULT KEY.
|
||||
DATA texts TYPE STANDARD TABLE OF textpool.
|
||||
DATA description TYPE textpool.
|
||||
|
||||
* Get all demoreports
|
||||
SELECT progname
|
||||
INTO CORRESPONDING FIELDS OF TABLE t_reports
|
||||
FROM reposrc
|
||||
WHERE progname LIKE 'ZDEMO_EXCEL%'
|
||||
AND progname <> sy-repid
|
||||
AND subc = '1'.
|
||||
|
||||
LOOP AT t_reports ASSIGNING <report>.
|
||||
|
||||
* Check if already switched to new outputoptions
|
||||
READ REPORT <report>-progname INTO t_source.
|
||||
IF sy-subrc = 0.
|
||||
FIND 'INCLUDE zdemo_excel_outputopt_incl.' IN TABLE t_source IGNORING CASE.
|
||||
ENDIF.
|
||||
IF sy-subrc <> 0.
|
||||
DELETE t_reports.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
|
||||
* Build half-numeric sort
|
||||
<report>-sort = <report>-progname.
|
||||
REPLACE REGEX '(ZDEMO_EXCEL)(\d\d)\s*$' IN <report>-sort WITH '$1\0$2'. " REPLACE REGEX '(ZDEMO_EXCEL)([^][^])*$' IN <report>-sort WITH '$1$2'.REPLACE REGEX '(ZDEMO_EXCEL)([^][^])*$' IN <report>-sort WITH '$1$2'.REPLACE
|
||||
|
||||
REPLACE REGEX '(ZDEMO_EXCEL)(\d)\s*$' IN <report>-sort WITH '$1\0\0$2'.
|
||||
|
||||
* get report text
|
||||
READ TEXTPOOL <report>-progname INTO texts LANGUAGE sy-langu.
|
||||
READ TABLE texts INTO description WITH KEY id = 'R'.
|
||||
IF sy-subrc > 0.
|
||||
"If not available in logon language, use english
|
||||
READ TEXTPOOL <report>-progname INTO texts LANGUAGE 'E'.
|
||||
READ TABLE texts INTO description WITH KEY id = 'R'.
|
||||
ENDIF.
|
||||
"set report title
|
||||
<report>-description = description-entry.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
SORT t_reports BY sort progname.
|
||||
|
||||
ENDMETHOD. "collect_reports
|
||||
|
||||
METHOD handle_nav.
|
||||
CONSTANTS: filename TYPE text80 VALUE 'ZABAP2XLSX_DEMO_SHOW.xlsx'.
|
||||
DATA: wa_report LIKE LINE OF t_reports,
|
||||
t_source TYPE STANDARD TABLE OF text255,
|
||||
t_rawdata TYPE solix_tab,
|
||||
wa_rawdata LIKE LINE OF t_rawdata,
|
||||
bytecount TYPE i,
|
||||
length TYPE i,
|
||||
add_selopt TYPE flag.
|
||||
|
||||
|
||||
READ TABLE t_reports INTO wa_report INDEX e_row-index.
|
||||
CHECK sy-subrc = 0.
|
||||
|
||||
* Set new text into middle frame
|
||||
READ REPORT wa_report-progname INTO t_source.
|
||||
lo_text->set_text_as_r3table( EXPORTING table = t_source ).
|
||||
|
||||
|
||||
* Unload old xls-file
|
||||
cl_document->close_document( ).
|
||||
|
||||
* Get the demo
|
||||
* If additional parameters found on selection screen, start via selection screen , otherwise start w/o
|
||||
CLEAR add_selopt.
|
||||
FIND 'PARAMETERS' IN TABLE t_source.
|
||||
IF sy-subrc = 0.
|
||||
add_selopt = 'X'.
|
||||
ELSE.
|
||||
FIND 'SELECT-OPTIONS' IN TABLE t_source.
|
||||
IF sy-subrc = 0.
|
||||
add_selopt = 'X'.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
IF add_selopt IS INITIAL.
|
||||
SUBMIT (wa_report-progname) AND RETURN "#EC CI_SUBMIT
|
||||
WITH p_backfn = filename
|
||||
WITH rb_back = 'X'
|
||||
WITH rb_down = ' '
|
||||
WITH rb_send = ' '
|
||||
WITH rb_show = ' '.
|
||||
ELSE.
|
||||
SUBMIT (wa_report-progname) VIA SELECTION-SCREEN AND RETURN "#EC CI_SUBMIT
|
||||
WITH p_backfn = filename
|
||||
WITH rb_back = 'X'
|
||||
WITH rb_down = ' '
|
||||
WITH rb_send = ' '
|
||||
WITH rb_show = ' '.
|
||||
ENDIF.
|
||||
|
||||
OPEN DATASET filename FOR INPUT IN BINARY MODE.
|
||||
IF sy-subrc = 0.
|
||||
DO.
|
||||
CLEAR wa_rawdata.
|
||||
READ DATASET filename INTO wa_rawdata LENGTH length.
|
||||
IF sy-subrc <> 0.
|
||||
APPEND wa_rawdata TO t_rawdata.
|
||||
ADD length TO bytecount.
|
||||
EXIT.
|
||||
ENDIF.
|
||||
APPEND wa_rawdata TO t_rawdata.
|
||||
ADD length TO bytecount.
|
||||
ENDDO.
|
||||
CLOSE DATASET filename.
|
||||
ENDIF.
|
||||
|
||||
cl_control->get_document_proxy( EXPORTING document_type = 'Excel.Sheet' " EXCEL
|
||||
no_flush = ' '
|
||||
IMPORTING document_proxy = cl_document
|
||||
error = error ).
|
||||
|
||||
cl_document->open_document_from_table( EXPORTING document_size = bytecount
|
||||
document_table = t_rawdata
|
||||
open_inplace = 'X' ).
|
||||
|
||||
ENDMETHOD. "handle_nav
|
||||
|
||||
ENDCLASS. "lcl_perform IMPLEMENTATION
|
22
src/demos/zabap2xlsx_demo_show.prog.xml
Normal file
22
src/demos/zabap2xlsx_demo_show.prog.xml
Normal file
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>ZABAP2XLSX_DEMO_SHOW</NAME>
|
||||
<SUBC>1</SUBC>
|
||||
<RSTAT>T</RSTAT>
|
||||
<RLOAD>E</RLOAD>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
<TPOOL>
|
||||
<item>
|
||||
<ID>R</ID>
|
||||
<ENTRY>abap2xlsx Demo Show</ENTRY>
|
||||
<LENGTH>19</LENGTH>
|
||||
</item>
|
||||
</TPOOL>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
752
src/demos/zangry_birds.prog.abap
Normal file
752
src/demos/zangry_birds.prog.abap
Normal file
|
@ -0,0 +1,752 @@
|
|||
*&---------------------------------------------------------------------*
|
||||
*& Report ZANGRY_BIRDS
|
||||
*& Just for fun
|
||||
*&---------------------------------------------------------------------*
|
||||
*&
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
|
||||
REPORT zangry_birds.
|
||||
|
||||
DATA: lo_excel TYPE REF TO zcl_excel,
|
||||
lo_excel_writer TYPE REF TO zif_excel_writer,
|
||||
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
||||
lo_border_light TYPE REF TO zcl_excel_style_border,
|
||||
lo_style_color0 TYPE REF TO zcl_excel_style,
|
||||
lo_style_color1 TYPE REF TO zcl_excel_style,
|
||||
lo_style_color2 TYPE REF TO zcl_excel_style,
|
||||
lo_style_color3 TYPE REF TO zcl_excel_style,
|
||||
lo_style_color4 TYPE REF TO zcl_excel_style,
|
||||
lo_style_color5 TYPE REF TO zcl_excel_style,
|
||||
lo_style_color6 TYPE REF TO zcl_excel_style,
|
||||
lo_style_color7 TYPE REF TO zcl_excel_style,
|
||||
lo_style_credit TYPE REF TO zcl_excel_style,
|
||||
lo_style_link TYPE REF TO zcl_excel_style,
|
||||
lo_column TYPE REF TO zcl_excel_column,
|
||||
lo_row TYPE REF TO zcl_excel_row,
|
||||
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
|
||||
|
||||
DATA: lv_style_color0_guid TYPE zexcel_cell_style,
|
||||
lv_style_color1_guid TYPE zexcel_cell_style,
|
||||
lv_style_color2_guid TYPE zexcel_cell_style,
|
||||
lv_style_color3_guid TYPE zexcel_cell_style,
|
||||
lv_style_color4_guid TYPE zexcel_cell_style,
|
||||
lv_style_color5_guid TYPE zexcel_cell_style,
|
||||
lv_style_color6_guid TYPE zexcel_cell_style,
|
||||
lv_style_color7_guid TYPE zexcel_cell_style,
|
||||
lv_style_credit_guid TYPE zexcel_cell_style,
|
||||
lv_style_link_guid TYPE zexcel_cell_style.
|
||||
|
||||
DATA: lv_col_str TYPE zexcel_cell_column_alpha,
|
||||
lv_row TYPE i,
|
||||
lv_col TYPE i,
|
||||
lt_mapper TYPE TABLE OF zexcel_cell_style,
|
||||
ls_mapper TYPE zexcel_cell_style.
|
||||
|
||||
DATA: lv_file TYPE xstring,
|
||||
lv_bytecount TYPE i,
|
||||
lt_file_tab TYPE solix_tab.
|
||||
|
||||
DATA: lv_full_path TYPE string,
|
||||
lv_workdir TYPE string,
|
||||
lv_file_separator TYPE c.
|
||||
|
||||
CONSTANTS: lv_default_file_name TYPE string VALUE 'angry_birds.xlsx'.
|
||||
|
||||
PARAMETERS: p_path TYPE zexcel_export_dir.
|
||||
|
||||
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
|
||||
lv_workdir = p_path.
|
||||
cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
|
||||
CHANGING selected_folder = lv_workdir ).
|
||||
p_path = lv_workdir.
|
||||
|
||||
INITIALIZATION.
|
||||
cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
|
||||
cl_gui_cfw=>flush( ).
|
||||
p_path = lv_workdir.
|
||||
|
||||
START-OF-SELECTION.
|
||||
|
||||
IF p_path IS INITIAL.
|
||||
p_path = lv_workdir.
|
||||
ENDIF.
|
||||
cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
|
||||
CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
|
||||
|
||||
" Creates active sheet
|
||||
CREATE OBJECT lo_excel.
|
||||
|
||||
CREATE OBJECT lo_border_light.
|
||||
lo_border_light->border_color-rgb = zcl_excel_style_color=>c_white.
|
||||
lo_border_light->border_style = zcl_excel_style_border=>c_border_thin.
|
||||
|
||||
" Create color white
|
||||
lo_style_color0 = lo_excel->add_new_style( ).
|
||||
lo_style_color0->fill->filltype = zcl_excel_style_fill=>c_fill_solid.
|
||||
lo_style_color0->fill->fgcolor-rgb = 'FFFFFFFF'.
|
||||
lo_style_color0->borders->allborders = lo_border_light.
|
||||
lv_style_color0_guid = lo_style_color0->get_guid( ).
|
||||
|
||||
" Create color black
|
||||
lo_style_color1 = lo_excel->add_new_style( ).
|
||||
lo_style_color1->fill->filltype = zcl_excel_style_fill=>c_fill_solid.
|
||||
lo_style_color1->fill->fgcolor-rgb = 'FF252525'.
|
||||
lo_style_color1->borders->allborders = lo_border_light.
|
||||
lv_style_color1_guid = lo_style_color1->get_guid( ).
|
||||
|
||||
" Create color dark green
|
||||
lo_style_color2 = lo_excel->add_new_style( ).
|
||||
lo_style_color2->fill->filltype = zcl_excel_style_fill=>c_fill_solid.
|
||||
lo_style_color2->fill->fgcolor-rgb = 'FF75913A'.
|
||||
lo_style_color2->borders->allborders = lo_border_light.
|
||||
lv_style_color2_guid = lo_style_color2->get_guid( ).
|
||||
|
||||
" Create color light green
|
||||
lo_style_color3 = lo_excel->add_new_style( ).
|
||||
lo_style_color3->fill->filltype = zcl_excel_style_fill=>c_fill_solid.
|
||||
lo_style_color3->fill->fgcolor-rgb = 'FF9DFB73'.
|
||||
lo_style_color3->borders->allborders = lo_border_light.
|
||||
lv_style_color3_guid = lo_style_color3->get_guid( ).
|
||||
|
||||
" Create color green
|
||||
lo_style_color4 = lo_excel->add_new_style( ).
|
||||
lo_style_color4->fill->filltype = zcl_excel_style_fill=>c_fill_solid.
|
||||
lo_style_color4->fill->fgcolor-rgb = 'FF92CF56'.
|
||||
lo_style_color4->borders->allborders = lo_border_light.
|
||||
lv_style_color4_guid = lo_style_color4->get_guid( ).
|
||||
|
||||
" Create color 2dark green
|
||||
lo_style_color5 = lo_excel->add_new_style( ).
|
||||
lo_style_color5->fill->filltype = zcl_excel_style_fill=>c_fill_solid.
|
||||
lo_style_color5->fill->fgcolor-rgb = 'FF506228'.
|
||||
lo_style_color5->borders->allborders = lo_border_light.
|
||||
lv_style_color5_guid = lo_style_color5->get_guid( ).
|
||||
|
||||
" Create color yellow
|
||||
lo_style_color6 = lo_excel->add_new_style( ).
|
||||
lo_style_color6->fill->filltype = zcl_excel_style_fill=>c_fill_solid.
|
||||
lo_style_color6->fill->fgcolor-rgb = 'FFC3E224'.
|
||||
lo_style_color6->borders->allborders = lo_border_light.
|
||||
lv_style_color6_guid = lo_style_color6->get_guid( ).
|
||||
|
||||
" Create color yellow
|
||||
lo_style_color7 = lo_excel->add_new_style( ).
|
||||
lo_style_color7->fill->filltype = zcl_excel_style_fill=>c_fill_solid.
|
||||
lo_style_color7->fill->fgcolor-rgb = 'FFB3C14F'.
|
||||
lo_style_color7->borders->allborders = lo_border_light.
|
||||
lv_style_color7_guid = lo_style_color7->get_guid( ).
|
||||
|
||||
" Credits
|
||||
lo_style_credit = lo_excel->add_new_style( ).
|
||||
lo_style_credit->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center.
|
||||
lo_style_credit->alignment->vertical = zcl_excel_style_alignment=>c_vertical_center.
|
||||
lo_style_credit->font->size = 20.
|
||||
lv_style_credit_guid = lo_style_credit->get_guid( ).
|
||||
|
||||
" Link
|
||||
lo_style_link = lo_excel->add_new_style( ).
|
||||
lo_style_link->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center.
|
||||
lo_style_link->alignment->vertical = zcl_excel_style_alignment=>c_vertical_center.
|
||||
lv_style_link_guid = lo_style_link->get_guid( ).
|
||||
|
||||
" Create image map " line 2
|
||||
DO 30 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 3
|
||||
DO 28 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 5 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 4
|
||||
DO 27 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 5
|
||||
DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 15 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 6 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 6
|
||||
DO 7 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 6 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 13 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 7
|
||||
DO 6 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 5 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 11 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 5 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 8
|
||||
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 6 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 9
|
||||
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 10
|
||||
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 6 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 11
|
||||
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 7 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 12
|
||||
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 13
|
||||
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 8 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 14
|
||||
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 12 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 15
|
||||
DO 6 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 8 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 16
|
||||
DO 7 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 7 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
|
||||
DO 5 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 17
|
||||
DO 8 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 6 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
|
||||
DO 13 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 18
|
||||
DO 6 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 23 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 19
|
||||
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 27 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 20
|
||||
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 23 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 21
|
||||
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 19 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 22
|
||||
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 17 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 23
|
||||
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 17 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 8 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 24
|
||||
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 10 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 25
|
||||
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 6 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 8 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 6 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 26
|
||||
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color6_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 27
|
||||
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color6_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 28
|
||||
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color6_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 29
|
||||
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 30
|
||||
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 31
|
||||
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 32
|
||||
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 8 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 9 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 33
|
||||
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 34
|
||||
DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 9 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 10 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 35
|
||||
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 6 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 11 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 36
|
||||
DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 10 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 11 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 37
|
||||
DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 10 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 11 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 38
|
||||
DO 6 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 10 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 11 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 39
|
||||
DO 7 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 22 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 40
|
||||
DO 7 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 17 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 41
|
||||
DO 8 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 15 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 42
|
||||
DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 5 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 6 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 43
|
||||
DO 11 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 6 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 5 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO.
|
||||
DO 7 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 44
|
||||
DO 13 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 6 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
DO 4 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO.
|
||||
DO 8 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 45
|
||||
DO 16 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 13 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
" line 46
|
||||
DO 18 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO.
|
||||
DO 8 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO.
|
||||
APPEND INITIAL LINE TO lt_mapper. " escape
|
||||
|
||||
" Get active sheet
|
||||
lo_worksheet = lo_excel->get_active_worksheet( ).
|
||||
lo_worksheet->set_title( ip_title = 'Angry Birds' ).
|
||||
|
||||
lv_row = 1.
|
||||
lv_col = 1.
|
||||
|
||||
LOOP AT lt_mapper INTO ls_mapper.
|
||||
lv_col_str = zcl_excel_common=>convert_column2alpha( lv_col ).
|
||||
IF ls_mapper IS INITIAL.
|
||||
lo_row = lo_worksheet->get_row( ip_row = lv_row ).
|
||||
lo_row->set_row_height( ip_row_height = 8 ).
|
||||
lv_col = 1.
|
||||
lv_row = lv_row + 1.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
lo_worksheet->set_cell( ip_column = lv_col_str
|
||||
ip_row = lv_row
|
||||
ip_value = space
|
||||
ip_style = ls_mapper ).
|
||||
lv_col = lv_col + 1.
|
||||
|
||||
lo_column = lo_worksheet->get_column( ip_column = lv_col_str ).
|
||||
lo_column->set_width( ip_width = 2 ).
|
||||
ENDLOOP.
|
||||
|
||||
lo_worksheet->set_show_gridlines( i_show_gridlines = abap_false ).
|
||||
|
||||
lo_worksheet->set_cell( ip_column = 'AP'
|
||||
ip_row = 15
|
||||
ip_value = 'Created with abap2xlsx'
|
||||
ip_style = lv_style_credit_guid ).
|
||||
|
||||
lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'https://abap2xlsx.github.io/abap2xlsx' ).
|
||||
lo_worksheet->set_cell( ip_column = 'AP'
|
||||
ip_row = 24
|
||||
ip_value = 'https://abap2xlsx.github.io/abap2xlsx'
|
||||
ip_style = lv_style_link_guid
|
||||
ip_hyperlink = lo_hyperlink ).
|
||||
|
||||
lo_column = lo_worksheet->get_column( ip_column = 'AP' ).
|
||||
lo_column->set_auto_size( ip_auto_size = abap_true ).
|
||||
lo_worksheet->set_merge( ip_row = 15 ip_column_start = 'AP' ip_row_to = 22 ip_column_end = 'AR' ).
|
||||
lo_worksheet->set_merge( ip_row = 24 ip_column_start = 'AP' ip_row_to = 26 ip_column_end = 'AR' ).
|
||||
|
||||
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
|
||||
lv_file = lo_excel_writer->write_file( lo_excel ).
|
||||
|
||||
" Convert to binary
|
||||
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
|
||||
EXPORTING
|
||||
buffer = lv_file
|
||||
IMPORTING
|
||||
output_length = lv_bytecount
|
||||
TABLES
|
||||
binary_tab = lt_file_tab.
|
||||
|
||||
" Save the file
|
||||
cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
|
||||
filename = lv_full_path
|
||||
filetype = 'BIN'
|
||||
CHANGING data_tab = lt_file_tab ).
|
29
src/demos/zangry_birds.prog.xml
Normal file
29
src/demos/zangry_birds.prog.xml
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>ZANGRY_BIRDS</NAME>
|
||||
<SUBC>1</SUBC>
|
||||
<RSTAT>T</RSTAT>
|
||||
<RLOAD>E</RLOAD>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
<TPOOL>
|
||||
<item>
|
||||
<ID>R</ID>
|
||||
<ENTRY>abap2xlsx Demo: Styles</ENTRY>
|
||||
<LENGTH>25</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_PATH</KEY>
|
||||
<ENTRY>.</ENTRY>
|
||||
<LENGTH>9</LENGTH>
|
||||
<SPLIT>D</SPLIT>
|
||||
</item>
|
||||
</TPOOL>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
380
src/demos/zdemo_calendar.prog.abap
Normal file
380
src/demos/zdemo_calendar.prog.abap
Normal file
|
@ -0,0 +1,380 @@
|
|||
*&---------------------------------------------------------------------*
|
||||
*& Report ZDEMO_CALENDAR
|
||||
*& abap2xlsx Demo: Create Calendar with Pictures
|
||||
*&---------------------------------------------------------------------*
|
||||
*& This report creates a monthly calendar in the specified date range.
|
||||
*& Each month is put on a seperate worksheet. The pictures for each
|
||||
*& month can be specified in a tab delimited UTF-8 encoded file called
|
||||
*& "Calendar.txt" which is saved in the Export Directory.
|
||||
*& By default this is the SAP Workdir. The file contains 3 fields:
|
||||
*&
|
||||
*& Month (with leading 0)
|
||||
*& Image Filename
|
||||
*& Image Description
|
||||
*& URL for the Description
|
||||
*& Photographer
|
||||
*&
|
||||
*& The Images should be landscape JPEG's with a 3:2 ratio and min.
|
||||
*& 450 pixel height. They must also be saved in the Export Directory.
|
||||
*& In my tests I've discovered a limit of 20 MB in the
|
||||
*& cl_gui_frontend_services=>gui_download method. So keep your images
|
||||
*& smaller or change to a server export using OPEN DATASET.
|
||||
*&---------------------------------------------------------------------*
|
||||
|
||||
REPORT zdemo_calendar.
|
||||
|
||||
CONSTANTS: gc_save_file_name TYPE string VALUE 'Calendar.xlsx'.
|
||||
INCLUDE zdemo_excel_outputopt_incl.
|
||||
INCLUDE zdemo_calendar_classes.
|
||||
|
||||
DATA: lv_workdir TYPE string.
|
||||
|
||||
PARAMETERS: p_from TYPE dfrom,
|
||||
p_to TYPE dto.
|
||||
|
||||
SELECTION-SCREEN BEGIN OF BLOCK orientation WITH FRAME TITLE orient.
|
||||
PARAMETERS: p_portr TYPE flag RADIOBUTTON GROUP orie,
|
||||
p_lands TYPE flag RADIOBUTTON GROUP orie DEFAULT 'X'.
|
||||
SELECTION-SCREEN END OF BLOCK orientation.
|
||||
|
||||
INITIALIZATION.
|
||||
cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
|
||||
cl_gui_cfw=>flush( ).
|
||||
p_path = lv_workdir.
|
||||
orient = 'Orientation'(000).
|
||||
p_from = |{ sy-datum(4) }0101|.
|
||||
p_to = |{ sy-datum(4) }1231|.
|
||||
|
||||
START-OF-SELECTION.
|
||||
|
||||
DATA: lo_excel TYPE REF TO zcl_excel,
|
||||
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
||||
lo_column TYPE REF TO zcl_excel_column,
|
||||
lo_row TYPE REF TO zcl_excel_row,
|
||||
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
|
||||
lo_drawing TYPE REF TO zcl_excel_drawing.
|
||||
|
||||
DATA: lo_style_month TYPE REF TO zcl_excel_style,
|
||||
lv_style_month_guid TYPE zexcel_cell_style.
|
||||
DATA: lo_style_border TYPE REF TO zcl_excel_style,
|
||||
lo_border_dark TYPE REF TO zcl_excel_style_border,
|
||||
lv_style_border_guid TYPE zexcel_cell_style.
|
||||
DATA: lo_style_center TYPE REF TO zcl_excel_style,
|
||||
lv_style_center_guid TYPE zexcel_cell_style.
|
||||
DATA: lo_style_right TYPE REF TO zcl_excel_style,
|
||||
lv_style_right_guid TYPE zexcel_cell_style.
|
||||
|
||||
DATA: lv_full_path TYPE string,
|
||||
image_descr_path TYPE string,
|
||||
lv_file_separator TYPE c.
|
||||
DATA: lv_content TYPE xstring,
|
||||
width TYPE i,
|
||||
lv_height TYPE i,
|
||||
lv_from_row TYPE zexcel_cell_row.
|
||||
|
||||
DATA: month TYPE i,
|
||||
month_nr TYPE fcmnr,
|
||||
count TYPE i VALUE 1,
|
||||
title TYPE zexcel_sheet_title,
|
||||
value TYPE string,
|
||||
image_path TYPE string,
|
||||
date_from TYPE datum,
|
||||
date_to TYPE datum,
|
||||
row TYPE zexcel_cell_row,
|
||||
to_row TYPE zexcel_cell_row,
|
||||
to_col TYPE zexcel_cell_column_alpha,
|
||||
to_col_end TYPE zexcel_cell_column_alpha,
|
||||
to_col_int TYPE i.
|
||||
|
||||
DATA: month_names TYPE TABLE OF t247.
|
||||
FIELD-SYMBOLS: <month_name> LIKE LINE OF month_names.
|
||||
|
||||
TYPES: BEGIN OF tt_datatab,
|
||||
month_nr TYPE fcmnr,
|
||||
filename TYPE string,
|
||||
descr TYPE string,
|
||||
url TYPE string,
|
||||
photographer TYPE string,
|
||||
END OF tt_datatab.
|
||||
|
||||
DATA: image_descriptions TYPE TABLE OF tt_datatab.
|
||||
FIELD-SYMBOLS: <img_descr> LIKE LINE OF image_descriptions.
|
||||
|
||||
CONSTANTS: lv_default_file_name TYPE string VALUE 'Calendar', "#EC NOTEXT
|
||||
c_from_row_portrait TYPE zexcel_cell_row VALUE 28,
|
||||
c_from_row_landscape TYPE zexcel_cell_row VALUE 38,
|
||||
from_col TYPE zexcel_cell_column_alpha VALUE 'C',
|
||||
c_height_portrait TYPE i VALUE 450, " Image Height in Portrait Mode
|
||||
c_height_landscape TYPE i VALUE 670, " Image Height in Landscape Mode
|
||||
c_factor TYPE f VALUE '1.5'. " Image Ratio, default 3:2
|
||||
|
||||
IF p_path IS INITIAL.
|
||||
p_path = lv_workdir.
|
||||
ENDIF.
|
||||
cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
|
||||
CONCATENATE p_path lv_file_separator lv_default_file_name '.xlsx' INTO lv_full_path. "#EC NOTEXT
|
||||
|
||||
" Read Image Names for Month and Description
|
||||
CONCATENATE p_path lv_file_separator lv_default_file_name '.txt' INTO image_descr_path. "#EC NOTEXT
|
||||
cl_gui_frontend_services=>gui_upload(
|
||||
EXPORTING
|
||||
filename = image_descr_path " Name of file
|
||||
filetype = 'ASC' " File Type (ASCII, Binary)
|
||||
has_field_separator = 'X'
|
||||
read_by_line = 'X' " File Written Line-By-Line to the Internal Table
|
||||
codepage = '4110'
|
||||
CHANGING
|
||||
data_tab = image_descriptions " Transfer table for file contents
|
||||
EXCEPTIONS
|
||||
file_open_error = 1
|
||||
file_read_error = 2
|
||||
no_batch = 3
|
||||
gui_refuse_filetransfer = 4
|
||||
invalid_type = 5
|
||||
no_authority = 6
|
||||
unknown_error = 7
|
||||
bad_data_format = 8
|
||||
header_not_allowed = 9
|
||||
separator_not_allowed = 10
|
||||
header_too_long = 11
|
||||
unknown_dp_error = 12
|
||||
access_denied = 13
|
||||
dp_out_of_memory = 14
|
||||
disk_full = 15
|
||||
dp_timeout = 16
|
||||
not_supported_by_gui = 17
|
||||
error_no_gui = 18
|
||||
OTHERS = 19
|
||||
).
|
||||
IF sy-subrc <> 0.
|
||||
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
|
||||
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
|
||||
ENDIF.
|
||||
|
||||
" Creates active sheet
|
||||
CREATE OBJECT lo_excel.
|
||||
|
||||
" Create Styles
|
||||
" Create an underline double style
|
||||
lo_style_month = lo_excel->add_new_style( ).
|
||||
lo_style_month->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_right.
|
||||
lo_style_month->font->bold = abap_true.
|
||||
lo_style_month->font->size = 36.
|
||||
lv_style_month_guid = lo_style_month->get_guid( ).
|
||||
" Create border object
|
||||
CREATE OBJECT lo_border_dark.
|
||||
lo_border_dark->border_color-rgb = zcl_excel_style_color=>c_black.
|
||||
lo_border_dark->border_style = zcl_excel_style_border=>c_border_thin.
|
||||
"Create style with border
|
||||
lo_style_border = lo_excel->add_new_style( ).
|
||||
lo_style_border->borders->allborders = lo_border_dark.
|
||||
lo_style_border->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_right.
|
||||
lo_style_border->alignment->vertical = zcl_excel_style_alignment=>c_vertical_top.
|
||||
lv_style_border_guid = lo_style_border->get_guid( ).
|
||||
"Create style alignment center
|
||||
lo_style_center = lo_excel->add_new_style( ).
|
||||
lo_style_center->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center.
|
||||
lo_style_center->alignment->vertical = zcl_excel_style_alignment=>c_vertical_top.
|
||||
lv_style_center_guid = lo_style_center->get_guid( ).
|
||||
"Create style alignment right
|
||||
lo_style_right = lo_excel->add_new_style( ).
|
||||
lo_style_right->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_right.
|
||||
lv_style_right_guid = lo_style_right->get_guid( ).
|
||||
|
||||
" Get Month Names
|
||||
CALL FUNCTION 'MONTH_NAMES_GET'
|
||||
TABLES
|
||||
month_names = month_names.
|
||||
|
||||
zcl_date_calculation=>months_between_two_dates(
|
||||
EXPORTING
|
||||
i_date_from = p_from
|
||||
i_date_to = p_to
|
||||
i_incl_to = abap_true
|
||||
IMPORTING
|
||||
e_month = month
|
||||
).
|
||||
|
||||
date_from = p_from.
|
||||
|
||||
WHILE count <= month.
|
||||
IF count = 1.
|
||||
" Get active sheet
|
||||
lo_worksheet = lo_excel->get_active_worksheet( ).
|
||||
ELSE.
|
||||
lo_worksheet = lo_excel->add_new_worksheet( ).
|
||||
ENDIF.
|
||||
|
||||
lo_worksheet->zif_excel_sheet_properties~selected = zif_excel_sheet_properties=>c_selected.
|
||||
|
||||
title = count.
|
||||
value = count.
|
||||
CONDENSE title.
|
||||
CONDENSE value.
|
||||
lo_worksheet->set_title( title ).
|
||||
lo_worksheet->set_print_gridlines( abap_false ).
|
||||
lo_worksheet->sheet_setup->paper_size = zcl_excel_sheet_setup=>c_papersize_a4.
|
||||
lo_worksheet->sheet_setup->horizontal_centered = abap_true.
|
||||
lo_worksheet->sheet_setup->vertical_centered = abap_true.
|
||||
lo_column = lo_worksheet->get_column( 'A' ).
|
||||
lo_column->set_width( '1.0' ).
|
||||
lo_column = lo_worksheet->get_column( 'B' ).
|
||||
lo_column->set_width( '2.0' ).
|
||||
IF p_lands = abap_true.
|
||||
lo_worksheet->sheet_setup->orientation = zcl_excel_sheet_setup=>c_orientation_landscape.
|
||||
lv_height = c_height_landscape.
|
||||
lv_from_row = c_from_row_landscape.
|
||||
lo_worksheet->sheet_setup->margin_top = '0.10'.
|
||||
lo_worksheet->sheet_setup->margin_left = '0.10'.
|
||||
lo_worksheet->sheet_setup->margin_right = '0.10'.
|
||||
lo_worksheet->sheet_setup->margin_bottom = '0.10'.
|
||||
ELSE.
|
||||
lo_column = lo_worksheet->get_column( 'K' ).
|
||||
lo_column->set_width( '3.0' ).
|
||||
lo_worksheet->sheet_setup->margin_top = '0.80'.
|
||||
lo_worksheet->sheet_setup->margin_left = '0.55'.
|
||||
lo_worksheet->sheet_setup->margin_right = '0.05'.
|
||||
lo_worksheet->sheet_setup->margin_bottom = '0.30'.
|
||||
lv_height = c_height_portrait.
|
||||
lv_from_row = c_from_row_portrait.
|
||||
ENDIF.
|
||||
|
||||
" Add Month Name
|
||||
month_nr = date_from+4(2).
|
||||
IF p_portr = abap_true.
|
||||
READ TABLE month_names WITH KEY mnr = month_nr ASSIGNING <month_name>.
|
||||
CONCATENATE <month_name>-ltx ` ` date_from(4) INTO value.
|
||||
row = lv_from_row - 2.
|
||||
to_col = from_col.
|
||||
ELSE.
|
||||
row = lv_from_row - 1.
|
||||
to_col_int = zcl_excel_common=>convert_column2int( from_col ) + 32.
|
||||
to_col = zcl_excel_common=>convert_column2alpha( to_col_int ).
|
||||
to_col_int = to_col_int + 1.
|
||||
to_col_end = zcl_excel_common=>convert_column2alpha( to_col_int ).
|
||||
CONCATENATE month_nr '/' date_from+2(2) INTO value.
|
||||
to_row = row + 2.
|
||||
lo_worksheet->set_merge(
|
||||
EXPORTING
|
||||
ip_column_start = to_col " Cell Column Start
|
||||
ip_column_end = to_col_end " Cell Column End
|
||||
ip_row = row " Cell Row
|
||||
ip_row_to = to_row " Cell Row
|
||||
).
|
||||
ENDIF.
|
||||
lo_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = to_col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
ip_style = lv_style_month_guid
|
||||
).
|
||||
|
||||
" Add drawing from a XSTRING read from a file
|
||||
UNASSIGN <img_descr>.
|
||||
READ TABLE image_descriptions WITH KEY month_nr = month_nr ASSIGNING <img_descr>.
|
||||
IF <img_descr> IS ASSIGNED.
|
||||
value = <img_descr>-descr.
|
||||
IF p_portr = abap_true.
|
||||
row = lv_from_row - 3.
|
||||
ELSE.
|
||||
row = lv_from_row - 2.
|
||||
ENDIF.
|
||||
IF NOT <img_descr>-url IS INITIAL.
|
||||
lo_hyperlink = zcl_excel_hyperlink=>create_external_link( <img_descr>-url ).
|
||||
lo_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = from_col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
ip_hyperlink = lo_hyperlink
|
||||
).
|
||||
ELSE.
|
||||
lo_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = from_col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
).
|
||||
ENDIF.
|
||||
lo_row = lo_worksheet->get_row( row ).
|
||||
lo_row->set_row_height( '22.0' ).
|
||||
" Photographer
|
||||
IF NOT <img_descr>-photographer IS INITIAL.
|
||||
value = <img_descr>-photographer.
|
||||
lo_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = to_col_end " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
ip_style = lv_style_right_guid
|
||||
).
|
||||
ENDIF.
|
||||
" In Landscape mode the row between the description and the
|
||||
" dates should be not so high
|
||||
IF p_lands = abap_true.
|
||||
row = lv_from_row - 3.
|
||||
lo_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = from_col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = ' ' " Cell Value
|
||||
).
|
||||
lo_row = lo_worksheet->get_row( row ).
|
||||
lo_row->set_row_height( '7.0' ).
|
||||
row = lv_from_row - 1.
|
||||
lo_row = lo_worksheet->get_row( row ).
|
||||
lo_row->set_row_height( '5.0' ).
|
||||
ENDIF.
|
||||
|
||||
CONCATENATE p_path lv_file_separator <img_descr>-filename INTO image_path.
|
||||
lo_drawing = lo_excel->add_new_drawing( ).
|
||||
lo_drawing->set_position( ip_from_row = 1
|
||||
ip_from_col = 'B' ).
|
||||
|
||||
lv_content = zcl_helper=>load_image( image_path ).
|
||||
width = lv_height * c_factor.
|
||||
lo_drawing->set_media( ip_media = lv_content
|
||||
ip_media_type = zcl_excel_drawing=>c_media_type_jpg
|
||||
ip_width = width
|
||||
ip_height = lv_height ).
|
||||
lo_worksheet->add_drawing( lo_drawing ).
|
||||
ENDIF.
|
||||
|
||||
" Add Calendar
|
||||
date_to = date_from.
|
||||
date_to+6(2) = '01'. " First of month
|
||||
ADD 31 TO date_to. " Somewhere in following month
|
||||
date_to = date_to - date_to+6(2). " Last of month
|
||||
IF p_portr = abap_true.
|
||||
zcl_helper=>add_calendar(
|
||||
EXPORTING
|
||||
i_date_from = date_from
|
||||
i_date_to = date_to
|
||||
i_from_row = lv_from_row
|
||||
i_from_col = from_col
|
||||
i_day_style = lv_style_border_guid
|
||||
i_cw_style = lv_style_center_guid
|
||||
CHANGING
|
||||
c_worksheet = lo_worksheet
|
||||
).
|
||||
ELSE.
|
||||
zcl_helper=>add_calendar_landscape(
|
||||
EXPORTING
|
||||
i_date_from = date_from
|
||||
i_date_to = date_to
|
||||
i_from_row = lv_from_row
|
||||
i_from_col = from_col
|
||||
i_day_style = lv_style_border_guid
|
||||
i_cw_style = lv_style_center_guid
|
||||
CHANGING
|
||||
c_worksheet = lo_worksheet
|
||||
).
|
||||
ENDIF.
|
||||
count = count + 1.
|
||||
date_from = date_to + 1.
|
||||
ENDWHILE.
|
||||
|
||||
lo_excel->set_active_sheet_index_by_name( '1' ).
|
||||
*** Create output
|
||||
lcl_output=>output( lo_excel ).
|
130
src/demos/zdemo_calendar.prog.xml
Normal file
130
src/demos/zdemo_calendar.prog.xml
Normal file
|
@ -0,0 +1,130 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>ZDEMO_CALENDAR</NAME>
|
||||
<SUBC>1</SUBC>
|
||||
<RSTAT>T</RSTAT>
|
||||
<RLOAD>E</RLOAD>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
<TPOOL>
|
||||
<item>
|
||||
<ID>I</ID>
|
||||
<KEY>000</KEY>
|
||||
<ENTRY>Orientation</ENTRY>
|
||||
<LENGTH>21</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>I</ID>
|
||||
<KEY>001</KEY>
|
||||
<ENTRY>CW</ENTRY>
|
||||
<LENGTH>12</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>I</ID>
|
||||
<KEY>002</KEY>
|
||||
<ENTRY>Created with https://github.com/abap2xlsx/abap2xlsx</ENTRY>
|
||||
<LENGTH>132</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>R</ID>
|
||||
<ENTRY>abap2xlsx Demo: Create Calendar with Pictures</ENTRY>
|
||||
<LENGTH>45</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_FROM</KEY>
|
||||
<ENTRY>From</ENTRY>
|
||||
<LENGTH>12</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_LANDS</KEY>
|
||||
<ENTRY>Landscape</ENTRY>
|
||||
<LENGTH>17</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_PATH</KEY>
|
||||
<ENTRY>Path</ENTRY>
|
||||
<LENGTH>12</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_PORTR</KEY>
|
||||
<ENTRY>Portrait</ENTRY>
|
||||
<LENGTH>16</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_TO</KEY>
|
||||
<ENTRY>To</ENTRY>
|
||||
<LENGTH>10</LENGTH>
|
||||
</item>
|
||||
</TPOOL>
|
||||
<I18N_TPOOL>
|
||||
<item>
|
||||
<LANGUAGE>D</LANGUAGE>
|
||||
<TEXTPOOL>
|
||||
<item>
|
||||
<ID>I</ID>
|
||||
<KEY>000</KEY>
|
||||
<ENTRY>Ausrichtung</ENTRY>
|
||||
<LENGTH>21</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>I</ID>
|
||||
<KEY>001</KEY>
|
||||
<ENTRY>KW</ENTRY>
|
||||
<LENGTH>12</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>I</ID>
|
||||
<KEY>002</KEY>
|
||||
<ENTRY>Erzeugt mit https://github.com/abap2xlsx/abap2xlsx</ENTRY>
|
||||
<LENGTH>132</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>R</ID>
|
||||
<ENTRY>abap2xlsx Demo: Erzeugen eines Kalenders mit Bildern</ENTRY>
|
||||
<LENGTH>70</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_FROM</KEY>
|
||||
<ENTRY>Von</ENTRY>
|
||||
<LENGTH>38</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_LANDS</KEY>
|
||||
<ENTRY>Querformat</ENTRY>
|
||||
<LENGTH>38</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_PATH</KEY>
|
||||
<ENTRY>Pfad</ENTRY>
|
||||
<LENGTH>38</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_PORTR</KEY>
|
||||
<ENTRY>Hochformat</ENTRY>
|
||||
<LENGTH>38</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_TO</KEY>
|
||||
<ENTRY>Bis</ENTRY>
|
||||
<LENGTH>38</LENGTH>
|
||||
</item>
|
||||
</TEXTPOOL>
|
||||
</item>
|
||||
</I18N_TPOOL>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
476
src/demos/zdemo_calendar_classes.prog.abap
Normal file
476
src/demos/zdemo_calendar_classes.prog.abap
Normal file
|
@ -0,0 +1,476 @@
|
|||
*&---------------------------------------------------------------------*
|
||||
*& Include ZDEMO_CALENDAR_CLASSES
|
||||
*&---------------------------------------------------------------------*
|
||||
|
||||
*&---------------------------------------------------------------------*
|
||||
*& Class ZCL_DATE_CALCULATION
|
||||
*&---------------------------------------------------------------------*
|
||||
* Text
|
||||
*----------------------------------------------------------------------*
|
||||
CLASS zcl_date_calculation DEFINITION.
|
||||
PUBLIC SECTION.
|
||||
CLASS-METHODS: months_between_two_dates
|
||||
IMPORTING
|
||||
i_date_from TYPE datum
|
||||
i_date_to TYPE datum
|
||||
i_incl_to TYPE flag
|
||||
EXPORTING
|
||||
e_month TYPE i.
|
||||
ENDCLASS. "ZCL_DATE_CALCULATION
|
||||
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS ZCL_DATE_CALCULATION IMPLEMENTATION
|
||||
*----------------------------------------------------------------------*
|
||||
*
|
||||
*----------------------------------------------------------------------*
|
||||
CLASS zcl_date_calculation IMPLEMENTATION.
|
||||
METHOD months_between_two_dates.
|
||||
DATA: date_to TYPE datum.
|
||||
DATA: BEGIN OF datum_von,
|
||||
jjjj(4) TYPE n,
|
||||
mm(2) TYPE n,
|
||||
tt(2) TYPE n,
|
||||
END OF datum_von.
|
||||
|
||||
DATA: BEGIN OF datum_bis,
|
||||
jjjj(4) TYPE n,
|
||||
mm(2) TYPE n,
|
||||
tt(2) TYPE n,
|
||||
END OF datum_bis.
|
||||
|
||||
e_month = 0.
|
||||
|
||||
CHECK i_date_from IS NOT INITIAL AND i_date_to IS NOT INITIAL.
|
||||
|
||||
date_to = i_date_to.
|
||||
IF i_incl_to = abap_true.
|
||||
date_to = date_to + 1.
|
||||
ENDIF.
|
||||
|
||||
datum_von = i_date_from.
|
||||
datum_bis = date_to.
|
||||
|
||||
e_month = ( datum_bis-jjjj - datum_von-jjjj ) * 12
|
||||
+ ( datum_bis-mm - datum_von-mm ).
|
||||
ENDMETHOD. "MONTHS_BETWEEN_TWO_DATES
|
||||
ENDCLASS. "ZCL_DATE_CALCULATION IMPLEMENTATION
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS zcl_date_calculation_test DEFINITION
|
||||
*----------------------------------------------------------------------*
|
||||
*
|
||||
*----------------------------------------------------------------------*
|
||||
CLASS zcl_date_calculation_test DEFINITION FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS
|
||||
.
|
||||
PRIVATE SECTION.
|
||||
METHODS:
|
||||
months_between_two_dates FOR TESTING.
|
||||
ENDCLASS. "zcl_date_calculation_test DEFINITION
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS zcl_date_calculation_test IMPLEMENTATION
|
||||
*----------------------------------------------------------------------*
|
||||
*
|
||||
*----------------------------------------------------------------------*
|
||||
CLASS zcl_date_calculation_test IMPLEMENTATION.
|
||||
METHOD months_between_two_dates.
|
||||
|
||||
DATA: date_from TYPE datum VALUE '20120101',
|
||||
date_to TYPE datum VALUE '20121231'.
|
||||
DATA: month TYPE i.
|
||||
|
||||
zcl_date_calculation=>months_between_two_dates(
|
||||
EXPORTING
|
||||
i_date_from = date_from
|
||||
i_date_to = date_to
|
||||
i_incl_to = abap_true
|
||||
IMPORTING
|
||||
e_month = month
|
||||
).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = 12 " Data Object with Expected Type
|
||||
act = month " Data Object with Current Value
|
||||
msg = 'Calculated date is wrong' " Message in Case of Error
|
||||
).
|
||||
|
||||
ENDMETHOD. "months_between_two_dates
|
||||
ENDCLASS. "zcl_date_calculation_test IMPLEMENTATION
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS zcl_helper DEFINITION
|
||||
*----------------------------------------------------------------------*
|
||||
*
|
||||
*----------------------------------------------------------------------*
|
||||
CLASS zcl_helper DEFINITION.
|
||||
PUBLIC SECTION.
|
||||
CLASS-METHODS:
|
||||
load_image
|
||||
IMPORTING
|
||||
filename TYPE string
|
||||
RETURNING VALUE(r_image) TYPE xstring,
|
||||
add_calendar
|
||||
IMPORTING
|
||||
i_date_from TYPE datum
|
||||
i_date_to TYPE datum
|
||||
i_from_row TYPE zexcel_cell_row
|
||||
i_from_col TYPE zexcel_cell_column_alpha
|
||||
i_day_style TYPE zexcel_cell_style
|
||||
i_cw_style TYPE zexcel_cell_style
|
||||
CHANGING
|
||||
c_worksheet TYPE REF TO zcl_excel_worksheet
|
||||
RAISING
|
||||
zcx_excel,
|
||||
add_calendar_landscape
|
||||
IMPORTING
|
||||
i_date_from TYPE datum
|
||||
i_date_to TYPE datum
|
||||
i_from_row TYPE zexcel_cell_row
|
||||
i_from_col TYPE zexcel_cell_column_alpha
|
||||
i_day_style TYPE zexcel_cell_style
|
||||
i_cw_style TYPE zexcel_cell_style
|
||||
CHANGING
|
||||
c_worksheet TYPE REF TO zcl_excel_worksheet
|
||||
RAISING
|
||||
zcx_excel,
|
||||
add_a2x_footer
|
||||
IMPORTING
|
||||
i_from_row TYPE zexcel_cell_row
|
||||
i_from_col TYPE zexcel_cell_column_alpha
|
||||
CHANGING
|
||||
c_worksheet TYPE REF TO zcl_excel_worksheet
|
||||
RAISING
|
||||
zcx_excel,
|
||||
add_calender_week
|
||||
IMPORTING
|
||||
i_date TYPE datum
|
||||
i_row TYPE zexcel_cell_row
|
||||
i_col TYPE zexcel_cell_column_alpha
|
||||
i_style TYPE zexcel_cell_style
|
||||
CHANGING
|
||||
c_worksheet TYPE REF TO zcl_excel_worksheet
|
||||
RAISING
|
||||
zcx_excel.
|
||||
ENDCLASS. "zcl_helper DEFINITION
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS zcl_helper IMPLEMENTATION
|
||||
*----------------------------------------------------------------------*
|
||||
*
|
||||
*----------------------------------------------------------------------*
|
||||
CLASS zcl_helper IMPLEMENTATION.
|
||||
METHOD load_image.
|
||||
"Load samle image
|
||||
DATA: lt_bin TYPE solix_tab,
|
||||
lv_len TYPE i.
|
||||
|
||||
CALL METHOD cl_gui_frontend_services=>gui_upload
|
||||
EXPORTING
|
||||
filename = filename
|
||||
filetype = 'BIN'
|
||||
IMPORTING
|
||||
filelength = lv_len
|
||||
CHANGING
|
||||
data_tab = lt_bin
|
||||
EXCEPTIONS
|
||||
file_open_error = 1
|
||||
file_read_error = 2
|
||||
no_batch = 3
|
||||
gui_refuse_filetransfer = 4
|
||||
invalid_type = 5
|
||||
no_authority = 6
|
||||
unknown_error = 7
|
||||
bad_data_format = 8
|
||||
header_not_allowed = 9
|
||||
separator_not_allowed = 10
|
||||
header_too_long = 11
|
||||
unknown_dp_error = 12
|
||||
access_denied = 13
|
||||
dp_out_of_memory = 14
|
||||
disk_full = 15
|
||||
dp_timeout = 16
|
||||
not_supported_by_gui = 17
|
||||
error_no_gui = 18
|
||||
OTHERS = 19.
|
||||
IF sy-subrc <> 0.
|
||||
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
|
||||
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
|
||||
ENDIF.
|
||||
|
||||
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
|
||||
EXPORTING
|
||||
input_length = lv_len
|
||||
IMPORTING
|
||||
buffer = r_image
|
||||
TABLES
|
||||
binary_tab = lt_bin
|
||||
EXCEPTIONS
|
||||
failed = 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.
|
||||
ENDMETHOD. "load_image
|
||||
METHOD add_calendar.
|
||||
DATA: day_names TYPE TABLE OF t246.
|
||||
DATA: row TYPE zexcel_cell_row,
|
||||
row_max TYPE i,
|
||||
col_int TYPE zexcel_cell_column,
|
||||
col_max TYPE i,
|
||||
from_col_int TYPE zexcel_cell_column,
|
||||
col TYPE zexcel_cell_column_alpha,
|
||||
lo_column TYPE REF TO zcl_excel_column,
|
||||
lo_row TYPE REF TO zcl_excel_row.
|
||||
DATA: lv_date TYPE datum,
|
||||
value TYPE string,
|
||||
weekday TYPE wotnr,
|
||||
weekrow TYPE wotnr VALUE 1,
|
||||
day TYPE i,
|
||||
width TYPE f,
|
||||
height TYPE f.
|
||||
DATA: hyperlink TYPE REF TO zcl_excel_hyperlink.
|
||||
|
||||
FIELD-SYMBOLS: <day_name> LIKE LINE OF day_names.
|
||||
|
||||
lv_date = i_date_from.
|
||||
from_col_int = zcl_excel_common=>convert_column2int( i_from_col ).
|
||||
" Add description for Calendar Week
|
||||
c_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = i_from_col " Cell Column
|
||||
ip_row = i_from_row " Cell Row
|
||||
ip_value = 'CW'(001) " Cell Value
|
||||
ip_style = i_cw_style
|
||||
).
|
||||
|
||||
" Add Days
|
||||
CALL FUNCTION 'DAY_NAMES_GET'
|
||||
TABLES
|
||||
day_names = day_names.
|
||||
|
||||
LOOP AT day_names ASSIGNING <day_name>.
|
||||
row = i_from_row.
|
||||
col_int = from_col_int + <day_name>-wotnr.
|
||||
col = zcl_excel_common=>convert_column2alpha( col_int ).
|
||||
value = <day_name>-langt.
|
||||
c_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
ip_style = i_cw_style
|
||||
).
|
||||
ENDLOOP.
|
||||
|
||||
WHILE lv_date <= i_date_to.
|
||||
day = lv_date+6(2).
|
||||
CALL FUNCTION 'FIMA_X_DAY_IN_MONTH_COMPUTE'
|
||||
EXPORTING
|
||||
i_datum = lv_date
|
||||
IMPORTING
|
||||
e_wochentag_nr = weekday.
|
||||
|
||||
row = i_from_row + weekrow.
|
||||
col_int = from_col_int + weekday.
|
||||
col = zcl_excel_common=>convert_column2alpha( col_int ).
|
||||
|
||||
value = day.
|
||||
CONDENSE value.
|
||||
|
||||
c_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
ip_style = i_day_style " Single-Character Indicator
|
||||
).
|
||||
|
||||
IF weekday = 7.
|
||||
" Add Calender Week
|
||||
zcl_helper=>add_calender_week(
|
||||
EXPORTING
|
||||
i_date = lv_date
|
||||
i_row = row
|
||||
i_col = i_from_col
|
||||
i_style = i_cw_style
|
||||
CHANGING
|
||||
c_worksheet = c_worksheet
|
||||
).
|
||||
weekrow = weekrow + 1.
|
||||
ENDIF.
|
||||
lv_date = lv_date + 1.
|
||||
ENDWHILE.
|
||||
" Add Calender Week
|
||||
zcl_helper=>add_calender_week(
|
||||
EXPORTING
|
||||
i_date = lv_date
|
||||
i_row = row
|
||||
i_col = i_from_col
|
||||
i_style = i_cw_style
|
||||
CHANGING
|
||||
c_worksheet = c_worksheet
|
||||
).
|
||||
" Add Created with abap2xlsx
|
||||
row = row + 2.
|
||||
zcl_helper=>add_a2x_footer(
|
||||
EXPORTING
|
||||
i_from_row = row
|
||||
i_from_col = i_from_col
|
||||
CHANGING
|
||||
c_worksheet = c_worksheet
|
||||
).
|
||||
col_int = from_col_int.
|
||||
col_max = from_col_int + 7.
|
||||
WHILE col_int <= col_max.
|
||||
col = zcl_excel_common=>convert_column2alpha( col_int ).
|
||||
IF sy-index = 1.
|
||||
width = '5.0'.
|
||||
ELSE.
|
||||
width = '11.4'.
|
||||
ENDIF.
|
||||
lo_column = c_worksheet->get_column( col ).
|
||||
lo_column->set_width( width ).
|
||||
col_int = col_int + 1.
|
||||
ENDWHILE.
|
||||
row = i_from_row + 1.
|
||||
row_max = i_from_row + 6.
|
||||
WHILE row <= row_max.
|
||||
height = 50.
|
||||
lo_row = c_worksheet->get_row( row ).
|
||||
lo_row->set_row_height( height ).
|
||||
row = row + 1.
|
||||
ENDWHILE.
|
||||
ENDMETHOD. "add_calendar
|
||||
METHOD add_a2x_footer.
|
||||
DATA: value TYPE string,
|
||||
hyperlink TYPE REF TO zcl_excel_hyperlink.
|
||||
|
||||
value = 'Created with https://github.com/abap2xlsx/abap2xlsx'(002).
|
||||
hyperlink = zcl_excel_hyperlink=>create_external_link( 'https://github.com/abap2xlsx/abap2xlsx' ). "#EC NOTEXT
|
||||
c_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = i_from_col " Cell Column
|
||||
ip_row = i_from_row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
ip_hyperlink = hyperlink
|
||||
).
|
||||
|
||||
ENDMETHOD. "add_a2x_footer
|
||||
METHOD add_calendar_landscape.
|
||||
DATA: day_names TYPE TABLE OF t246.
|
||||
|
||||
DATA: lv_date TYPE datum,
|
||||
day TYPE i,
|
||||
value TYPE string,
|
||||
weekday TYPE wotnr.
|
||||
DATA: row TYPE zexcel_cell_row,
|
||||
from_col_int TYPE zexcel_cell_column,
|
||||
col_int TYPE zexcel_cell_column,
|
||||
col TYPE zexcel_cell_column_alpha.
|
||||
DATA: lo_column TYPE REF TO zcl_excel_column,
|
||||
lo_row TYPE REF TO zcl_excel_row.
|
||||
|
||||
FIELD-SYMBOLS: <day_name> LIKE LINE OF day_names.
|
||||
|
||||
lv_date = i_date_from.
|
||||
" Add Days
|
||||
CALL FUNCTION 'DAY_NAMES_GET'
|
||||
TABLES
|
||||
day_names = day_names.
|
||||
|
||||
WHILE lv_date <= i_date_to.
|
||||
day = lv_date+6(2).
|
||||
CALL FUNCTION 'FIMA_X_DAY_IN_MONTH_COMPUTE'
|
||||
EXPORTING
|
||||
i_datum = lv_date
|
||||
IMPORTING
|
||||
e_wochentag_nr = weekday.
|
||||
" Day name row
|
||||
row = i_from_row.
|
||||
col_int = from_col_int + day + 2.
|
||||
col = zcl_excel_common=>convert_column2alpha( col_int ).
|
||||
READ TABLE day_names ASSIGNING <day_name>
|
||||
WITH KEY wotnr = weekday.
|
||||
value = <day_name>-kurzt.
|
||||
c_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
ip_style = i_cw_style
|
||||
).
|
||||
|
||||
" Day row
|
||||
row = i_from_row + 1.
|
||||
value = day.
|
||||
CONDENSE value.
|
||||
|
||||
c_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
ip_style = i_day_style " Single-Character Indicator
|
||||
).
|
||||
" width
|
||||
lo_column = c_worksheet->get_column( col ).
|
||||
lo_column->set_width( '3.6' ).
|
||||
|
||||
|
||||
lv_date = lv_date + 1.
|
||||
ENDWHILE.
|
||||
" Add ABAP2XLSX Footer
|
||||
row = i_from_row + 2.
|
||||
c_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = col " Cell Column
|
||||
ip_row = row " Cell Row
|
||||
ip_value = ' ' " Cell Value
|
||||
).
|
||||
lo_row = c_worksheet->get_row( row ).
|
||||
lo_row->set_row_height( '5.0' ).
|
||||
row = i_from_row + 3.
|
||||
zcl_helper=>add_a2x_footer(
|
||||
EXPORTING
|
||||
i_from_row = row
|
||||
i_from_col = i_from_col
|
||||
CHANGING
|
||||
c_worksheet = c_worksheet
|
||||
).
|
||||
|
||||
" Set with for all 31 coulumns
|
||||
WHILE day < 32.
|
||||
day = day + 1.
|
||||
col_int = from_col_int + day + 2.
|
||||
col = zcl_excel_common=>convert_column2alpha( col_int ).
|
||||
" width
|
||||
lo_column = c_worksheet->get_column( col ).
|
||||
lo_column->set_width( '3.6' ).
|
||||
ENDWHILE.
|
||||
ENDMETHOD. "ADD_CALENDAR_LANDSCAPE
|
||||
|
||||
METHOD add_calender_week.
|
||||
DATA: week TYPE kweek,
|
||||
week_int TYPE i,
|
||||
value TYPE string.
|
||||
" Add Calender Week
|
||||
CALL FUNCTION 'DATE_GET_WEEK'
|
||||
EXPORTING
|
||||
date = i_date " Date for which the week should be calculated
|
||||
IMPORTING
|
||||
week = week. " Week for date (format:YYYYWW)
|
||||
value = week+4(2).
|
||||
week_int = value.
|
||||
value = week_int.
|
||||
CONDENSE value.
|
||||
c_worksheet->set_cell(
|
||||
EXPORTING
|
||||
ip_column = i_col " Cell Column
|
||||
ip_row = i_row " Cell Row
|
||||
ip_value = value " Cell Value
|
||||
ip_style = i_style
|
||||
).
|
||||
ENDMETHOD. "add_calender_week
|
||||
ENDCLASS. "zcl_helper IMPLEMENTATION
|
20
src/demos/zdemo_calendar_classes.prog.xml
Normal file
20
src/demos/zdemo_calendar_classes.prog.xml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>ZDEMO_CALENDAR_CLASSES</NAME>
|
||||
<SUBC>I</SUBC>
|
||||
<RLOAD>E</RLOAD>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
<TPOOL>
|
||||
<item>
|
||||
<ID>R</ID>
|
||||
<ENTRY>Include ZDEMO_CALENDAR_CLASSES</ENTRY>
|
||||
<LENGTH>30</LENGTH>
|
||||
</item>
|
||||
</TPOOL>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
90
src/demos/zdemo_excel.prog.abap
Normal file
90
src/demos/zdemo_excel.prog.abap
Normal file
|
@ -0,0 +1,90 @@
|
|||
*&---------------------------------------------------------------------*
|
||||
*& Report ZDEMO_EXCEL
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
*&
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
|
||||
REPORT zdemo_excel.
|
||||
|
||||
DATA: lv_workdir TYPE string,
|
||||
lv_filesep TYPE c LENGTH 1,
|
||||
lv_upfile TYPE string.
|
||||
|
||||
|
||||
PARAMETERS: p_path TYPE zexcel_export_dir.
|
||||
PARAMETERS: p_checkr NO-DISPLAY TYPE abap_bool.
|
||||
|
||||
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
|
||||
lv_workdir = p_path.
|
||||
cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
|
||||
CHANGING selected_folder = lv_workdir ).
|
||||
p_path = lv_workdir.
|
||||
|
||||
INITIALIZATION.
|
||||
cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
|
||||
cl_gui_cfw=>flush( ).
|
||||
p_path = lv_workdir.
|
||||
|
||||
START-OF-SELECTION.
|
||||
|
||||
IF p_path IS INITIAL.
|
||||
p_path = lv_workdir.
|
||||
ENDIF.
|
||||
|
||||
cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_filesep ).
|
||||
CONCATENATE p_path lv_filesep '01_HelloWorld.xlsx' INTO lv_upfile.
|
||||
|
||||
SUBMIT zdemo_excel1 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Hello world
|
||||
SUBMIT zdemo_excel2 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Styles
|
||||
SUBMIT zdemo_excel3 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path WITH p_checkr = p_checkr AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: iTab binding
|
||||
SUBMIT zdemo_excel4 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Multi sheets, page setup and sheet properties
|
||||
SUBMIT zdemo_excel5 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Conditional formatting
|
||||
SUBMIT zdemo_excel6 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Formulas
|
||||
SUBMIT zdemo_excel7 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Conditional formatting
|
||||
SUBMIT zdemo_excel8 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Ranges
|
||||
SUBMIT zdemo_excel9 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Data validation
|
||||
SUBMIT zdemo_excel10 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Bind table with field catalog
|
||||
" zdemo_excel11 is not added because it has a selection screen and
|
||||
" you also need to have business partners maintained in transaction BP
|
||||
SUBMIT zdemo_excel12 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Column size
|
||||
SUBMIT zdemo_excel13 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Merge cell
|
||||
SUBMIT zdemo_excel14 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Alignment
|
||||
" zdemo_excel15 added at the end
|
||||
SUBMIT zdemo_excel16 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Drawing
|
||||
SUBMIT zdemo_excel17 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Lock sheet
|
||||
SUBMIT zdemo_excel18 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Lock workbook
|
||||
SUBMIT zdemo_excel19 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Set active sheet
|
||||
" zdemo_excel20 is not added because it uses ALV and cannot be processed (OLE2)
|
||||
SUBMIT zdemo_excel21 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Color Picker
|
||||
SUBMIT zdemo_excel22 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Bind table with field catalog & sheet style
|
||||
SUBMIT zdemo_excel23 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Multiple sheets with and w/o grid lines, print options
|
||||
SUBMIT zdemo_excel24 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Multiple sheets with different default date formats
|
||||
" zdemo_excel25 is not processed because the default logical path may not exist, and anyway zdemo_excel25 doesn't demonstrate any abap2xlsx feature
|
||||
" zdemo_excel26 is not added because it uses ALV and cannot be processed (Native)
|
||||
SUBMIT zdemo_excel27 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Conditional Formatting
|
||||
SUBMIT zdemo_excel28 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: CSV writer
|
||||
" SUBMIT zdemo_excel29 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Macro enabled workbook
|
||||
SUBMIT zdemo_excel30 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: ABAP Cell data types + leading blanks string
|
||||
SUBMIT zdemo_excel31 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Autosize Column with different Font sizes
|
||||
" zdemo_excel32 is not added because it uses ALV and cannot be processed (Native)
|
||||
SUBMIT zdemo_excel33 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Table autofilter
|
||||
SUBMIT zdemo_excel34 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Static Styles Chess
|
||||
SUBMIT zdemo_excel35 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Static Styles
|
||||
SUBMIT zdemo_excel36 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Style applied to sheet, column and single cell
|
||||
SUBMIT zdemo_excel37 WITH p_upfile = lv_upfile
|
||||
WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Simplest call of the reader and writer - passthrough data
|
||||
SUBMIT zdemo_excel38 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Show off integration of drawings ( here using the SAP-Icons )
|
||||
SUBMIT zdemo_excel39 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Charts
|
||||
SUBMIT zdemo_excel40 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Demo Printsettings
|
||||
SUBMIT zdemo_excel41 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Inheritance
|
||||
SUBMIT zdemo_excel44 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: No line if empty
|
||||
|
||||
SUBMIT zdemo_excel_comments WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Comments
|
||||
SUBMIT ztest_excel_image_header WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT abap2xlsx Demo: Image in Header and Footer
|
||||
"
|
||||
" Reader/Writer Demo must always run at the end
|
||||
" to make sure all documents where created
|
||||
"
|
||||
SUBMIT zdemo_excel15 WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT Read Excel and write it back
|
28
src/demos/zdemo_excel.prog.xml
Normal file
28
src/demos/zdemo_excel.prog.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>ZDEMO_EXCEL</NAME>
|
||||
<SUBC>1</SUBC>
|
||||
<RSTAT>T</RSTAT>
|
||||
<RLOAD>E</RLOAD>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
<TPOOL>
|
||||
<item>
|
||||
<ID>R</ID>
|
||||
<ENTRY>abap2xlsx Demo:</ENTRY>
|
||||
<LENGTH>15</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_PATH</KEY>
|
||||
<ENTRY>Select output path</ENTRY>
|
||||
<LENGTH>26</LENGTH>
|
||||
</item>
|
||||
</TPOOL>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
64
src/demos/zdemo_excel1.prog.abap
Normal file
64
src/demos/zdemo_excel1.prog.abap
Normal file
|
@ -0,0 +1,64 @@
|
|||
*&---------------------------------------------------------------------*
|
||||
*& Report ZDEMO_EXCEL1
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
*&
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
|
||||
REPORT zdemo_excel1.
|
||||
|
||||
|
||||
DATA: lo_excel TYPE REF TO zcl_excel,
|
||||
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
||||
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
|
||||
lo_column TYPE REF TO zcl_excel_column,
|
||||
lv_date TYPE d,
|
||||
lv_time TYPE t.
|
||||
|
||||
CONSTANTS: gc_save_file_name TYPE string VALUE '01_HelloWorld.xlsx'.
|
||||
INCLUDE zdemo_excel_outputopt_incl.
|
||||
|
||||
|
||||
START-OF-SELECTION.
|
||||
" Creates active sheet
|
||||
CREATE OBJECT lo_excel.
|
||||
|
||||
" Get active sheet
|
||||
lo_worksheet = lo_excel->get_active_worksheet( ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ).
|
||||
lv_date = '20211231'.
|
||||
lv_time = '055817'.
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = lv_date ).
|
||||
lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = lv_time ).
|
||||
lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'https://abap2xlsx.github.io/abap2xlsx' ).
|
||||
lo_worksheet->set_cell( ip_columnrow = 'B4' ip_value = 'Click here to visit abap2xlsx homepage' ip_hyperlink = lo_hyperlink ).
|
||||
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 6 ip_value = '你好,世界' ).
|
||||
lo_worksheet->set_cell( ip_column = 'C' ip_row = 6 ip_value = '(Chinese)' ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 7 ip_value = 'नमस्ते दुनिया' ).
|
||||
lo_worksheet->set_cell( ip_column = 'C' ip_row = 7 ip_value = '(Hindi)' ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 8 ip_value = 'Hola Mundo' ).
|
||||
lo_worksheet->set_cell( ip_column = 'C' ip_row = 8 ip_value = '(Spanish)' ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 9 ip_value = 'مرحبا بالعالم' ).
|
||||
lo_worksheet->set_cell( ip_column = 'C' ip_row = 9 ip_value = '(Arabic)' ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 10 ip_value = 'ওহে বিশ্ব ' ).
|
||||
lo_worksheet->set_cell( ip_column = 'C' ip_row = 10 ip_value = '(Bengali)' ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 11 ip_value = 'Bonjour le monde' ).
|
||||
lo_worksheet->set_cell( ip_column = 'C' ip_row = 11 ip_value = '(French)' ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 12 ip_value = 'Olá Mundo' ).
|
||||
lo_worksheet->set_cell( ip_column = 'C' ip_row = 12 ip_value = '(Portuguese)' ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 13 ip_value = 'Привет, мир' ).
|
||||
lo_worksheet->set_cell( ip_column = 'C' ip_row = 13 ip_value = '(Russian)' ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 14 ip_value = 'ہیلو دنیا' ).
|
||||
lo_worksheet->set_cell( ip_column = 'C' ip_row = 14 ip_value = '(Urdu)' ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 15 ip_value = '👋🌎, 👋🌍, 👋🌏' ).
|
||||
lo_worksheet->set_cell( ip_column = 'C' ip_row = 15 ip_value = '(Emoji waving hand + 3 parts of the world)' ).
|
||||
|
||||
lo_column = lo_worksheet->get_column( ip_column = 'B' ).
|
||||
lo_column->set_width( ip_width = 11 ).
|
||||
|
||||
|
||||
|
||||
*** Create output
|
||||
lcl_output=>output( lo_excel ).
|
34
src/demos/zdemo_excel1.prog.xml
Normal file
34
src/demos/zdemo_excel1.prog.xml
Normal file
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>ZDEMO_EXCEL1</NAME>
|
||||
<SUBC>1</SUBC>
|
||||
<RSTAT>T</RSTAT>
|
||||
<RLOAD>E</RLOAD>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
<TPOOL>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_PATH</KEY>
|
||||
<ENTRY>.</ENTRY>
|
||||
<LENGTH>9</LENGTH>
|
||||
<SPLIT>D</SPLIT>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>RB_BACK</KEY>
|
||||
<LENGTH>17</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>R</ID>
|
||||
<ENTRY>abap2xlsx Demo: Hello World</ENTRY>
|
||||
<LENGTH>28</LENGTH>
|
||||
</item>
|
||||
</TPOOL>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
BIN
src/demos/zdemo_excel1.w3mi.data.xlsx
Normal file
BIN
src/demos/zdemo_excel1.w3mi.data.xlsx
Normal file
Binary file not shown.
28
src/demos/zdemo_excel1.w3mi.xml
Normal file
28
src/demos/zdemo_excel1.w3mi.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_W3MI" serializer_version="v2.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<NAME>ZDEMO_EXCEL1</NAME>
|
||||
<TEXT>01_HelloWorld.xlsx (ZDEMO_EXCEL1)</TEXT>
|
||||
<PARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL1</OBJID>
|
||||
<NAME>fileextension</NAME>
|
||||
<VALUE>.xlsx</VALUE>
|
||||
</WWWPARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL1</OBJID>
|
||||
<NAME>filename</NAME>
|
||||
</WWWPARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL1</OBJID>
|
||||
<NAME>mimetype</NAME>
|
||||
<VALUE>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</VALUE>
|
||||
</WWWPARAMS>
|
||||
</PARAMS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
144
src/demos/zdemo_excel10.prog.abap
Normal file
144
src/demos/zdemo_excel10.prog.abap
Normal file
|
@ -0,0 +1,144 @@
|
|||
*&---------------------------------------------------------------------*
|
||||
*& Report ZDEMO_EXCEL10
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
*&
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
|
||||
REPORT zdemo_excel10.
|
||||
|
||||
TYPES: ty_sflight_lines TYPE TABLE OF sflight.
|
||||
|
||||
DATA: lo_excel TYPE REF TO zcl_excel,
|
||||
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
||||
lo_style_cond TYPE REF TO zcl_excel_style_cond,
|
||||
lo_column TYPE REF TO zcl_excel_column.
|
||||
|
||||
DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
|
||||
ls_table_settings TYPE zexcel_s_table_settings,
|
||||
ls_iconset TYPE zexcel_conditional_iconset.
|
||||
|
||||
CONSTANTS: gc_save_file_name TYPE string VALUE '10_iTabFieldCatalog.xlsx'.
|
||||
INCLUDE zdemo_excel_outputopt_incl.
|
||||
|
||||
|
||||
START-OF-SELECTION.
|
||||
|
||||
FIELD-SYMBOLS: <fs_field_catalog> TYPE zexcel_s_fieldcatalog.
|
||||
|
||||
" Creates active sheet
|
||||
CREATE OBJECT lo_excel.
|
||||
|
||||
" Get active sheet
|
||||
lo_worksheet = lo_excel->get_active_worksheet( ).
|
||||
lo_worksheet->set_title( 'Internal table' ).
|
||||
|
||||
ls_iconset-iconset = zcl_excel_style_cond=>c_iconset_5arrows.
|
||||
ls_iconset-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_percent.
|
||||
ls_iconset-cfvo1_value = '0'.
|
||||
ls_iconset-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_percent.
|
||||
ls_iconset-cfvo2_value = '20'.
|
||||
ls_iconset-cfvo3_type = zcl_excel_style_cond=>c_cfvo_type_percent.
|
||||
ls_iconset-cfvo3_value = '40'.
|
||||
ls_iconset-cfvo4_type = zcl_excel_style_cond=>c_cfvo_type_percent.
|
||||
ls_iconset-cfvo4_value = '60'.
|
||||
ls_iconset-cfvo5_type = zcl_excel_style_cond=>c_cfvo_type_percent.
|
||||
ls_iconset-cfvo5_value = '80'.
|
||||
ls_iconset-showvalue = zcl_excel_style_cond=>c_showvalue_true.
|
||||
|
||||
"cond style
|
||||
lo_style_cond = lo_worksheet->add_new_style_cond( ).
|
||||
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
|
||||
lo_style_cond->mode_iconset = ls_iconset.
|
||||
lo_style_cond->priority = 1.
|
||||
|
||||
DATA lt_test TYPE ty_sflight_lines.
|
||||
PERFORM load_fixed_data CHANGING lt_test.
|
||||
|
||||
lt_field_catalog = zcl_excel_common=>get_fieldcatalog( ip_table = lt_test ).
|
||||
|
||||
LOOP AT lt_field_catalog ASSIGNING <fs_field_catalog>.
|
||||
CASE <fs_field_catalog>-fieldname.
|
||||
WHEN 'CARRID'.
|
||||
<fs_field_catalog>-position = 3.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
<fs_field_catalog>-totals_function = zcl_excel_table=>totals_function_count.
|
||||
WHEN 'CONNID'.
|
||||
<fs_field_catalog>-position = 4.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
<fs_field_catalog>-abap_type = cl_abap_typedescr=>typekind_int.
|
||||
"This avoid the excel warning that the number is formatted as a text: abap2xlsx is not able to recognize numc as a number so it formats the number as a text with
|
||||
"the related warning. You can force the type and the framework will correctly format the number as a number
|
||||
WHEN 'FLDATE'.
|
||||
<fs_field_catalog>-position = 2.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'PRICE'.
|
||||
<fs_field_catalog>-position = 1.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
<fs_field_catalog>-totals_function = zcl_excel_table=>totals_function_sum.
|
||||
<fs_field_catalog>-style_cond = lo_style_cond->get_guid( ).
|
||||
WHEN OTHERS.
|
||||
<fs_field_catalog>-dynpfld = abap_false.
|
||||
ENDCASE.
|
||||
ENDLOOP.
|
||||
|
||||
ls_table_settings-table_style = zcl_excel_table=>builtinstyle_medium5.
|
||||
|
||||
lo_worksheet->bind_table( ip_table = lt_test
|
||||
is_table_settings = ls_table_settings
|
||||
it_field_catalog = lt_field_catalog ).
|
||||
|
||||
lo_column = lo_worksheet->get_column( ip_column = 'D' ). "make date field a bit wider
|
||||
lo_column->set_width( ip_width = 13 ).
|
||||
|
||||
|
||||
*** Create output
|
||||
lcl_output=>output( lo_excel ).
|
||||
|
||||
|
||||
FORM load_fixed_data CHANGING ct_test TYPE ty_sflight_lines.
|
||||
DATA: lt_lines TYPE TABLE OF string,
|
||||
lv_line TYPE string,
|
||||
lt_fields TYPE TABLE OF string,
|
||||
lv_comp TYPE i,
|
||||
lv_field TYPE string,
|
||||
ls_test TYPE sflight.
|
||||
FIELD-SYMBOLS: <lv_field> TYPE simple.
|
||||
|
||||
APPEND 'AA 0017 20171219 422 USD 747-400 385 371 191334 31 28 21 21' TO lt_lines.
|
||||
APPEND 'AA 0017 20180309 422 USD 747-400 385 365 189984 31 29 21 20' TO lt_lines.
|
||||
APPEND 'AA 0017 20180528 422 USD 747-400 385 374 193482 31 30 21 20' TO lt_lines.
|
||||
APPEND 'AA 0017 20180816 422 USD 747-400 385 372 193127 31 30 21 20' TO lt_lines.
|
||||
APPEND 'AA 0017 20181104 422 USD 747-400 385 44 23908 31 4 21 3' TO lt_lines.
|
||||
APPEND 'AA 0017 20190123 422 USD 747-400 385 40 20347 31 3 21 2' TO lt_lines.
|
||||
APPEND 'AZ 0555 20171219 185 EUR 737-800 140 133 32143 12 12 10 10' TO lt_lines.
|
||||
APPEND 'AZ 0555 20180309 185 EUR 737-800 140 137 32595 12 12 10 10' TO lt_lines.
|
||||
APPEND 'AZ 0555 20180528 185 EUR 737-800 140 134 31899 12 11 10 10' TO lt_lines.
|
||||
APPEND 'AZ 0555 20180816 185 EUR 737-800 140 128 29775 12 10 10 9' TO lt_lines.
|
||||
APPEND 'AZ 0555 20181104 185 EUR 737-800 140 0 0 12 0 10 0' TO lt_lines.
|
||||
APPEND 'AZ 0555 20190123 185 EUR 737-800 140 23 5392 12 1 10 2' TO lt_lines.
|
||||
APPEND 'AZ 0789 20171219 1030 EUR 767-200 260 250 307176 21 20 11 11' TO lt_lines.
|
||||
APPEND 'AZ 0789 20180309 1030 EUR 767-200 260 252 306054 21 20 11 10' TO lt_lines.
|
||||
APPEND 'AZ 0789 20180528 1030 EUR 767-200 260 252 307063 21 20 11 10' TO lt_lines.
|
||||
APPEND 'AZ 0789 20180816 1030 EUR 767-200 260 249 300739 21 19 11 10' TO lt_lines.
|
||||
APPEND 'AZ 0789 20181104 1030 EUR 767-200 260 104 127647 21 8 11 5' TO lt_lines.
|
||||
APPEND 'AZ 0789 20190123 1030 EUR 767-200 260 18 22268 21 1 11 1' TO lt_lines.
|
||||
APPEND 'DL 0106 20171217 611 USD A380-800 475 458 324379 30 29 20 20' TO lt_lines.
|
||||
APPEND 'DL 0106 20180307 611 USD A380-800 475 458 324330 30 30 20 20' TO lt_lines.
|
||||
APPEND 'DL 0106 20180526 611 USD A380-800 475 459 328149 30 29 20 20' TO lt_lines.
|
||||
APPEND 'DL 0106 20180814 611 USD A380-800 475 462 326805 30 30 20 18' TO lt_lines.
|
||||
APPEND 'DL 0106 20181102 611 USD A380-800 475 167 115554 30 10 20 6' TO lt_lines.
|
||||
APPEND 'DL 0106 20190121 611 USD A380-800 475 11 9073 30 1 20 1' TO lt_lines.
|
||||
LOOP AT lt_lines INTO lv_line.
|
||||
CONDENSE lv_line.
|
||||
SPLIT lv_line AT space INTO TABLE lt_fields.
|
||||
lv_comp = 2.
|
||||
LOOP AT lt_fields INTO lv_field.
|
||||
ASSIGN COMPONENT lv_comp OF STRUCTURE ls_test TO <lv_field>.
|
||||
<lv_field> = lv_field.
|
||||
lv_comp = lv_comp + 1.
|
||||
ENDLOOP.
|
||||
APPEND ls_test TO ct_test.
|
||||
ENDLOOP.
|
||||
ENDFORM.
|
29
src/demos/zdemo_excel10.prog.xml
Normal file
29
src/demos/zdemo_excel10.prog.xml
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>ZDEMO_EXCEL10</NAME>
|
||||
<SUBC>1</SUBC>
|
||||
<RSTAT>T</RSTAT>
|
||||
<RLOAD>E</RLOAD>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
<TPOOL>
|
||||
<item>
|
||||
<ID>R</ID>
|
||||
<ENTRY>abap2xlsx Demo: Format internal table with field catalog</ENTRY>
|
||||
<LENGTH>57</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_PATH</KEY>
|
||||
<ENTRY>.</ENTRY>
|
||||
<LENGTH>9</LENGTH>
|
||||
<SPLIT>D</SPLIT>
|
||||
</item>
|
||||
</TPOOL>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
BIN
src/demos/zdemo_excel10.w3mi.data.xlsx
Normal file
BIN
src/demos/zdemo_excel10.w3mi.data.xlsx
Normal file
Binary file not shown.
29
src/demos/zdemo_excel10.w3mi.xml
Normal file
29
src/demos/zdemo_excel10.w3mi.xml
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_W3MI" serializer_version="v2.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<NAME>ZDEMO_EXCEL10</NAME>
|
||||
<TEXT>10_iTabFieldCatalog.xlsx (ZDEMO_EXCEL10)</TEXT>
|
||||
<PARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL10</OBJID>
|
||||
<NAME>fileextension</NAME>
|
||||
<VALUE>.xlsx</VALUE>
|
||||
</WWWPARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL10</OBJID>
|
||||
<NAME>filename</NAME>
|
||||
<VALUE>10_iTabFieldCatalog.xlsx</VALUE>
|
||||
</WWWPARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL10</OBJID>
|
||||
<NAME>mimetype</NAME>
|
||||
<VALUE>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</VALUE>
|
||||
</WWWPARAMS>
|
||||
</PARAMS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
372
src/demos/zdemo_excel11.prog.abap
Normal file
372
src/demos/zdemo_excel11.prog.abap
Normal file
|
@ -0,0 +1,372 @@
|
|||
*&---------------------------------------------------------------------*
|
||||
*& Report ZDEMO_EXCEL11
|
||||
*& Export Organisation and Contact Persons using ABAP2XLSX
|
||||
*&---------------------------------------------------------------------*
|
||||
*&
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
|
||||
REPORT zdemo_excel11.
|
||||
|
||||
DATA: central_search TYPE bapibus1006_central_search,
|
||||
addressdata_search TYPE bapibus1006_addr_search,
|
||||
others_search TYPE bapibus1006_other_data.
|
||||
DATA: searchresult TYPE TABLE OF bapibus1006_bp_addr,
|
||||
return TYPE TABLE OF bapiret2.
|
||||
DATA: lines TYPE i.
|
||||
FIELD-SYMBOLS: <searchresult_line> LIKE LINE OF searchresult.
|
||||
DATA: centraldata TYPE bapibus1006_central,
|
||||
centraldataperson TYPE bapibus1006_central_person,
|
||||
centraldataorganization TYPE bapibus1006_central_organ.
|
||||
DATA: addressdata TYPE bapibus1006_address.
|
||||
DATA: relationships TYPE TABLE OF bapibus1006_relations.
|
||||
FIELD-SYMBOLS: <relationship> LIKE LINE OF relationships.
|
||||
DATA: relationship_centraldata TYPE bapibus1006002_central.
|
||||
DATA: relationship_addresses TYPE TABLE OF bapibus1006002_addresses.
|
||||
FIELD-SYMBOLS: <relationship_address> LIKE LINE OF relationship_addresses.
|
||||
|
||||
DATA: lt_download TYPE TABLE OF zexcel_s_org_rel.
|
||||
FIELD-SYMBOLS: <download> LIKE LINE OF lt_download.
|
||||
|
||||
CONSTANTS: gc_save_file_name TYPE string VALUE '11_Export_Org_and_Contact.xlsx'.
|
||||
INCLUDE zdemo_excel_outputopt_incl.
|
||||
|
||||
|
||||
PARAMETERS: md TYPE flag RADIOBUTTON GROUP act.
|
||||
|
||||
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE TEXT-00a.
|
||||
PARAMETERS: partnerc TYPE bu_type DEFAULT 2, " Organizations
|
||||
postlcod TYPE ad_pstcd1 DEFAULT '8334*',
|
||||
country TYPE land1 DEFAULT 'DE',
|
||||
maxsel TYPE bu_maxsel DEFAULT 100.
|
||||
SELECTION-SCREEN END OF BLOCK a.
|
||||
|
||||
PARAMETERS: rel TYPE flag RADIOBUTTON GROUP act DEFAULT 'X'.
|
||||
|
||||
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE TEXT-00b.
|
||||
PARAMETERS: reltyp TYPE bu_reltyp DEFAULT 'BUR011',
|
||||
partner TYPE bu_partner DEFAULT '191'.
|
||||
SELECTION-SCREEN END OF BLOCK b.
|
||||
|
||||
START-OF-SELECTION.
|
||||
IF md = abap_true.
|
||||
" Read all Companies by Master Data
|
||||
central_search-partnercategory = partnerc.
|
||||
addressdata_search-postl_cod1 = postlcod.
|
||||
addressdata_search-country = country.
|
||||
others_search-maxsel = maxsel.
|
||||
others_search-no_search_for_contactperson = 'X'.
|
||||
|
||||
CALL FUNCTION 'BAPI_BUPA_SEARCH_2'
|
||||
EXPORTING
|
||||
centraldata = central_search
|
||||
addressdata = addressdata_search
|
||||
others = others_search
|
||||
TABLES
|
||||
searchresult = searchresult
|
||||
return = return.
|
||||
|
||||
SORT searchresult BY partner.
|
||||
DELETE ADJACENT DUPLICATES FROM searchresult COMPARING partner.
|
||||
ELSEIF rel = abap_true.
|
||||
" Read by Relationship
|
||||
SELECT but050~partner1 AS partner FROM but050
|
||||
INNER JOIN but000 ON but000~partner = but050~partner1 AND but000~type = '2'
|
||||
INTO CORRESPONDING FIELDS OF TABLE searchresult
|
||||
WHERE but050~partner2 = partner
|
||||
AND but050~reltyp = reltyp.
|
||||
ENDIF.
|
||||
|
||||
DESCRIBE TABLE searchresult LINES lines.
|
||||
WRITE: / 'Number of search results: ', lines.
|
||||
|
||||
LOOP AT searchresult ASSIGNING <searchresult_line>.
|
||||
" Read Details of Organization
|
||||
CALL FUNCTION 'BAPI_BUPA_CENTRAL_GETDETAIL'
|
||||
EXPORTING
|
||||
businesspartner = <searchresult_line>-partner
|
||||
IMPORTING
|
||||
centraldataorganization = centraldataorganization.
|
||||
" Read Standard Address of Organization
|
||||
CALL FUNCTION 'BAPI_BUPA_ADDRESS_GETDETAIL'
|
||||
EXPORTING
|
||||
businesspartner = <searchresult_line>-partner
|
||||
IMPORTING
|
||||
addressdata = addressdata.
|
||||
|
||||
" Add Organization to Download
|
||||
APPEND INITIAL LINE TO lt_download ASSIGNING <download>.
|
||||
" Fill Organization Partner Numbers
|
||||
CALL FUNCTION 'BAPI_BUPA_GET_NUMBERS'
|
||||
EXPORTING
|
||||
businesspartner = <searchresult_line>-partner
|
||||
IMPORTING
|
||||
businesspartnerout = <download>-org_number
|
||||
businesspartnerguidout = <download>-org_guid.
|
||||
|
||||
MOVE-CORRESPONDING centraldataorganization TO <download>.
|
||||
MOVE-CORRESPONDING addressdata TO <download>.
|
||||
CLEAR: addressdata.
|
||||
|
||||
" Read all Relationships
|
||||
CLEAR: relationships.
|
||||
CALL FUNCTION 'BAPI_BUPA_RELATIONSHIPS_GET'
|
||||
EXPORTING
|
||||
businesspartner = <searchresult_line>-partner
|
||||
TABLES
|
||||
relationships = relationships.
|
||||
DELETE relationships WHERE relationshipcategory <> 'BUR001'.
|
||||
LOOP AT relationships ASSIGNING <relationship>.
|
||||
" Read details of Contact person
|
||||
CALL FUNCTION 'BAPI_BUPA_CENTRAL_GETDETAIL'
|
||||
EXPORTING
|
||||
businesspartner = <relationship>-partner2
|
||||
IMPORTING
|
||||
centraldata = centraldata
|
||||
centraldataperson = centraldataperson.
|
||||
" Read details of the Relationship
|
||||
CALL FUNCTION 'BAPI_BUPR_CONTP_GETDETAIL'
|
||||
EXPORTING
|
||||
businesspartner = <relationship>-partner1
|
||||
contactperson = <relationship>-partner2
|
||||
IMPORTING
|
||||
centraldata = relationship_centraldata.
|
||||
" Read relationship address
|
||||
CLEAR: relationship_addresses.
|
||||
|
||||
CALL FUNCTION 'BAPI_BUPR_CONTP_ADDRESSES_GET'
|
||||
EXPORTING
|
||||
businesspartner = <relationship>-partner1
|
||||
contactperson = <relationship>-partner2
|
||||
TABLES
|
||||
addresses = relationship_addresses.
|
||||
|
||||
READ TABLE relationship_addresses
|
||||
ASSIGNING <relationship_address>
|
||||
WITH KEY standardaddress = 'X'.
|
||||
|
||||
IF sy-subrc = 0.
|
||||
" Read Relationship Address
|
||||
CLEAR addressdata.
|
||||
CALL FUNCTION 'BAPI_BUPA_ADDRESS_GETDETAIL'
|
||||
EXPORTING
|
||||
businesspartner = <searchresult_line>-partner
|
||||
addressguid = <relationship_address>-addressguid
|
||||
IMPORTING
|
||||
addressdata = addressdata.
|
||||
|
||||
APPEND INITIAL LINE TO lt_download ASSIGNING <download>.
|
||||
CALL FUNCTION 'BAPI_BUPA_GET_NUMBERS'
|
||||
EXPORTING
|
||||
businesspartner = <relationship>-partner1
|
||||
IMPORTING
|
||||
businesspartnerout = <download>-org_number
|
||||
businesspartnerguidout = <download>-org_guid.
|
||||
|
||||
CALL FUNCTION 'BAPI_BUPA_GET_NUMBERS'
|
||||
EXPORTING
|
||||
businesspartner = <relationship>-partner2
|
||||
IMPORTING
|
||||
businesspartnerout = <download>-contpers_number
|
||||
businesspartnerguidout = <download>-contpers_guid.
|
||||
|
||||
MOVE-CORRESPONDING centraldataorganization TO <download>.
|
||||
MOVE-CORRESPONDING addressdata TO <download>.
|
||||
MOVE-CORRESPONDING centraldataperson TO <download>.
|
||||
MOVE-CORRESPONDING relationship_centraldata TO <download>.
|
||||
|
||||
WRITE: / <relationship>-partner1, <relationship>-partner2.
|
||||
WRITE: centraldataorganization-name1(20), centraldataorganization-name2(10).
|
||||
WRITE: centraldataperson-firstname(15), centraldataperson-lastname(15).
|
||||
WRITE: addressdata-street(25), addressdata-house_no,
|
||||
addressdata-postl_cod1, addressdata-city(25).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
DATA: lo_excel TYPE REF TO zcl_excel,
|
||||
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
||||
lo_style_body TYPE REF TO zcl_excel_style,
|
||||
lo_border_dark TYPE REF TO zcl_excel_style_border,
|
||||
lo_column TYPE REF TO zcl_excel_column,
|
||||
lo_row TYPE REF TO zcl_excel_row.
|
||||
|
||||
DATA: lv_style_body_even_guid TYPE zexcel_cell_style,
|
||||
lv_style_body_green TYPE zexcel_cell_style.
|
||||
|
||||
DATA: row TYPE zexcel_cell_row.
|
||||
|
||||
DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
|
||||
ls_table_settings TYPE zexcel_s_table_settings.
|
||||
|
||||
DATA: column TYPE zexcel_cell_column,
|
||||
column_alpha TYPE zexcel_cell_column_alpha,
|
||||
value TYPE zexcel_cell_value.
|
||||
|
||||
FIELD-SYMBOLS: <fs_field_catalog> TYPE zexcel_s_fieldcatalog.
|
||||
|
||||
" Creates active sheet
|
||||
CREATE OBJECT lo_excel.
|
||||
|
||||
" Create border object
|
||||
CREATE OBJECT lo_border_dark.
|
||||
lo_border_dark->border_color-rgb = zcl_excel_style_color=>c_black.
|
||||
lo_border_dark->border_style = zcl_excel_style_border=>c_border_thin.
|
||||
"Create style with border even
|
||||
lo_style_body = lo_excel->add_new_style( ).
|
||||
lo_style_body->fill->fgcolor-rgb = zcl_excel_style_color=>c_yellow.
|
||||
lo_style_body->borders->allborders = lo_border_dark.
|
||||
lv_style_body_even_guid = lo_style_body->get_guid( ).
|
||||
"Create style with border and green fill
|
||||
lo_style_body = lo_excel->add_new_style( ).
|
||||
lo_style_body->fill->fgcolor-rgb = zcl_excel_style_color=>c_green.
|
||||
lo_style_body->borders->allborders = lo_border_dark.
|
||||
lv_style_body_green = lo_style_body->get_guid( ).
|
||||
|
||||
" Get active sheet
|
||||
lo_worksheet = lo_excel->get_active_worksheet( ).
|
||||
lo_worksheet->set_title( 'Internal table' ).
|
||||
|
||||
lt_field_catalog = zcl_excel_common=>get_fieldcatalog( ip_table = lt_download ).
|
||||
|
||||
LOOP AT lt_field_catalog ASSIGNING <fs_field_catalog>.
|
||||
CASE <fs_field_catalog>-fieldname.
|
||||
WHEN 'ORG_NUMBER'.
|
||||
<fs_field_catalog>-position = 1.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'CONTPERS_NUMBER'.
|
||||
<fs_field_catalog>-position = 2.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'NAME1'.
|
||||
<fs_field_catalog>-position = 3.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'NAME2'.
|
||||
<fs_field_catalog>-position = 4.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'STREET'.
|
||||
<fs_field_catalog>-position = 5.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'HOUSE_NO'.
|
||||
<fs_field_catalog>-position = 6.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'POSTL_COD1'.
|
||||
<fs_field_catalog>-position = 7.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'CITY'.
|
||||
<fs_field_catalog>-position = 8.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'COUNTRYISO'.
|
||||
<fs_field_catalog>-position = 9.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'FIRSTNAME'.
|
||||
<fs_field_catalog>-position = 10.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'LASTNAME'.
|
||||
<fs_field_catalog>-position = 11.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'FUNCTIONNAME'.
|
||||
<fs_field_catalog>-position = 12.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'DEPARTMENTNAME'.
|
||||
<fs_field_catalog>-position = 13.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'TEL1_NUMBR'.
|
||||
<fs_field_catalog>-position = 14.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'TEL1_EXT'.
|
||||
<fs_field_catalog>-position = 15.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'FAX_NUMBER'.
|
||||
<fs_field_catalog>-position = 16.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'FAX_EXTENS'.
|
||||
<fs_field_catalog>-position = 17.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN 'E_MAIL'.
|
||||
<fs_field_catalog>-position = 18.
|
||||
<fs_field_catalog>-dynpfld = abap_true.
|
||||
WHEN OTHERS.
|
||||
<fs_field_catalog>-dynpfld = abap_false.
|
||||
ENDCASE.
|
||||
ENDLOOP.
|
||||
|
||||
ls_table_settings-top_left_column = 'A'.
|
||||
ls_table_settings-top_left_row = '2'.
|
||||
ls_table_settings-table_style = zcl_excel_table=>builtinstyle_medium5.
|
||||
|
||||
lo_worksheet->bind_table( ip_table = lt_download
|
||||
is_table_settings = ls_table_settings
|
||||
it_field_catalog = lt_field_catalog ).
|
||||
LOOP AT lt_download ASSIGNING <download>.
|
||||
row = sy-tabix + 2.
|
||||
IF NOT <download>-org_number IS INITIAL
|
||||
AND <download>-contpers_number IS INITIAL.
|
||||
" Mark fields of Organization which can be changed green
|
||||
lo_worksheet->set_cell_style(
|
||||
ip_column = 'C'
|
||||
ip_row = row
|
||||
ip_style = lv_style_body_green
|
||||
).
|
||||
lo_worksheet->set_cell_style(
|
||||
ip_column = 'D'
|
||||
ip_row = row
|
||||
ip_style = lv_style_body_green
|
||||
).
|
||||
* CATCH zcx_excel. " Exceptions for ABAP2XLSX
|
||||
ELSEIF NOT <download>-org_number IS INITIAL
|
||||
AND NOT <download>-contpers_number IS INITIAL.
|
||||
" Mark fields of Relationship which can be changed green
|
||||
lo_worksheet->set_cell_style(
|
||||
ip_column = 'L' ip_row = row ip_style = lv_style_body_green
|
||||
).
|
||||
lo_worksheet->set_cell_style(
|
||||
ip_column = 'M' ip_row = row ip_style = lv_style_body_green
|
||||
).
|
||||
lo_worksheet->set_cell_style(
|
||||
ip_column = 'N' ip_row = row ip_style = lv_style_body_green
|
||||
).
|
||||
lo_worksheet->set_cell_style(
|
||||
ip_column = 'O' ip_row = row ip_style = lv_style_body_green
|
||||
).
|
||||
lo_worksheet->set_cell_style(
|
||||
ip_column = 'P' ip_row = row ip_style = lv_style_body_green
|
||||
).
|
||||
lo_worksheet->set_cell_style(
|
||||
ip_column = 'Q' ip_row = row ip_style = lv_style_body_green
|
||||
).
|
||||
lo_worksheet->set_cell_style(
|
||||
ip_column = 'R' ip_row = row ip_style = lv_style_body_green
|
||||
).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
" Add Fieldnames in first row and hide the row
|
||||
LOOP AT lt_field_catalog ASSIGNING <fs_field_catalog>
|
||||
WHERE position <> '' AND dynpfld = abap_true.
|
||||
column = <fs_field_catalog>-position.
|
||||
column_alpha = zcl_excel_common=>convert_column2alpha( column ).
|
||||
value = <fs_field_catalog>-fieldname.
|
||||
lo_worksheet->set_cell( ip_column = column_alpha
|
||||
ip_row = 1
|
||||
ip_value = value
|
||||
ip_style = lv_style_body_even_guid ).
|
||||
ENDLOOP.
|
||||
" Hide first row
|
||||
lo_row = lo_worksheet->get_row( 1 ).
|
||||
lo_row->set_visible( abap_false ).
|
||||
|
||||
DATA: highest_column TYPE zexcel_cell_column,
|
||||
count TYPE int4,
|
||||
col_alpha TYPE zexcel_cell_column_alpha.
|
||||
|
||||
highest_column = lo_worksheet->get_highest_column( ).
|
||||
count = 1.
|
||||
WHILE count <= highest_column.
|
||||
col_alpha = zcl_excel_common=>convert_column2alpha( ip_column = count ).
|
||||
lo_column = lo_worksheet->get_column( ip_column = col_alpha ).
|
||||
lo_column->set_auto_size( ip_auto_size = abap_true ).
|
||||
count = count + 1.
|
||||
ENDWHILE.
|
||||
|
||||
*** Create output
|
||||
lcl_output=>output( lo_excel ).
|
95
src/demos/zdemo_excel11.prog.xml
Normal file
95
src/demos/zdemo_excel11.prog.xml
Normal file
|
@ -0,0 +1,95 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>ZDEMO_EXCEL11</NAME>
|
||||
<SUBC>1</SUBC>
|
||||
<RSTAT>K</RSTAT>
|
||||
<RLOAD>E</RLOAD>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
<TPOOL>
|
||||
<item>
|
||||
<ID>I</ID>
|
||||
<KEY>00A</KEY>
|
||||
<ENTRY>Select by master data</ENTRY>
|
||||
<LENGTH>132</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>I</ID>
|
||||
<KEY>00B</KEY>
|
||||
<ENTRY>Select by relationship</ENTRY>
|
||||
<LENGTH>132</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>R</ID>
|
||||
<ENTRY>abap2xlsx Demo: Export Organisation and Contact Persons</ENTRY>
|
||||
<LENGTH>55</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>COUNTRY</KEY>
|
||||
<ENTRY>.</ENTRY>
|
||||
<LENGTH>19</LENGTH>
|
||||
<SPLIT>D</SPLIT>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>MAXSEL</KEY>
|
||||
<ENTRY>.</ENTRY>
|
||||
<LENGTH>27</LENGTH>
|
||||
<SPLIT>D</SPLIT>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>MD</KEY>
|
||||
<ENTRY>Select by master data</ENTRY>
|
||||
<LENGTH>29</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>PARTNER</KEY>
|
||||
<ENTRY>.</ENTRY>
|
||||
<LENGTH>24</LENGTH>
|
||||
<SPLIT>D</SPLIT>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>PARTNERC</KEY>
|
||||
<ENTRY>.</ENTRY>
|
||||
<LENGTH>19</LENGTH>
|
||||
<SPLIT>D</SPLIT>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>POSTLCOD</KEY>
|
||||
<ENTRY>.</ENTRY>
|
||||
<LENGTH>19</LENGTH>
|
||||
<SPLIT>D</SPLIT>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_PATH</KEY>
|
||||
<ENTRY>.</ENTRY>
|
||||
<LENGTH>21</LENGTH>
|
||||
<SPLIT>D</SPLIT>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>REL</KEY>
|
||||
<ENTRY>Select by relationship</ENTRY>
|
||||
<LENGTH>30</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>RELTYP</KEY>
|
||||
<ENTRY>.</ENTRY>
|
||||
<LENGTH>25</LENGTH>
|
||||
<SPLIT>D</SPLIT>
|
||||
</item>
|
||||
</TPOOL>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
108
src/demos/zdemo_excel12.prog.abap
Normal file
108
src/demos/zdemo_excel12.prog.abap
Normal file
|
@ -0,0 +1,108 @@
|
|||
*&---------------------------------------------------------------------*
|
||||
*& Report ZDEMO_EXCEL12
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
*&
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
|
||||
REPORT zdemo_excel12.
|
||||
|
||||
DATA: lo_excel TYPE REF TO zcl_excel,
|
||||
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
||||
lo_column TYPE REF TO zcl_excel_column,
|
||||
lo_row TYPE REF TO zcl_excel_row.
|
||||
|
||||
DATA: lv_file TYPE xstring,
|
||||
lv_bytecount TYPE i,
|
||||
lt_file_tab TYPE solix_tab.
|
||||
|
||||
DATA: lv_full_path TYPE string,
|
||||
lv_workdir TYPE string,
|
||||
lv_file_separator TYPE c.
|
||||
|
||||
CONSTANTS: gc_save_file_name TYPE string VALUE '12_HideSizeOutlineRowsAndColumns.xlsx'.
|
||||
INCLUDE zdemo_excel_outputopt_incl.
|
||||
|
||||
START-OF-SELECTION.
|
||||
|
||||
" Creates active sheet
|
||||
CREATE OBJECT lo_excel.
|
||||
|
||||
" Get active sheet
|
||||
lo_worksheet = lo_excel->get_active_worksheet( ).
|
||||
lo_worksheet->set_title( 'Sheet1' ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world in AutoSize column' ).
|
||||
lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = 'Hello world in a column width size 50' ).
|
||||
lo_worksheet->set_cell( ip_column = 'D' ip_row = 4 ip_value = 'Hello world (hidden column)' ).
|
||||
lo_worksheet->set_cell( ip_column = 'F' ip_row = 2 ip_value = 'Outline column level 0' ).
|
||||
lo_worksheet->set_cell( ip_column = 'G' ip_row = 2 ip_value = 'Outline column level 1' ).
|
||||
lo_worksheet->set_cell( ip_column = 'H' ip_row = 2 ip_value = 'Outline column level 2' ).
|
||||
lo_worksheet->set_cell( ip_column = 'I' ip_row = 2 ip_value = 'Small' ).
|
||||
|
||||
|
||||
lo_worksheet->set_cell( ip_column = 'A' ip_row = 1 ip_value = 'Hello world (hidden row)' ).
|
||||
lo_worksheet->set_cell( ip_column = 'E' ip_row = 5 ip_value = 'Hello world in a row height size 20' ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 9 ip_value = 'Simple outline rows 10-16 ( collapsed )' ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 19 ip_value = '3 Outlines - Outlinelevel 1 is collapsed' ).
|
||||
lo_worksheet->set_cell( ip_column = 'C' ip_row = 19 ip_value = 'One of the two inner outlines is expanded, one collapsed' ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 20 ip_value = 'Inner outline level - expanded' ).
|
||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 24 ip_value = 'Inner outline level - lines 25-28 are collapsed' ).
|
||||
|
||||
lo_worksheet->zif_excel_sheet_properties~summarybelow = zif_excel_sheet_properties=>c_below_off. " By default is on
|
||||
lo_worksheet->zif_excel_sheet_properties~summaryright = zif_excel_sheet_properties=>c_right_off. " By default is on
|
||||
|
||||
" Column Settings
|
||||
" Auto size
|
||||
lo_column = lo_worksheet->get_column( ip_column = 'B' ).
|
||||
lo_column->set_auto_size( ip_auto_size = abap_true ).
|
||||
lo_column = lo_worksheet->get_column( ip_column = 'I' ).
|
||||
lo_column->set_auto_size( ip_auto_size = abap_true ).
|
||||
" Manual Width
|
||||
lo_column = lo_worksheet->get_column( ip_column = 'C' ).
|
||||
lo_column->set_width( ip_width = 50 ).
|
||||
lo_column = lo_worksheet->get_column( ip_column = 'D' ).
|
||||
lo_column->set_visible( ip_visible = abap_false ).
|
||||
" Implementation in the Writer is not working yet ===== TODO =====
|
||||
lo_column = lo_worksheet->get_column( ip_column = 'F' ).
|
||||
lo_column->set_outline_level( ip_outline_level = 0 ).
|
||||
lo_column = lo_worksheet->get_column( ip_column = 'G' ).
|
||||
lo_column->set_outline_level( ip_outline_level = 1 ).
|
||||
lo_column = lo_worksheet->get_column( ip_column = 'H' ).
|
||||
lo_column->set_outline_level( ip_outline_level = 2 ).
|
||||
|
||||
lo_row = lo_worksheet->get_row( ip_row = 1 ).
|
||||
lo_row->set_visible( ip_visible = abap_false ).
|
||||
lo_row = lo_worksheet->get_row( ip_row = 5 ).
|
||||
lo_row->set_row_height( ip_row_height = 20 ).
|
||||
|
||||
* Define an outline rows 10-16, collapsed on startup
|
||||
lo_worksheet->set_row_outline( iv_row_from = 10
|
||||
iv_row_to = 16
|
||||
iv_collapsed = abap_true ). " collapsed
|
||||
|
||||
* Define an inner outline rows 21-22, expanded when outer outline becomes extended
|
||||
lo_worksheet->set_row_outline( iv_row_from = 21
|
||||
iv_row_to = 22
|
||||
iv_collapsed = abap_false ). " expanded
|
||||
|
||||
* Define an inner outline rows 25-28, collapsed on startup
|
||||
lo_worksheet->set_row_outline( iv_row_from = 25
|
||||
iv_row_to = 28
|
||||
iv_collapsed = abap_true ). " collapsed
|
||||
|
||||
* Define an outer outline rows 20-30, collapsed on startup
|
||||
lo_worksheet->set_row_outline( iv_row_from = 20
|
||||
iv_row_to = 30
|
||||
iv_collapsed = abap_true ). " collapsed
|
||||
|
||||
* Hint: the order you create the outlines can be arbitrary
|
||||
* You can start with inner outlines or with outer outlines
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
* Hide columns right of column M
|
||||
*--------------------------------------------------------------------*
|
||||
lo_worksheet->zif_excel_sheet_properties~hide_columns_from = 'M'.
|
||||
|
||||
*** Create output
|
||||
lcl_output=>output( lo_excel ).
|
29
src/demos/zdemo_excel12.prog.xml
Normal file
29
src/demos/zdemo_excel12.prog.xml
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>ZDEMO_EXCEL12</NAME>
|
||||
<SUBC>1</SUBC>
|
||||
<RSTAT>T</RSTAT>
|
||||
<RLOAD>E</RLOAD>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
<TPOOL>
|
||||
<item>
|
||||
<ID>R</ID>
|
||||
<ENTRY>abap2xlsx Demo: Hide Columns</ENTRY>
|
||||
<LENGTH>29</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_PATH</KEY>
|
||||
<ENTRY>.</ENTRY>
|
||||
<LENGTH>9</LENGTH>
|
||||
<SPLIT>D</SPLIT>
|
||||
</item>
|
||||
</TPOOL>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
BIN
src/demos/zdemo_excel12.w3mi.data.xlsx
Normal file
BIN
src/demos/zdemo_excel12.w3mi.data.xlsx
Normal file
Binary file not shown.
28
src/demos/zdemo_excel12.w3mi.xml
Normal file
28
src/demos/zdemo_excel12.w3mi.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_W3MI" serializer_version="v2.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<NAME>ZDEMO_EXCEL12</NAME>
|
||||
<TEXT>12_HideSizeOutlineRowsAndColumns.xlsx (ZDEMO_EXCEL12)</TEXT>
|
||||
<PARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL12</OBJID>
|
||||
<NAME>fileextension</NAME>
|
||||
<VALUE>.xlsx</VALUE>
|
||||
</WWWPARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL12</OBJID>
|
||||
<NAME>filename</NAME>
|
||||
</WWWPARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL12</OBJID>
|
||||
<NAME>mimetype</NAME>
|
||||
<VALUE>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</VALUE>
|
||||
</WWWPARAMS>
|
||||
</PARAMS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
87
src/demos/zdemo_excel13.prog.abap
Normal file
87
src/demos/zdemo_excel13.prog.abap
Normal file
|
@ -0,0 +1,87 @@
|
|||
*&---------------------------------------------------------------------*
|
||||
*& Report ZDEMO_EXCEL13
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
*& Example by: Alvaro "Blag" Tejada Galindo.
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
|
||||
REPORT zdemo_excel13.
|
||||
|
||||
DATA: lo_excel TYPE REF TO zcl_excel,
|
||||
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
||||
lv_style_bold_border_guid TYPE zexcel_cell_style,
|
||||
lo_style_bold_border TYPE REF TO zcl_excel_style,
|
||||
lo_border_dark TYPE REF TO zcl_excel_style_border.
|
||||
|
||||
|
||||
CONSTANTS: gc_save_file_name TYPE string VALUE '13_MergedCells.xlsx'.
|
||||
INCLUDE zdemo_excel_outputopt_incl.
|
||||
|
||||
START-OF-SELECTION.
|
||||
|
||||
CREATE OBJECT lo_excel.
|
||||
|
||||
" Get active sheet
|
||||
lo_worksheet = lo_excel->get_active_worksheet( ).
|
||||
lo_worksheet->set_title( 'sheet1' ).
|
||||
|
||||
CREATE OBJECT lo_border_dark.
|
||||
lo_border_dark->border_color-rgb = zcl_excel_style_color=>c_black.
|
||||
lo_border_dark->border_style = zcl_excel_style_border=>c_border_thin.
|
||||
|
||||
lo_style_bold_border = lo_excel->add_new_style( ).
|
||||
lo_style_bold_border->font->bold = abap_true.
|
||||
lo_style_bold_border->font->italic = abap_false.
|
||||
lo_style_bold_border->font->color-rgb = zcl_excel_style_color=>c_black.
|
||||
lo_style_bold_border->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center.
|
||||
lo_style_bold_border->borders->allborders = lo_border_dark.
|
||||
lv_style_bold_border_guid = lo_style_bold_border->get_guid( ).
|
||||
|
||||
lo_worksheet->set_cell( ip_row = 2 ip_column = 'A' ip_value = 'Test' ).
|
||||
|
||||
lo_worksheet->set_cell( ip_row = 2 ip_column = 'B' ip_value = 'Banana' ip_style = lv_style_bold_border_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 2 ip_column = 'C' ip_value = '' ip_style = lv_style_bold_border_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 2 ip_column = 'D' ip_value = '' ip_style = lv_style_bold_border_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 2 ip_column = 'E' ip_value = '' ip_style = lv_style_bold_border_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 2 ip_column = 'F' ip_value = '' ip_style = lv_style_bold_border_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 2 ip_column = 'G' ip_value = '' ip_style = lv_style_bold_border_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 4 ip_column = 'B' ip_value = 'Apple' ip_style = lv_style_bold_border_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = '' ip_style = lv_style_bold_border_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 4 ip_column = 'D' ip_value = '' ip_style = lv_style_bold_border_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 4 ip_column = 'E' ip_value = '' ip_style = lv_style_bold_border_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 4 ip_column = 'F' ip_value = '' ip_style = lv_style_bold_border_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 4 ip_column = 'G' ip_value = '' ip_style = lv_style_bold_border_guid ).
|
||||
|
||||
lo_worksheet->set_merge( ip_row = 4 ip_column_start = 'B' ip_column_end = 'G' ).
|
||||
|
||||
" Test also if merge works when oher merged chells are empty
|
||||
lo_worksheet->set_merge( ip_range = 'B6:G6' ip_value = 'Tomato' ).
|
||||
|
||||
" Test the patch provided by Victor Alekhin to merge cells in one column
|
||||
lo_worksheet->set_merge( ip_range = 'B8:G10' ip_value = 'Merge cells also over multiple rows by Victor Alekhin' ).
|
||||
|
||||
" Test the patch provided by Alexander Budeyev with different column merges
|
||||
lo_worksheet->set_cell( ip_row = 12 ip_column = 'B' ip_value = 'Merge cells with different merges by Alexander Budeyev' ).
|
||||
lo_worksheet->set_cell( ip_row = 13 ip_column = 'B' ip_value = 'Test' ).
|
||||
|
||||
lo_worksheet->set_cell( ip_row = 13 ip_column = 'D' ip_value = 'Banana' ip_style = lv_style_bold_border_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 14 ip_column = 'D' ip_value = '' ip_style = lv_style_bold_border_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 13 ip_column = 'E' ip_value = 'Apple' ip_style = lv_style_bold_border_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 13 ip_column = 'F' ip_value = '' ip_style = lv_style_bold_border_guid ).
|
||||
|
||||
" Test merge (issue)
|
||||
lo_worksheet->set_merge( ip_row = 13 ip_column_start = 'B' ip_column_end = 'C' ip_row_to = 15 ).
|
||||
lo_worksheet->set_merge( ip_row = 13 ip_column_start = 'D' ip_column_end = 'D' ip_row_to = 14 ).
|
||||
lo_worksheet->set_merge( ip_row = 13 ip_column_start = 'E' ip_column_end = 'F' ).
|
||||
|
||||
" Test area with merge
|
||||
lo_worksheet->set_area( ip_row = 18 ip_row_to = 19 ip_column_start = 'B' ip_column_end = 'G' ip_style = lv_style_bold_border_guid
|
||||
ip_value = 'Merge cells with new area method by Helmut Bohr ' ip_merge = abap_true ).
|
||||
|
||||
" Test area without merge
|
||||
lo_worksheet->set_area( ip_row = 21 ip_row_to = 22 ip_column_start = 'B' ip_column_end = 'G' ip_style = lv_style_bold_border_guid
|
||||
ip_value = 'Test area' ).
|
||||
|
||||
*** Create output
|
||||
lcl_output=>output( lo_excel ).
|
29
src/demos/zdemo_excel13.prog.xml
Normal file
29
src/demos/zdemo_excel13.prog.xml
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>ZDEMO_EXCEL13</NAME>
|
||||
<SUBC>1</SUBC>
|
||||
<RSTAT>T</RSTAT>
|
||||
<RLOAD>E</RLOAD>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
<TPOOL>
|
||||
<item>
|
||||
<ID>R</ID>
|
||||
<ENTRY>abap2xlsx Demo: Merge cells</ENTRY>
|
||||
<LENGTH>28</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_PATH</KEY>
|
||||
<ENTRY>.</ENTRY>
|
||||
<LENGTH>9</LENGTH>
|
||||
<SPLIT>D</SPLIT>
|
||||
</item>
|
||||
</TPOOL>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
BIN
src/demos/zdemo_excel13.w3mi.data.xlsx
Normal file
BIN
src/demos/zdemo_excel13.w3mi.data.xlsx
Normal file
Binary file not shown.
28
src/demos/zdemo_excel13.w3mi.xml
Normal file
28
src/demos/zdemo_excel13.w3mi.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_W3MI" serializer_version="v2.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<NAME>ZDEMO_EXCEL13</NAME>
|
||||
<TEXT>13_MergedCells.xlsx (ZDEMO_EXCEL13)</TEXT>
|
||||
<PARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL13</OBJID>
|
||||
<NAME>fileextension</NAME>
|
||||
<VALUE>.xlsx</VALUE>
|
||||
</WWWPARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL13</OBJID>
|
||||
<NAME>filename</NAME>
|
||||
</WWWPARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL13</OBJID>
|
||||
<NAME>mimetype</NAME>
|
||||
<VALUE>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</VALUE>
|
||||
</WWWPARAMS>
|
||||
</PARAMS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
160
src/demos/zdemo_excel14.prog.abap
Normal file
160
src/demos/zdemo_excel14.prog.abap
Normal file
|
@ -0,0 +1,160 @@
|
|||
*&---------------------------------------------------------------------*
|
||||
*& Report ZDEMO_EXCEL14
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
*&
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
|
||||
REPORT zdemo_excel14.
|
||||
|
||||
DATA: lo_excel TYPE REF TO zcl_excel,
|
||||
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
||||
lo_style_center TYPE REF TO zcl_excel_style,
|
||||
lo_style_right TYPE REF TO zcl_excel_style,
|
||||
lo_style_left TYPE REF TO zcl_excel_style,
|
||||
lo_style_general TYPE REF TO zcl_excel_style,
|
||||
lo_style_bottom TYPE REF TO zcl_excel_style,
|
||||
lo_style_middle TYPE REF TO zcl_excel_style,
|
||||
lo_style_top TYPE REF TO zcl_excel_style,
|
||||
lo_style_justify TYPE REF TO zcl_excel_style,
|
||||
lo_style_mixed TYPE REF TO zcl_excel_style,
|
||||
lo_style_mixed_wrap TYPE REF TO zcl_excel_style,
|
||||
lo_style_rotated TYPE REF TO zcl_excel_style,
|
||||
lo_style_shrink TYPE REF TO zcl_excel_style,
|
||||
lo_style_indent TYPE REF TO zcl_excel_style,
|
||||
lv_style_center_guid TYPE zexcel_cell_style,
|
||||
lv_style_right_guid TYPE zexcel_cell_style,
|
||||
lv_style_left_guid TYPE zexcel_cell_style,
|
||||
lv_style_general_guid TYPE zexcel_cell_style,
|
||||
lv_style_bottom_guid TYPE zexcel_cell_style,
|
||||
lv_style_middle_guid TYPE zexcel_cell_style,
|
||||
lv_style_top_guid TYPE zexcel_cell_style,
|
||||
lv_style_justify_guid TYPE zexcel_cell_style,
|
||||
lv_style_mixed_guid TYPE zexcel_cell_style,
|
||||
lv_style_mixed_wrap_guid TYPE zexcel_cell_style,
|
||||
lv_style_rotated_guid TYPE zexcel_cell_style,
|
||||
lv_style_shrink_guid TYPE zexcel_cell_style,
|
||||
lv_style_indent_guid TYPE zexcel_cell_style.
|
||||
|
||||
DATA: lo_row TYPE REF TO zcl_excel_row.
|
||||
|
||||
CONSTANTS: gc_save_file_name TYPE string VALUE '14_Alignment.xlsx'.
|
||||
INCLUDE zdemo_excel_outputopt_incl.
|
||||
|
||||
|
||||
START-OF-SELECTION.
|
||||
|
||||
CREATE OBJECT lo_excel.
|
||||
|
||||
" Get active sheet
|
||||
lo_worksheet = lo_excel->get_active_worksheet( ).
|
||||
lo_worksheet->set_title( 'sheet1' ).
|
||||
|
||||
"Center
|
||||
lo_style_center = lo_excel->add_new_style( ).
|
||||
lo_style_center->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center.
|
||||
lv_style_center_guid = lo_style_center->get_guid( ).
|
||||
"Right
|
||||
lo_style_right = lo_excel->add_new_style( ).
|
||||
lo_style_right->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_right.
|
||||
lv_style_right_guid = lo_style_right->get_guid( ).
|
||||
"Left
|
||||
lo_style_left = lo_excel->add_new_style( ).
|
||||
lo_style_left->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_left.
|
||||
lv_style_left_guid = lo_style_left->get_guid( ).
|
||||
"General
|
||||
lo_style_general = lo_excel->add_new_style( ).
|
||||
lo_style_general->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_general.
|
||||
lv_style_general_guid = lo_style_general->get_guid( ).
|
||||
"Bottom
|
||||
lo_style_bottom = lo_excel->add_new_style( ).
|
||||
lo_style_bottom->alignment->vertical = zcl_excel_style_alignment=>c_vertical_bottom.
|
||||
lv_style_bottom_guid = lo_style_bottom->get_guid( ).
|
||||
"Middle
|
||||
lo_style_middle = lo_excel->add_new_style( ).
|
||||
lo_style_middle->alignment->vertical = zcl_excel_style_alignment=>c_vertical_center.
|
||||
lv_style_middle_guid = lo_style_middle->get_guid( ).
|
||||
"Top
|
||||
lo_style_top = lo_excel->add_new_style( ).
|
||||
lo_style_top->alignment->vertical = zcl_excel_style_alignment=>c_vertical_top.
|
||||
lv_style_top_guid = lo_style_top->get_guid( ).
|
||||
"Justify
|
||||
lo_style_justify = lo_excel->add_new_style( ).
|
||||
lo_style_justify->alignment->vertical = zcl_excel_style_alignment=>c_vertical_justify.
|
||||
lv_style_justify_guid = lo_style_justify->get_guid( ).
|
||||
|
||||
"Shrink
|
||||
lo_style_shrink = lo_excel->add_new_style( ).
|
||||
lo_style_shrink->alignment->shrinktofit = abap_true.
|
||||
lv_style_shrink_guid = lo_style_shrink->get_guid( ).
|
||||
|
||||
"Indent
|
||||
lo_style_indent = lo_excel->add_new_style( ).
|
||||
lo_style_indent->alignment->indent = 5.
|
||||
lv_style_indent_guid = lo_style_indent->get_guid( ).
|
||||
|
||||
"Middle / Centered / Wrap
|
||||
lo_style_mixed_wrap = lo_excel->add_new_style( ).
|
||||
lo_style_mixed_wrap->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center.
|
||||
lo_style_mixed_wrap->alignment->vertical = zcl_excel_style_alignment=>c_vertical_center.
|
||||
lo_style_mixed_wrap->alignment->wraptext = abap_true.
|
||||
lv_style_mixed_wrap_guid = lo_style_mixed_wrap->get_guid( ).
|
||||
|
||||
"Middle / Centered / Wrap
|
||||
lo_style_mixed = lo_excel->add_new_style( ).
|
||||
lo_style_mixed->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center.
|
||||
lo_style_mixed->alignment->vertical = zcl_excel_style_alignment=>c_vertical_center.
|
||||
lv_style_mixed_guid = lo_style_mixed->get_guid( ).
|
||||
|
||||
"Center
|
||||
lo_style_rotated = lo_excel->add_new_style( ).
|
||||
lo_style_rotated->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center.
|
||||
lo_style_rotated->alignment->vertical = zcl_excel_style_alignment=>c_vertical_center.
|
||||
lo_style_rotated->alignment->textrotation = 165. " -75° == 90° + 75°
|
||||
lv_style_rotated_guid = lo_style_rotated->get_guid( ).
|
||||
|
||||
|
||||
" Set row size for first 7 rows to 40
|
||||
DO 7 TIMES.
|
||||
lo_row = lo_worksheet->get_row( sy-index ).
|
||||
lo_row->set_row_height( 40 ).
|
||||
ENDDO.
|
||||
|
||||
"Horizontal alignment
|
||||
lo_worksheet->set_cell( ip_row = 4 ip_column = 'B' ip_value = 'Centered Text' ip_style = lv_style_center_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 5 ip_column = 'B' ip_value = 'Right Text' ip_style = lv_style_right_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 6 ip_column = 'B' ip_value = 'Left Text' ip_style = lv_style_left_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 7 ip_column = 'B' ip_value = 'General Text' ip_style = lv_style_general_guid ).
|
||||
|
||||
" Shrink & indent
|
||||
lo_worksheet->set_cell( ip_row = 4 ip_column = 'F' ip_value = 'Text shrinked' ip_style = lv_style_shrink_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 5 ip_column = 'F' ip_value = 'Text indented' ip_style = lv_style_indent_guid ).
|
||||
|
||||
"Vertical alignment
|
||||
|
||||
lo_worksheet->set_cell( ip_row = 4 ip_column = 'D' ip_value = 'Bottom Text' ip_style = lv_style_bottom_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 5 ip_column = 'D' ip_value = 'Middle Text' ip_style = lv_style_middle_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 6 ip_column = 'D' ip_value = 'Top Text' ip_style = lv_style_top_guid ).
|
||||
lo_worksheet->set_cell( ip_row = 7 ip_column = 'D' ip_value = 'Justify Text' ip_style = lv_style_justify_guid ).
|
||||
|
||||
" Wrapped
|
||||
lo_worksheet->set_cell( ip_row = 10 ip_column = 'B'
|
||||
ip_value = 'This is a wrapped text centered in the middle'
|
||||
ip_style = lv_style_mixed_wrap_guid ).
|
||||
|
||||
" Rotated
|
||||
lo_worksheet->set_cell( ip_row = 10 ip_column = 'D'
|
||||
ip_value = 'This is a centered text rotated by -75°'
|
||||
ip_style = lv_style_rotated_guid ).
|
||||
|
||||
" forced line break
|
||||
DATA: lv_value TYPE string.
|
||||
CONCATENATE 'This is a wrapped text centered in the middle' cl_abap_char_utilities=>cr_lf
|
||||
'and a manuall line break.' INTO lv_value.
|
||||
lo_worksheet->set_cell( ip_row = 11 ip_column = 'B'
|
||||
ip_value = lv_value
|
||||
ip_style = lv_style_mixed_guid ).
|
||||
|
||||
*** Create output
|
||||
lcl_output=>output( lo_excel ).
|
29
src/demos/zdemo_excel14.prog.xml
Normal file
29
src/demos/zdemo_excel14.prog.xml
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>ZDEMO_EXCEL14</NAME>
|
||||
<SUBC>1</SUBC>
|
||||
<RSTAT>T</RSTAT>
|
||||
<RLOAD>E</RLOAD>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
<TPOOL>
|
||||
<item>
|
||||
<ID>R</ID>
|
||||
<ENTRY>abap2xlsx Demo: Alignment</ENTRY>
|
||||
<LENGTH>26</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_PATH</KEY>
|
||||
<ENTRY>.</ENTRY>
|
||||
<LENGTH>9</LENGTH>
|
||||
<SPLIT>D</SPLIT>
|
||||
</item>
|
||||
</TPOOL>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
BIN
src/demos/zdemo_excel14.w3mi.data.xlsx
Normal file
BIN
src/demos/zdemo_excel14.w3mi.data.xlsx
Normal file
Binary file not shown.
28
src/demos/zdemo_excel14.w3mi.xml
Normal file
28
src/demos/zdemo_excel14.w3mi.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_W3MI" serializer_version="v2.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<NAME>ZDEMO_EXCEL14</NAME>
|
||||
<TEXT>14_Alignment.xlsx (ZDEMO_EXCEL14)</TEXT>
|
||||
<PARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL14</OBJID>
|
||||
<NAME>fileextension</NAME>
|
||||
<VALUE>.xlsx</VALUE>
|
||||
</WWWPARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL14</OBJID>
|
||||
<NAME>filename</NAME>
|
||||
</WWWPARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL14</OBJID>
|
||||
<NAME>mimetype</NAME>
|
||||
<VALUE>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</VALUE>
|
||||
</WWWPARAMS>
|
||||
</PARAMS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
162
src/demos/zdemo_excel15.prog.abap
Normal file
162
src/demos/zdemo_excel15.prog.abap
Normal file
|
@ -0,0 +1,162 @@
|
|||
*&---------------------------------------------------------------------*
|
||||
*& Report ZDEMO_EXCEL15
|
||||
*&
|
||||
*&---------------------------------------------------------------------*
|
||||
*& 2010-10-30, Gregor Wolf:
|
||||
*& Added the functionality to ouput the read table content
|
||||
*& 2011-12-19, Shahrin Shahrulzaman:
|
||||
*& Added the functionality to have multiple input and output files
|
||||
*&---------------------------------------------------------------------*
|
||||
|
||||
REPORT zdemo_excel15.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF t_demo_excel15,
|
||||
input TYPE string,
|
||||
END OF t_demo_excel15.
|
||||
|
||||
CONSTANTS: sheet_with_date_formats TYPE string VALUE '24_Sheets_with_different_default_date_formats.xlsx'.
|
||||
|
||||
DATA: excel TYPE REF TO zcl_excel,
|
||||
lo_excel_writer TYPE REF TO zif_excel_writer,
|
||||
reader TYPE REF TO zif_excel_reader.
|
||||
|
||||
DATA: ex TYPE REF TO zcx_excel,
|
||||
msg TYPE string.
|
||||
|
||||
DATA: lv_file TYPE xstring,
|
||||
lv_bytecount TYPE i,
|
||||
lt_file_tab TYPE solix_tab.
|
||||
|
||||
DATA: lv_workdir TYPE string,
|
||||
output_file_path TYPE string,
|
||||
input_file_path TYPE string,
|
||||
lv_file_separator TYPE c.
|
||||
|
||||
DATA: worksheet TYPE REF TO zcl_excel_worksheet,
|
||||
highest_column TYPE zexcel_cell_column,
|
||||
highest_row TYPE int4,
|
||||
column TYPE zexcel_cell_column VALUE 1,
|
||||
col_str TYPE zexcel_cell_column_alpha,
|
||||
row TYPE int4 VALUE 1,
|
||||
value TYPE zexcel_cell_value,
|
||||
converted_date TYPE d.
|
||||
|
||||
DATA:
|
||||
lt_files TYPE TABLE OF t_demo_excel15.
|
||||
FIELD-SYMBOLS: <wa_files> TYPE t_demo_excel15.
|
||||
|
||||
PARAMETERS: p_path TYPE zexcel_export_dir,
|
||||
p_noout TYPE abap_bool DEFAULT abap_true.
|
||||
|
||||
|
||||
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
|
||||
lv_workdir = p_path.
|
||||
cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
|
||||
CHANGING selected_folder = lv_workdir ).
|
||||
p_path = lv_workdir.
|
||||
|
||||
INITIALIZATION.
|
||||
cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
|
||||
cl_gui_cfw=>flush( ).
|
||||
p_path = lv_workdir.
|
||||
|
||||
APPEND INITIAL LINE TO lt_files ASSIGNING <wa_files>.
|
||||
<wa_files>-input = '01_HelloWorld.xlsx'.
|
||||
APPEND INITIAL LINE TO lt_files ASSIGNING <wa_files>.
|
||||
<wa_files>-input = '02_Styles.xlsx'.
|
||||
APPEND INITIAL LINE TO lt_files ASSIGNING <wa_files>.
|
||||
<wa_files>-input = '03_iTab.xlsx'.
|
||||
APPEND INITIAL LINE TO lt_files ASSIGNING <wa_files>.
|
||||
<wa_files>-input = '04_Sheets.xlsx'.
|
||||
APPEND INITIAL LINE TO lt_files ASSIGNING <wa_files>.
|
||||
<wa_files>-input = '05_Conditional.xlsx'.
|
||||
APPEND INITIAL LINE TO lt_files ASSIGNING <wa_files>.
|
||||
<wa_files>-input = '07_ConditionalAll.xlsx'.
|
||||
APPEND INITIAL LINE TO lt_files ASSIGNING <wa_files>.
|
||||
<wa_files>-input = '08_Range.xlsx'.
|
||||
APPEND INITIAL LINE TO lt_files ASSIGNING <wa_files>.
|
||||
<wa_files>-input = '13_MergedCells.xlsx'.
|
||||
APPEND INITIAL LINE TO lt_files ASSIGNING <wa_files>.
|
||||
<wa_files>-input = sheet_with_date_formats.
|
||||
APPEND INITIAL LINE TO lt_files ASSIGNING <wa_files>.
|
||||
<wa_files>-input = '31_AutosizeWithDifferentFontSizes.xlsx'.
|
||||
|
||||
START-OF-SELECTION.
|
||||
|
||||
IF p_path IS INITIAL.
|
||||
p_path = lv_workdir.
|
||||
ENDIF.
|
||||
cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
|
||||
|
||||
LOOP AT lt_files ASSIGNING <wa_files>.
|
||||
CONCATENATE p_path lv_file_separator <wa_files>-input INTO input_file_path.
|
||||
CONCATENATE p_path lv_file_separator '15_' <wa_files>-input INTO output_file_path.
|
||||
REPLACE '.xlsx' IN output_file_path WITH 'FromReader.xlsx'.
|
||||
|
||||
TRY.
|
||||
CREATE OBJECT reader TYPE zcl_excel_reader_2007.
|
||||
excel = reader->load_file( input_file_path ).
|
||||
|
||||
IF p_noout EQ abap_false.
|
||||
worksheet = excel->get_active_worksheet( ).
|
||||
highest_column = worksheet->get_highest_column( ).
|
||||
highest_row = worksheet->get_highest_row( ).
|
||||
|
||||
WRITE: / 'Filename ', <wa_files>-input.
|
||||
WRITE: / 'Highest column: ', highest_column, 'Highest row: ', highest_row.
|
||||
WRITE: /.
|
||||
|
||||
WHILE row <= highest_row.
|
||||
WHILE column <= highest_column.
|
||||
col_str = zcl_excel_common=>convert_column2alpha( column ).
|
||||
worksheet->get_cell(
|
||||
EXPORTING
|
||||
ip_column = col_str
|
||||
ip_row = row
|
||||
IMPORTING
|
||||
ep_value = value
|
||||
).
|
||||
WRITE: value.
|
||||
column = column + 1.
|
||||
ENDWHILE.
|
||||
WRITE: /.
|
||||
column = 1.
|
||||
row = row + 1.
|
||||
ENDWHILE.
|
||||
IF <wa_files>-input = sheet_with_date_formats.
|
||||
worksheet->get_cell(
|
||||
EXPORTING
|
||||
ip_columnrow = 'A4'
|
||||
IMPORTING
|
||||
ep_value = value
|
||||
).
|
||||
WRITE: / 'Date value using get_cell: ', value.
|
||||
converted_date = zcl_excel_common=>excel_string_to_date( ip_value = value ).
|
||||
WRITE: / 'Converted date: ', converted_date.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
|
||||
lv_file = lo_excel_writer->write_file( excel ).
|
||||
|
||||
" Convert to binary
|
||||
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
|
||||
EXPORTING
|
||||
buffer = lv_file
|
||||
IMPORTING
|
||||
output_length = lv_bytecount
|
||||
TABLES
|
||||
binary_tab = lt_file_tab.
|
||||
|
||||
" Save the file
|
||||
cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
|
||||
filename = output_file_path
|
||||
filetype = 'BIN'
|
||||
CHANGING data_tab = lt_file_tab ).
|
||||
|
||||
|
||||
CATCH zcx_excel INTO ex. " Exceptions for ABAP2XLSX
|
||||
msg = ex->get_text( ).
|
||||
WRITE: / msg.
|
||||
ENDTRY.
|
||||
ENDLOOP.
|
35
src/demos/zdemo_excel15.prog.xml
Normal file
35
src/demos/zdemo_excel15.prog.xml
Normal file
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>ZDEMO_EXCEL15</NAME>
|
||||
<SUBC>1</SUBC>
|
||||
<RSTAT>T</RSTAT>
|
||||
<RLOAD>E</RLOAD>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
<TPOOL>
|
||||
<item>
|
||||
<ID>R</ID>
|
||||
<ENTRY>abap2xlsx Demo: Reader</ENTRY>
|
||||
<LENGTH>22</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_NOOUT</KEY>
|
||||
<ENTRY>Hide output</ENTRY>
|
||||
<LENGTH>19</LENGTH>
|
||||
</item>
|
||||
<item>
|
||||
<ID>S</ID>
|
||||
<KEY>P_PATH</KEY>
|
||||
<ENTRY>.</ENTRY>
|
||||
<LENGTH>24</LENGTH>
|
||||
<SPLIT>D</SPLIT>
|
||||
</item>
|
||||
</TPOOL>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
BIN
src/demos/zdemo_excel15_01.w3mi.data.xlsx
Normal file
BIN
src/demos/zdemo_excel15_01.w3mi.data.xlsx
Normal file
Binary file not shown.
28
src/demos/zdemo_excel15_01.w3mi.xml
Normal file
28
src/demos/zdemo_excel15_01.w3mi.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_W3MI" serializer_version="v2.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<NAME>ZDEMO_EXCEL15_01</NAME>
|
||||
<TEXT>15_01_HelloWorldFromReader.xlsx (ZDEMO_EXCEL15)</TEXT>
|
||||
<PARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL15_01</OBJID>
|
||||
<NAME>fileextension</NAME>
|
||||
<VALUE>.xlsx</VALUE>
|
||||
</WWWPARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL15_01</OBJID>
|
||||
<NAME>filename</NAME>
|
||||
</WWWPARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL15_01</OBJID>
|
||||
<NAME>mimetype</NAME>
|
||||
<VALUE>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</VALUE>
|
||||
</WWWPARAMS>
|
||||
</PARAMS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
BIN
src/demos/zdemo_excel15_02.w3mi.data.xlsx
Normal file
BIN
src/demos/zdemo_excel15_02.w3mi.data.xlsx
Normal file
Binary file not shown.
28
src/demos/zdemo_excel15_02.w3mi.xml
Normal file
28
src/demos/zdemo_excel15_02.w3mi.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_W3MI" serializer_version="v2.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<NAME>ZDEMO_EXCEL15_02</NAME>
|
||||
<TEXT>15_02_StylesFromReader.xlsx (ZDEMO_EXCEL15)</TEXT>
|
||||
<PARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL15_02</OBJID>
|
||||
<NAME>fileextension</NAME>
|
||||
<VALUE>.xlsx</VALUE>
|
||||
</WWWPARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL15_02</OBJID>
|
||||
<NAME>filename</NAME>
|
||||
</WWWPARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL15_02</OBJID>
|
||||
<NAME>mimetype</NAME>
|
||||
<VALUE>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</VALUE>
|
||||
</WWWPARAMS>
|
||||
</PARAMS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
BIN
src/demos/zdemo_excel15_03.w3mi.data.xlsx
Normal file
BIN
src/demos/zdemo_excel15_03.w3mi.data.xlsx
Normal file
Binary file not shown.
28
src/demos/zdemo_excel15_03.w3mi.xml
Normal file
28
src/demos/zdemo_excel15_03.w3mi.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_W3MI" serializer_version="v2.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<NAME>ZDEMO_EXCEL15_03</NAME>
|
||||
<TEXT>15_03_iTabFromReader.xlsx (ZDEMO_EXCEL15)</TEXT>
|
||||
<PARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL15_03</OBJID>
|
||||
<NAME>fileextension</NAME>
|
||||
<VALUE>.xlsx</VALUE>
|
||||
</WWWPARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL15_03</OBJID>
|
||||
<NAME>filename</NAME>
|
||||
</WWWPARAMS>
|
||||
<WWWPARAMS>
|
||||
<RELID>MI</RELID>
|
||||
<OBJID>ZDEMO_EXCEL15_03</OBJID>
|
||||
<NAME>mimetype</NAME>
|
||||
<VALUE>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</VALUE>
|
||||
</WWWPARAMS>
|
||||
</PARAMS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user