Compare commits

...

471 Commits
v7.0.7 ... main

Author SHA1 Message Date
sandraros
08c794f3ca
Normalize variable names, isolate column/row logic (#1291)
Refactoring of method ZCL_EXCEL_TABLE=>GET_REFERENCE changed by PR #1279

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2025-04-22 12:52:43 +02:00
sandraros
d83ad53f46
Remove italian in class components (SEOCOMPOTX) (#1303)
Remove italian in class components (SEOCOMPOTX)
2025-04-22 09:02:06 +02:00
pksingh78
9fde3924bb
Fix issue 1013 part1 (#1039)
* Replace pass by value with reference

#1013

* Possible sequential read on sorted/hashed table

#1014

* Update src/not_cloud/zcl_excel_converter.clas.locals_def.abap

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* remove comments and old coding

* fix UT errors

* remove more comments and old coding

* Improvements / Fix aesthetic regression on XML

---------

Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: Domi Bigl <dominik.bigl@cadaxo.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
Co-authored-by: sandraros <sandra.rossi@gmail.com>
2025-03-08 19:23:02 +01:00
pksingh78
ca6fda29ed
Replace pass by value with reference (#1037)
* Replace pass by value with reference

#1013

---------

Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Gregor Wolf <gregor.wolf@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
Co-authored-by: Domi Bigl <dominik.bigl@cadaxo.com>
2025-02-22 16:59:14 +01:00
Lars Hvam
a1af09f064
Create SECURITY.md: Reporting Security Issues (#1289)
Co-authored-by: Domi Bigl <dominik.bigl@cadaxo.com>
2025-02-09 16:29:59 +01:00
Domi Bigl
8428eb04d2
usea APLHA for cols in reference string (#1279)
fixes #1215
2025-02-08 19:47:27 +01:00
sandraros
13da36b7a2
Dump ITAB_DUPLICATE in reader=>load_shared_strings (#1288)
Fix #1287
2025-02-08 10:02:22 +01:00
Oliver Hütköper
4eb3df1611
Options to skip hidden rows and columns for CSV format (#1268)
* Options to skip hidden rows and columns for CSV format

Add options to skip hidden rows and columns when saving the data in CSV format. This is especially useful, when converting an ALV to an Excel object and saving it as CSV file. ALV layouts often display only selected columns.

* Adding missing data definition

Adding missing data definition for lo_autofilter.

* Fix dates not converterted to external format

Method get_default_excel_date_format of class zcl_excel_worksheet uses language "E" (English) to determine the date format from domain XUDATFM. 
Method create_csv of class zcl_excel_writer_csv has a logic to determine the field type from the number format. For this also the values from domain XUDATFM are used. But here they are read with sy-langu. Due to this, fields are not correctly identified as "date" when the user language is not English.

Solution: Additionally read domain values with language "E".

* Trigger filter area validation

Trigger filter area validation

* Fix date identification logic for newer AS ABAP versions

The texts of domain XUDATFM changed in newer systems:
NW 7.40: DD.MM.YYYY
NW 7.52: DD.MM.YYYY (Gregorian Date)

This breaks the date identification logic.

New logic copied from get_date_format_des of class cl_abap_datfm, which is called in method get_default_excel_date_format of class zcl_excel_worksheet to get the users default date pattern.

* Performance improvement for skip hidden rows

Performance improvement for skip hidden rows

---------

Co-authored-by: Domi Bigl <dominik.bigl@cadaxo.com>
Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2025-01-05 15:16:30 +01:00
Domi Bigl
bae673121b
Fix dump for GUI download (#1276)
* fix gui download dump
* remove detailed exceptions
2024-10-25 20:10:59 +02:00
Lars Hvam
776ff5aa26
normalize_style_parameter: remove check for absolute names (#1167)
Co-authored-by: Domi Bigl <dominik.bigl@cadaxo.com>
2024-09-13 12:41:08 +02:00
Bernd
f6eeb339e4
Yet another autofilter problem using converter and ALV (#1239)
Fix #1238
---------
Co-authored-by: Domi Bigl <dominik.bigl@cadaxo.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2024-09-10 13:48:59 +02:00
sandraros
e1cccfabda
Fix code which prevents ABAP Cleaner from running (#1267)
Fix #1266
2024-09-01 13:13:11 +02:00
Bernd
467b96f73b
Fix in line 1174 of zcl_excel_writer_2007.clas.locals_imp.abap (bug in conditional formatting) (#1255)
* Fix in line 1174 of zcl_excel_writer_2007.clas.locals_imp.abap

* Handle c_rule_textfunction in CREATE_XL_STYLES

---------

Co-authored-by: Domi Bigl <dominik.bigl@cadaxo.com>
Co-authored-by: sandraros <sandra.rossi@gmail.com>
2024-08-31 08:28:07 +02:00
Bernd
d146e5b893
Update zexcel_s_cstyle_fill.tabl.xml (#1260)
Fix #1259.
Gradtype now is related to the correct structure
Co-authored-by: Domi Bigl <dominik.bigl@cadaxo.com>
2024-08-24 17:28:10 +02:00
Domi Bigl
b3201166fc
consider time format for cell with calculation (#1263)
fixes #521
2024-08-22 11:46:55 +02:00
sandraros
b5f5d11e1c
Fix default cell format to not use UTCLONG (#1262)
Fix #1261

Co-authored-by: sandraros <sandra.rossi@gmail.com>
2024-08-18 14:52:53 +02:00
Bernd
3d2926c5a6
Update ZEXCEL_FILL_TYPE 'cornerRB' (#1258)
Fix #1257
2024-08-17 17:07:05 +02:00
Lars Hvam
4e1931af15
font class cleanup (#1125) 2024-08-07 09:05:50 +02:00
sandraros
0f19081a04
Code to handle the UTCLONG type added in ABAP 7.54 (#1253)
Fix #1252
2024-08-06 14:12:23 +02:00
Lars Hvam
5ee365d831
update npm dependencies (#1207) 2024-08-05 19:06:55 +02:00
Bernd
48db7f0b1b
How to get rid of the obscure code in writer's method create_xl_sheet_sheet_data step #1 (#1231)
Fix #440
2024-06-15 12:07:36 +02:00
sandraros
d25eb31d78
Remove no-more-appropriate comments from set_title (#1237)
These comments are old and useless
2024-06-09 20:40:45 +02:00
Bernd
e389d2dff5
Worksheet's method set_title doesn't handle escaped titles and sheetlocal ranges (#1236)
Fix #1235
2024-06-09 20:34:29 +02:00
Bernd
564d60e0f5
Update zcl_excel_reader_2007.clas.abap (#1234) 2024-06-09 10:39:59 +02:00
sandraros
fd2dc14ac2
Support of empty cell address by LOAD (workbook) (#1225)
Fix #1081

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Andrea Borgia <andrea@borgia.bo.it>
2024-05-12 11:57:33 +02:00
RixarSAP
c2096d1f9b
Added field WIDTH in field catalog of method BIND_TABLE (#1224)
Fix #1227
2024-05-11 17:34:06 +02:00
sandraros
aee3b3efa4
More control on comment box position/size (#1226) 2024-05-11 16:56:20 +02:00
RixarSAP
a9e1068e44
Add possibility to change the size of the comments. (#1219)
Fix #1221
2024-05-06 08:42:16 +02:00
Domi Bigl
3cb8f883f1
fix hidden compare values (#1208)
set hidden compare values to constants lc_xml_attr_true and lc_xml_attr_true_int ( 'true' and '1' )
2024-04-27 12:14:29 +02:00
Bernd
5cb47b143c
Header/footer images and comments together create wrong file destinations in sheet#.xml.rels (#1201)
* Update zcl_excel_writer_2007.clas.abap

Fix #1214
2024-04-20 18:32:50 +02:00
Bernd
191bf9cf61
Update zcl_excel_writer_2007.clas.locals_imp.abap (#1200)
solves #1113
2024-04-20 12:26:15 +02:00
Kjetil Kilhavn
f9685c981d
Convert fields with date & time value correctly to just date or just time (#1197)
* Convert fields with date 

Ignore decimals when converting to date and ignore integer when converting to time
Fix #1132

* New ip_exact parameter of excel_string_to_date

- I'm not comfortable about changing the logic in `excel_string_to_date`, in case other people have implemented a "-1 day" fix after the call, so I added a parameter `ip_exact` to keep an ascending compatibility.
- I reused the old structure of unit tests to simplify the diff
- fix #1205 (I added this time issue that you fixed, the original issue mentioned only the date issue)

---------

Co-authored-by: sandraros <sandra.rossi@gmail.com>
2024-04-20 09:53:31 +02:00
juancarlosrodriguezf
0f473095e1
Format Date (#1050)
* Fix format date for dd/mm/yyyy
* added new date format DD/MM/YY
* New constant for dd/mm/yyyy instead of changing the existing one to keep the ascending compatibility

---------

Co-authored-by: Abo <andrea@borgia.bo.it>
Co-authored-by: Domi Bigl <dominik.bigl@cadaxo.com>
Co-authored-by: sandraros <sandra.rossi@gmail.com>
2024-04-14 10:32:55 +02:00
sandraros
a69258e829
set_table to support table components not DDIC (#1204)
Fix #1166
2024-04-13 15:54:22 +02:00
Aditya Waghmare
35425c3220
CSV Initial External Date (#1190)
* CSV Initial External Date

Added code to set an initial external date other than the value returned by function module 'CONVERT_DATE_TO_EXTERNAL'.

* Default value as public constant

---------

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2024-02-15 15:20:09 +01:00
sandraros
39f92725a0
Update LICENSE Copyright (#1191)
Fix #1153
2024-02-15 11:16:49 +01:00
sandraros
242a3d4e43
Ineffective Set_Namespace_Prefix on DOM document (#1186)
It always return an error but isn't handled → line removed
2024-02-06 20:01:26 +01:00
sandraros
e4f0ca2333
Unused calls/variables about cl_xml_document (#1185) 2024-02-06 15:15:51 +01:00
sandraros
b77b48fd15
Cleanup unused variables in zcl_excel_theme (#1183)
Removing the statement ixml_element->get_attribute( 'xmlns:a' ) is anyway a good thing because getting a namespace attribute this way is not supported by IXML and it is always returning an empty string even if this "attribute" exists.
2024-02-01 17:37:36 +01:00
sandraros
cc8fb819ad
Fix freeze and topLeftCell in reader/writer (#1178)
Fix freeze and topLeftCell in reader/writer

Fix #1175
Adds new methods set_pane_top_left_cell and set_sheetview_top_left_cell to zcl_excel_worksheet
2024-01-31 16:23:15 +01:00
Lars Hvam
1148838a0f
add basic unit test for recursive_struct_to_class (#1124)
* add basic unit test for recursive_struct_to_class

* Update zcl_excel_common.clas.testclasses.abap
2024-01-29 07:21:05 +01:00
Lars Hvam
b4a79ebe6c
start unit testing setup (#872) 2024-01-29 07:18:57 +01:00
sandraros
5f784c8ed6
Fix zoom information in reader and writer (#1177)
Fix #1176
2024-01-19 21:37:06 +01:00
Attila Berencsi
6bb02920df
Address DDIC Issues on BTP ABAP Environment: SAP_BASIS 794 (SAPK-79406INSAPBASIS 0006) (#1169)
* Address DDIC Issues on BTP ABAP Environment.
SAP_BASIS 794 (SAPK-79406INSAPBASIS  0006)

* Move DynPro related DDIC to NOT_CLOUD package

* Remove one langu from DTEL, DOMA 2 see git changes

* Remove non-english translations for copied data elements for cloud

* Package assignment and diff cleanup
Moved from package <root>_NOT_CLOUD to <root>
- ZEXCEL_S_FIELDCATALOG
Moved from package <root> to <root>_NOT_CLOUD:
- ZEXCEL_T_CONVERTER_COL
- ZEXCEL_T_CONVERTER_FCAT
- ZIF_EXCEL_CONVERTER
"No change" (latest abapGit version indicates a Diff but details give message "no diff" - abapGit bug?), let's see if it solves:
- /src/not_cloud/zexcel_component_position.dtel.xml
- /src/not_cloud/zexcel_convexit.doma.xml
- /src/not_cloud/zexcel_convexit.dtel.xml
- /src/not_cloud/zexcel_ddic_flag.doma.xml
- /src/not_cloud/zexcel_disp_text_long.doma.xml
- /src/not_cloud/zexcel_disp_text_long.dtel.xml
- /src/not_cloud/zexcel_disp_text_medium.dtel.xml
- /src/not_cloud/zexcel_disp_text_short.doma.xml
- /src/not_cloud/zexcel_disp_text_short.dtel.xml
- /src/not_cloud/zexcel_screen_display.dtel.xml

---------

Co-authored-by: 04c82057-cb12-4722-bad9-5d002feb93ac <attila.berencsi@gmail.com>
Co-authored-by: sandraros <sandra.rossi@gmail.com>
2024-01-14 14:43:22 +01:00
HuprichTo
92809a41e3
Fix unescape string value when not escpaped (#1160)
* BUGFIX: Skip Input without escaped Character

Some special Values, e.g. "TEST_X" were handled like it was an escaped Character, thats because it was not checked if the second conition, an "_" behind it was there

* Adjust Package Description to its Original

* Remove commented Code

Was there for testing, not needed anymore

* Downport to 7.02

Adjust Method Call to apply 7.02 Syntax

* Fix abaplint Issues

* Fix abaplint Issues (again)

---------

Fix #1122 

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2024-01-11 17:35:46 +01:00
sandraros
76a39a7819
Make the reader get the Tables (#1159)
Fix #1158
Fix #1168
2023-12-25 16:36:58 +01:00
Lars Hvam
1c2607f655
move ZEXCEL_TR_DOCPROPS_CORE to demos (#1165) 2023-12-24 20:28:06 +01:00
Lars Hvam
a6176d7f17
replace use of REFFIELD (#1154) 2023-11-05 11:21:52 +01:00
Lars Hvam
bcec07b41a
fix syntax warning (#1155) 2023-11-05 11:18:36 +01:00
larsip
c1a20e870b
Convert currency amount to external format (#1147)
Fix #1145

* Convert currency amount to external format
Fetching currency reference field from ALV and use the value from this field convert the value to external format

* Missing field catalog update

* Little changes proposed

* Code best positioned, delete unused declaration
Latest changes proposed by darnoc312
2023-11-04 17:09:11 +01:00
Arno
ccda3a0aa8
read all header/footer (odd/even) elements (#1144)
Previously only the "oddFooter" was read and stored. Read the missing elements as well.
2023-10-29 19:09:30 +01:00
Daniel Wegner
cf8bb2c501
add iv_end_row to convert_to_table (#1148)
Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2023-10-29 18:29:51 +01:00
sandraros
d30855345c
XML I18N_LANGS/DD02_TEXTS - ZEXCEL_S_FIELDCATALOG (#1149)
New XML added by abapGit while serializing the DDIC structure ZEXCEL_S_FIELDCATALOG:
  <I18N_LANGS>
    <LANGU>1</LANGU>
    ...
  </I18N_LANGS>
  <DD02_TEXTS>
    <item>
     <DDLANGUAGE>1</DDLANGUAGE>
     <DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
    </item>
    ...
  </DD02_TEXTS>
2023-10-29 18:11:02 +01:00
Lars Hvam
2f970b82a1
abaplint: update msag_consistency rule settings (#1142)
to not require numeric parameters
2023-10-01 17:33:07 +02:00
Matthias
4d33c4e20e
Fix CSV Export with date and time in excel format (#1140)
* solving issue #1134
* changes after testing
* CSV export - Dateretention of cellstyles - fix issue #1134
* undo previous changes for issue #1134
2023-09-30 14:07:30 +02:00
sandraros
ec32e7ade4
ZCX_EXCEL diff <SOTS_USE> due to new abapGit (#1141)
Pull of latest abap2xlsx via latest abapGit still shows a diff on ZCX_EXCEL. The abapGit serialization adds an extra <SOTS_USE> block.
2023-09-30 11:17:07 +02:00
Domi Bigl
c28162d1d1
add escape of - (#1128)
* add escape of -

* add untitests

* replace inline data declaration
2023-08-04 14:57:02 +02:00
Lars Hvam
425b6a2b7d
add basic unit test for style changer (#1123)
* add basic unit test for style changer

* xml

* revert
2023-07-28 07:02:16 +02:00
Lars Hvam
ac78cd87d2
split unit test delete_merge (#1121)
* split unit test delete_merge

into one unit test per test

* add unit test get_rows_iterator
2023-07-28 07:00:11 +02:00
Matthias
1fe298d5be
Update zcl_excel_converter_salv_table.clas.abap (#1120)
fix issue #1119
2023-07-10 14:07:26 +02:00
Domi Bigl
2b01655cab
do not use NO-ZERO for none numeric cell values (#1100) 2023-05-26 07:47:59 +02:00
sandraros
829529cf6a
don't run SALV get_metadata if not displayed yet (#1109)
fix #1097

* don't run SALV get_metadata if not displayed yet

---------

Co-authored-by: Sandra Rossi <sandraros@gmail.com>
2023-05-08 20:18:18 +02:00
sandraros
869dc52e40
Escape/unescape control characters in writer/reader (#1099)
* Escape/unescape control characters

Fix #1098

---------

Co-authored-by: sandraros <sandra.rossi@gmail.com>
2023-04-21 17:51:25 +02:00
Lars Hvam
04b143ca2e
zcl_excel_theme_fmt_scheme, replace use of cl_xml_document (#1046)
* zcl_excel_theme_fmt_scheme, add unit test

* replace use of cl_xml_document

---------

Co-authored-by: Abo <andrea@borgia.bo.it>
2023-04-08 16:36:04 +02:00
Abo
530d9e207a
replace quit-no with older name for constant (#1088)
ABAP Unit parameter Quit constant for "no" valid in versions 7.31+ is IF_AUNIT_CONSTANTS=>NO
2023-02-04 17:18:33 +01:00
Abo
e0c4fade08
fix code template generation to work on 731 (#1086)
* Update zexcel_template_get_types.prog.abap: fix code template generation to work on 731

* Update README.md: added minimum version support
2023-02-04 16:52:29 +01:00
Enno
8b729bb01a
link for demos (#1084) 2023-02-04 15:24:32 +01:00
Rüdiger Plantiko
bd8105f800
Update zcl_excel_worksheet.clas.testclasses.abap (#1082)
Replacing IF_ABAP_UNIT_CONSTANT by IF_AUNIT_CONSTANTS, as proposed by @sandraros
2023-01-28 21:18:04 +01:00
Domi Bigl
34a8ed4865
use INSERT for sorted ITab (#1066) 2023-01-14 12:18:30 +01:00
Domi Bigl
684c8f71e0
get INT8 typekind dynamic (#1065) 2022-11-20 20:44:47 +01:00
Rahul Dwivedi
df9db3d55c
zcl_excel_writer- create_xl_sheet Refactor1 (#1069) 2022-10-27 20:10:38 +02:00
sandraros
d9f557ea75
XML changes after latest abapGit (#1071)
Latest abapGit version did a cleanup of useless elements /DESCRIPTIONS/SEOCOMPOTX/CLSNAME because it's duplicate information.

<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
 <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
  <asx:values>
   <VSEOCLASS>
    <CLSNAME>ZCL_EXCEL_WRITER_2007</CLSNAME>
    <LANGU>E</LANGU>
    <DESCRIPT>Excel writer 2007</DESCRIPT>
    <STATE>1</STATE>
    <CLSCCINCL>X</CLSCCINCL>
    <FIXPT>X</FIXPT>
    <UNICODE>X</UNICODE>
    <WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
   </VSEOCLASS>
   <DESCRIPTIONS>
    <SEOCOMPOTX>
     <CLSNAME>ZCL_EXCEL_WRITER_2007</CLSNAME>  <============= Removed
     <CMPNAME>ADD_FURTHER_DATA_TO_ZIP</CMPNAME>
     <LANGU>E</LANGU>
     <DESCRIPT>Add further data to zip ( used by child-classes )</DESCRIPT>

Co-authored-by: sandraros <sandra.rossi@gmail.com>
2022-10-23 21:22:30 +02:00
Derby
90981b21c5
add METHOD convert_to_table. (#999)
* added METHOD convert_to_table.

Co-authored-by: Abo <andrea@borgia.bo.it>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Domi Bigl <dominik.bigl@cadaxo.com>
2022-08-29 18:04:16 +02:00
Abo
eb7d8da540
Update publishing-a-new-release.md (#1057)
ideally we shoudl run ZDEMO_EXCEL_CHECKER during the review process of each PR for both the main library and the demos, but as a safety net also before releasing a new version
2022-08-22 10:18:28 +02:00
Abo
4f3d113a43
Update guidelines for demos (#1055) 2022-08-15 18:02:03 +02:00
Abo
9d318a1bc2
Update publishing-a-new-release.md (#1054)
* Update publishing-a-new-release.md

- noted that tags should be created when working from upstream repository (they do not come via PR from outside, only from local branches apparently)
- added note regarding previous tag for auto-generation of release notes

* Remaining occurrence 15 → 16

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2022-08-15 11:11:58 +02:00
Abo
ef47a724e7
Release 7.16.0 (#1053)
* location and name of version tag

* bump version to 7.16.0
2022-08-13 12:53:35 +02:00
Domi Bigl
bca6db91c3
enable 255 cell header with table binding (#1051)
* add column_name to fcat and link cell to table

add column_name char 255 to table fieldcat - this is used as table name and cell value
link cell to table and fieldcat

* update fieldcat by cell value change

* fix linter errors

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* fix linter errors

* fix linter errors

* undo PP

* undo PP

* undo PP

* fix colname for totals functions

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
2022-08-07 15:56:26 +02:00
Abo
c6e5ad6ee6
adopt default style when setting format for date / time (#1025)
* first draft

must check cloning vs uuid assignment, it works but I'm not convinced this is correct

* remove unused class attribute

* fixed unrelated typo

* fixed linter complaints and revised changes

* Delete zexcel_t_sheet_style.ttyp.xml

* Delete zexcel_s_sheet_style.tabl.xml

Co-authored-by: Gregor Wolf <gregor.wolf@gmail.com>
2022-07-16 19:38:46 +02:00
sandraros
4ab5bbe961
ZABAPGIT_STANDALONE instea of ZABAPGIT_FULL (#1047)
[abapGit instructions](https://docs.abapgit.org/guide-install.html) say `create a new report named ZABAPGIT_STANDALONE (formerly ZABAPGIT_FULL)`
2022-07-15 09:33:39 +02:00
sandraros
11b47ec222
endless loop in bind_table (#1044)
Fix #1043

* endless loop in bind_table
* Handle more than 100 identical texts
* correct typos in comments

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2022-07-13 20:28:07 +02:00
Domi Bigl
000b7cf797
fixe column freeze error (#1042)
use lv_freeze_cell_column to column freeze instead of lv_freeze_cell_row
2022-07-02 10:39:46 +02:00
Lars Hvam
09c1eb027b
replace use of TABFDPOS (#1034)
uses LIKE instead

Co-authored-by: Gregor Wolf <gregor.wolf@gmail.com>
2022-06-16 11:34:38 +02:00
Lars Hvam
a0f28d9f54
update abaplint configuration (#1033)
Co-authored-by: Gregor Wolf <gregor.wolf@gmail.com>
2022-06-16 11:18:47 +02:00
Lars Hvam
d161a757a7
replace use of DTEL FIELDNAME (#1035)
adds new custom DTEL ZEXCEL_FIELDNAME

Co-authored-by: Gregor Wolf <gregor.wolf@gmail.com>
2022-06-16 11:17:23 +02:00
Lars Hvam
b04f6d3c17
replace use of ixml_iid_element (#1036)
use of typegroup IXML is not permitted in Steampunk

#632
2022-06-16 11:15:01 +02:00
Abo
781edaf1d6
Remove apack (#1029)
* remove ZCL_EXCEL_APACK

* remove changelog.txt

* remove .apack-manifest.xml

* Update publishing-a-new-release.md
2022-05-28 12:41:58 +02:00
sandraros
e4141e977b
Create publishing-a-new-release.md (#966)
* Create publishing-a-new-release.md

Co-authored-by: Abo <andrea@borgia.bo.it>
2022-05-21 12:37:50 +02:00
pksingh78
ffbc9153bb
ReplacePass by value with reference-1 (#1028)
#1012-1
2022-05-19 13:25:48 +02:00
pksingh78
b669bdf893
Replace Pass by value with reference (#1027)
#1012
2022-05-19 11:47:35 +02:00
Lars Hvam
a1053e84e1
add steampunk linting setup (#925)
* add steampunk linting setup

* Update abaplint-app.json

* update to 2202 api

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2022-05-16 08:35:27 +02:00
Abo
387d8b103c
remove unused subpackage definition (#1024)
( hopefully last cleanup for #861 )
2022-05-09 08:55:53 +02:00
Tom Schmelzer
d2a1301329
docs: add missing full stop (#1023) 2022-04-28 11:27:24 +02:00
Gregor Wolf
177f30326c
replace pass by value with pass by reference (#1022) 2022-04-27 11:56:37 +02:00
Gregor Wolf
7b7984373c
Fix #1011 exception ZCX_EXCEL is not caught (#1016)
* Fix #1011 exception ZCX_EXCEL is not caught

* fix uncaught exception in test class

* activate uncaught_exception check

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2022-04-23 13:33:56 +02:00
Abo
46e234cd94
finish moving demo-related files (delete from old) (#1009) 2022-04-20 20:32:34 +02:00
Abo
f9b3a5b555
remove leftover int8 declaration (#1008) 2022-03-26 09:41:59 +01:00
sandraros
efbac83915
Note about the demos repository (#1005) 2022-03-26 08:59:21 +01:00
Abo
ac8f4a701e
Update abapGit-installation.md (#1001)
* Update abapGit-installation.md

naming suggestions for demos package and explanation

* Update abapGit-installation.md

fixed typo

* Update abapGit-installation.md

* Update abapGit-installation.md

recommend that demos be created as local package

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2022-03-12 15:53:19 +01:00
sandraros
bea794926b
Delete objects moved to abap2xlsx/demos repository (#998)
* Delete objects moved to abap2xlsx/demos repository

* remove unused zexcel_export_dir

* + procedure for the demo programs

Co-authored-by: sandraros <sandra.rossi@gmail.com>
2022-03-06 20:54:20 +01:00
sandraros
e97169a0c3
Reader: custom paper height and width (#984)
Fix #396

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2022-02-23 23:00:24 +01:00
sandraros
211cf550e6
SET_CELL_FORMULA sets formula in wrong cell (#961)
Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2022-02-19 16:29:33 +01:00
sandraros
f2dd72e76e
SET_CELL use output length for conversion exits (#982)
* SET_CELL use output length for conversion exits

* bind_table: field catalog + demo

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2022-02-19 15:59:22 +01:00
sandraros
2973d66594
Refactor headings logic in BIND_TABLE (#960)
* Refactor headings logic in BIND_TABLE

to help proposing a change for #764

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2022-02-07 16:37:06 +01:00
sandraros
c80da26920
move folders to archive repository (#991)
fix #908
2022-02-06 18:08:45 +01:00
sandraros
07340621a2
zdemo_excel29 demo file from Web Repository (#989)
Fix #988

* zdemo_excel29 demo file from Web Repository

* Delete TestMacro.xlsm

* Remove comment about ZDEMO_EXCEL29/TestMacro.xlsm

Co-authored-by: sandraros <sandra.rossi@gmail.com>
2022-02-06 10:43:35 +01:00
sandraros
77afa4480d
Fix FAQ link to TestMacro.xlsm (#987) 2022-02-05 10:11:51 +01:00
sandraros
5bb343a3e4
Fix set_cell overflow big value type int8 (#979)
Fix #977

Co-authored-by: sandraros <sandra.rossi@gmail.com>
2022-01-29 18:08:54 +01:00
Abo
bffb01c7b9
comments support in reader, initial version (#976)
* comments support in reader, initial version

* fixes formatting for unmodified section

* remove spurious cast

hopefully fixes linter complaint

* handle raw text comments

* removed raw text handling (unused)
2022-01-23 16:41:47 +01:00
sandraros
66ed127cb8
apack manifest 7.15.0 (#975)
Co-authored-by: sandraros <sandra.rossi@gmail.com>
2022-01-22 18:47:45 +01:00
Arno
76f14105db
zcl_excel_converter_salv_table exception handling (#974)
Fixes shortdump in ZDEMO_EXCEL32 and custom programs if the ALV bind functionality is being used.
The dumps are caused by the missing handling of the exception CX_SALV_BS_SC_RUNTIME_INFO.
2022-01-22 15:07:49 +01:00
sandraros
c3204b5c7b
Reader called twice loses formatting (#965)
Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2022-01-15 19:39:47 +01:00
sandraros
79d0df4dc3
BIND_TABLE incorrect table overlap check (#964)
* draft, not finished

* Final commit

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2022-01-15 19:19:14 +01:00
sandraros
c3481d5d90
GET_TABLE skip bottom empty rows (#959)
Fix #787

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2022-01-15 18:32:56 +01:00
sandraros
cc291983d7
Fix demo programs 3 and 33 (#956)
* Fix demo programs 3 and 33

* updated reader reference files

( affected by #935 )

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2022-01-15 17:38:30 +01:00
sandraros
6a32480e5d
Read XLSX from third-party providers (namespaces) (#935)
* theme namespace

* XLSM and rename namespace default to main

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2022-01-15 17:05:38 +01:00
Abo
a09229a130
remove CONDENSE from formulas (#968) 2022-01-15 14:56:12 +01:00
sandraros
206e9199c8
Update new-online-abap2xlsx.png (#967)
screenshot with new URL of abap2xlsx project

Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2022-01-15 12:23:20 +01:00
sandraros
165a580b34
Handle exceptions in demo programs (#962)
* Handle exceptions in demo programs

Fix #955

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2022-01-15 12:17:53 +01:00
sandraros
4662dc85f4
release7.15.0 (#957)
* release7.15.0

* Update changelog.txt

(Check demo regressions)

* abap2xlsx version made public to be used in APACK

Co-authored-by: Abo <andrea@borgia.bo.it>
2022-01-14 20:32:56 +01:00
sandraros
7fa137bc94
ip_style TYPE any + add_new_style( io_clone_of = ) (#929)
* ip_style TYPE any + add_new_style( io_clone_of = )

* zdemo_excel2 instead of zdemo_excel1

* Update zcl_excel_worksheet.clas.abap

* Unit tests added + fix demo 2

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2022-01-09 13:07:22 +01:00
sandraros
8f630081ed
zdemo_excel20 shows old abap2xlsx URL (#963) 2022-01-09 07:15:02 +01:00
Lars Hvam
5e1ca6255f
change REFRESH to CLEAR (#954)
* change REFRESH to CLEAR

and remve REFRESH if the variable is always empty

* more refresh

* enable REFRESH obsolete rule

* another

* last two

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2022-01-07 09:25:03 +01:00
sandraros
c5eb18acdc
prevent row height zero (#950)
Fix #944

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2022-01-06 10:32:24 +01:00
sandraros
6fcbc5c8a8
ip_columnrow in SET_CELL and other methods (#930)
* get_cell, set_cell, set_area, set_merge

* Test classes + Fixes

* demo simple set_cell in zdemo_excel1

* rename the "normalize" methods + cleanup

* Demonstration programs and few fixes

* added "raising cx_static_check"

* zdemo_excel40 call methods with only IP_RANGE

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2022-01-06 09:44:09 +01:00
Lars Hvam
87b8291ea2
remove use of DTEL SYLANGU and DTEL GUID_16 (#953)
* remove use of DTEL SYLANGU

* and GUID_16

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2022-01-05 21:39:55 +01:00
Lars Hvam
8d63df6ba6
refactor CONVERT_COLUMN2INT (#952)
Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2022-01-05 21:29:37 +01:00
Lars Hvam
38160bc781
move converter classes to not_cloud package (#951)
* move converter classes to not_cloud package

* STRINGVAL to STRING

* fix whitespace

* fix SYBATCH

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2022-01-05 21:19:14 +01:00
sandraros
3ef605e74a
Sandraros/check demo regressions 2 (#940)
* remove sy-datum/sy-uzeit from demo programs

* Fixed data for all demo programs

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2022-01-05 10:31:48 +01:00
Lars Hvam
9d0c970682
change FLOAT to F (#949)
* change FLOAT to F

* fix whitespace

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2022-01-03 21:50:43 +01:00
Lars Hvam
8d072439da
remove TYPE-POOLS statements (#948)
* remove TYPE-POOLS statements

* fix whitespace

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2022-01-03 21:42:10 +01:00
Lars Hvam
496b51e531
change SYTABIX to I (#947)
* change SYTABIX to I

* another
2022-01-03 21:33:18 +01:00
sandraros
3a4270c11e
Delete code instead of commenting it (#946)
* Detect commented code

* Update abaplint.json

Co-authored-by: Lars Hvam <larshp@hotmail.com>

* first batch of modifications

* Last batch of modifications

* Last batch of modifications (again)

Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: sandraros <sandra.rossi@gmail.com>
2022-01-03 08:54:52 +01:00
Gregor Wolf
a5e4bb9c77
add column for photographer, improve formatting (#943)
* add column for photographer, improve formatting

* Update src/demos/zdemo_calendar.prog.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/demos/zdemo_calendar.prog.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2022-01-02 12:05:16 +01:00
sandraros
9ee01464fc
keyword_case upper (#942)
* keyword to upper case (using class builder)

(methods in zcl_excel_style_changer were automatically reordered)

* keyword upper case of local implementations

* Update src/zcl_excel_style_changer.clas.abap

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2022-01-02 08:23:57 +01:00
Lars Hvam
98d67652a9
refactor to use new collection classes (#937)
* refactor to use new collection classes

closes #880

* Update src/zcl_excel.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_comments.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_data_validations.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_drawings.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_worksheets.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_writer_csv.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_writer_huge_file.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_writer_xlsm.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_writer_2007.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_columns.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_fill_template.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_worksheet.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_ranges.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_reader_2007.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_rows.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_styles.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_styles_cond.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2022-01-01 12:46:10 +01:00
sandraros
f16a3cc9b2
Allow more than 255 sheets per workbook (#934)
Fix #530

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-12-29 05:42:09 +01:00
Gregor Wolf
2818544c9a
Domain for ZEXCEL_SHEET_TITLE (#936) 2021-12-28 23:35:01 +01:00
sandraros
9e90a307c1
Demo WebDynpro: ICF, button text, MIME type (#928)
* * add ICF Service to demo webdynpro

* WDA MIME application/vnd.openxmlformats-officed...

* * empty button text -> text "download"

* Custom "download" OTR text for Demo WDA

* Demo WDA button text Download dynamically (no OTR)

(to overcome issue https://github.com/abapGit/abapGit/issues/5232)

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2021-12-27 21:54:21 +01:00
Lars Hvam
26a42d8bdb
ddic, fix UUID and GUID_16 (#924)
* ddic, fix DOMA UUID

* fix DTEL GUID_16

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-12-25 21:22:49 +01:00
Abo
c55cf528fd
fix typo: hasehd -> hashed (#927)
* fix typo: hasehd -> hashed

* make "hasehd" types private

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-12-24 19:20:40 +01:00
Lars Hvam
dea6cfd9f0
refactor all MOVE statements (#926)
* refactor all MOVE statements

* fix whitespace

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-12-24 18:11:40 +01:00
Abo
a35c91face
remove DTEL INTTYPE (#898)
* first draft - remove INTTYPE

* rewrite inttype as char

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-12-24 17:02:52 +01:00
Pascal Möller
49938b0c60
Fix: after BIND_TABLE no columns in object (#731)
* Fix: after BIND_TABLE no columns in object

* fix 4 methods get_{rows|columns}[_iterator]

Co-authored-by: Gregor Wolf <gregor.wolf@gmail.com>
Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
Co-authored-by: John Doe <sandra.rossi@accenture.com>
Co-authored-by: sandraros <sandra.rossi@gmail.com>
2021-12-24 16:21:42 +01:00
sandraros
3df52da4c2
+ change_area_style (same as change_cell_style, but for area) (#922)
* + change_area_style

New method change_area_style as combination of change_cell_style and set_area_style

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2021-12-24 12:46:31 +01:00
sandraros
df709ace6a
customizable demo 25 + backend in demo 37 (#909)
and removing demo 25 from zdemo_excel (no interest).

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2021-12-21 10:00:09 +01:00
sandraros
6efa4c6904
Reflect new abap2xlsx project URL (#920) 2021-12-18 18:20:04 +01:00
Christian Günter
a479c0b337
Fix enhancement categories of several structures (#918)
Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-12-18 12:22:57 +01:00
Abo
74a3559b28
Fix links after org. move (#919)
* change links to new org

* fixed links

* fixed links
2021-12-15 06:54:32 +01:00
sandraros
0f51d6d884
refactor method change_cell_style in zcl_excel_worksheet (#904)
* refactor worksheet change_cell_style

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2021-12-14 22:57:06 +01:00
Christian Aasan
7898a21548
Correcting broken links after moving of repo (#916)
The link to the documentation and abapGit installation instructions are broken after the move.
2021-12-12 15:37:37 +01:00
sandraros
cb315c5572
Reader fails for workbook with chart (#910)
* Reader fails for workbook with chart

fix #790

* pretty printer

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-12-12 13:21:01 +01:00
sandraros
6532e0e0b5
+ worksheet columns right-to-left (#911)
fix #890

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-12-12 09:14:17 +01:00
Lars Hvam
41196fd58a
README.md, update urls (#914) 2021-12-12 09:13:19 +01:00
sandraros
6ffcba1aa1
# Huge writer error height/hight and fit to page (#912)
Fix #553

Co-authored-by: sandraros <sandra.rossi@gmail.com>
2021-12-11 11:21:50 +01:00
sandraros
3eaf645fe2
Error on year 2021 -> 2020 (#901) 2021-12-04 12:14:02 +01:00
Lars Hvam
adde441cd2
remove use of DOMA INT2 (#899)
use builtin type instead, ref #692

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-12-03 15:25:17 +01:00
Lars Hvam
730ab2f174
remove use of DTEL DSTRING (#900)
use builtin type instead, ref #692

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-12-03 12:21:52 +01:00
sandraros
a5a1d65c3a
changelog (#887)
* zcl_excel_apack version 7.14.0

* Create changelog.txt

* Proposing a bigger changelog FWIW

* zcl_excel=>version = '7.14.0'

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2021-12-03 09:58:01 +01:00
sandraros
3167c6a8f2
huge reader reading cells multiple styles (#897)
* huge reader reading cells multiple styles

Fix #614

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2021-11-29 14:40:22 +01:00
sandraros
d7011f715c
Fix #893
* first part

* second and last part

Co-authored-by: sandraros <sandra.rossi@gmail.com>
2021-11-28 20:25:35 +01:00
Mike Pokraka
dbd260da2c
Add exeption handling (#889)
* Add exeption handling

* Lint fixes

* Revert back keywords -> upper case

(test classes of zcl_excel_worksheet)

* revert pretty print->diff shows only excp handl

proposing to create a different pull request with only pretty print

* proposing tiny fixes

1) a few alignment fixes
2) ls_message renamed to lv_message
3) message ... type 'E' -> message ... type 'I' display like 'E' to avoid short dumps

Co-authored-by: John Doe <sandra.rossi@accenture.com>
Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-11-24 19:40:45 +01:00
Abo
68707e1469
split convert_column2alpha (#892) 2021-11-21 16:44:10 +01:00
sandraros
8f65718db4
SET_AREA/SET_AREA_FORMULA: set value or formula for whole area instead top/left only (#869)
* Fix #867

* Behavior to depend on ip_merge / ip_area parameters

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2021-11-14 18:36:15 +01:00
Lars Hvam
fd83cbc112
extract font width logic to new class (#882)
* extract font width logic to new class

* rename importing parameters

* fixes

* Update src/zcl_excel_font.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_font.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_worksheet.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_font.clas.testclasses.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* Update src/zcl_excel_font.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

* fix syntax

* Update src/zcl_excel_font.clas.abap

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-11-11 10:19:41 +01:00
Lars Hvam
ea40b6860e
DDIC reference fixes (#884)
* DATS -> D, and propagate exceptions to caller

* replace sydatum and syuzeit

* ZEXCEL_CONDITIONAL_ABOVE_AVG, change to builtin ty

* fix ZEXCEL_DOCSECURITY

* fix NUMC3

* fix numc3

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-11-07 20:44:40 +01:00
Lars Hvam
d80521c747
add collection classes (#883)
* add collection classes

first step of #880

* pp
2021-11-07 20:33:46 +01:00
Abo
74345edd32
split tests for shift_formula (#886) 2021-11-07 15:57:54 +01:00
Lars Hvam
d60571434d
worksheet: remove unused header variable (#876)
* workseet: remove unused header variable

* pretty print with SE80

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-11-06 17:23:36 +01:00
Lars Hvam
a83d322a87
pretty print zcl_excel_worksheet.clas.testclasses (#877)
Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-11-06 17:02:42 +01:00
Lars Hvam
a82056b285
change use of DOMA INT1 to builtin (#879) 2021-11-06 12:18:56 +01:00
Lars Hvam
ecfce5831b
change to XSDBOOLEAN (#881) 2021-11-05 17:50:35 +01:00
Lars Hvam
32781d2463
replace DOMA FLAG with ABAP_BOOLEAN (#870)
#692
2021-11-05 15:31:56 +01:00
Lars Hvam
689d9c7b5b
DTEL, change to builtin STRING (#863)
Change uses from DOMA STRING to builtin STRING
#692
2021-11-05 15:31:10 +01:00
Lars Hvam
fc211853d2
fix syntax error (#873)
* enable syntax check

* fix syntax error

* additional checks

* upd
2021-11-05 13:28:15 +01:00
Abo
052cd39a4f
solves part of #859 - calculate_cell_distance (#871) 2021-11-05 05:14:27 +01:00
sandraros
9b6bf15277
SET_CELL_FORMULA: set formula even if cell was uninitialized (#868)
* Fix #866

Co-authored-by: Abo <andrea@borgia.bo.it>
Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-11-04 19:54:50 +01:00
Abo
d26a1f32fa
WIP #859 - split tests for is_cell_in_range (#865)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-11-04 06:37:06 +01:00
Abo
d7930494b5
WIP #859 - split tests for convert_column2int (#864) 2021-11-04 06:34:25 +01:00
sandraros
3b2423ea29
fix #844 to remove all macros (#860)
* fix #844 to remove all macros 

* abaplint.json avoid_use/define false -> true

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2021-11-01 16:57:17 +01:00
AntonSikidin
dc3962a402
Add ability to generate report from template (#669)
write tool to automate abap2xlsx

fix merged cells

code style

Convert keyword to UPPER case

adapt code to 702

New proposal

fix of Lint errors

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2021-10-30 21:49:50 +02:00
Domi Bigl
6d12c57f27
fix print titles range read and write #801 (#862)
* fix print titles range read and write

* remove empty line in method definition
2021-10-30 19:54:46 +02:00
sandraros
5da41aaab2
Fix #486 Multiple Styles in One Cell ("rich text format") (#852)
* Final modifications - All good

* Lint 7.02 + reader huge was forgotten

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: sandraros <sandraros@gmail.com>
2021-10-24 16:07:58 +02:00
sandraros
b31f1730d2
Fix #745 Bind ALV with non-displayed SALV data (#837)
* Fix #745 Bind ALV with non-displayed SALV data

Fix #745

* Make solution potentially tolerant to old 7.02

Co-authored-by: sandraros <sandraros@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2021-10-17 20:25:23 +02:00
Abo
fb4c62d598
remove usage of CHAR5 ( WIP #692 ) (#856)
* remove usage of CHAR5

* remove type from class local types

* move type declaration

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
Co-authored-by: Domi Bigl <dominik.bigl@cadaxo.com>
2021-10-17 20:08:39 +02:00
Abo
b1d569ac1d
remove use of CHAR8 (#858)
Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-10-17 11:22:55 +02:00
Abo
3237359c85
remove usage of CHAR7 (#857)
Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-10-17 11:15:32 +02:00
Abo
ac0ae6eca0
remove usage of CHAR3 (#855)
Fix #692
2021-10-17 10:42:55 +02:00
sandraros
ec3f73c0e2
Fix #836 new feature "Ignored Errors" (#839)
* Fix SHIFT_FORMULA (issues #727 and #728) (#830) (#838)

Fix SHIFT_FORMULA (issues #727 and #728)

Co-authored-by: Abo <andrea@borgia.bo.it>

Co-authored-by: Abo <andrea@borgia.bo.it>

* Fix #836 new feature "Ignored Errors"

Fix #836

* Lint xsdbool -> boolc
* lint expression as argument -> variable as argumen
* lint remove constructor expression

* Update src/zcl_excel_writer_2007.clas.abap

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* Update src/zcl_excel_writer_2007.clas.abap

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* fix previous merge mistake

Co-authored-by: Abo <andrea@borgia.bo.it>
Co-authored-by: sandraros <sandraros@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-10-16 13:22:38 +02:00
sandraros
111bb57804
Ignore invalid Excel Table names (#793)
fix bug #733

Co-authored-by: sandra <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2021-10-16 11:00:33 +02:00
sandraros
904a014609
Fix #723 Calculated Columns - Replace PR 734 (#843)
* Fix #723 Calculated Columns - Replace PR 734

Co-authored-by: sandraros <sandraros@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-10-15 17:22:00 +02:00
sandraros
de39aa842a
Modif done but tests not done (#851)
Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-10-15 15:42:33 +02:00
Domi Bigl
c24196bcd0
add better error message for logical path (#850) 2021-10-15 09:19:37 +02:00
Lars Hvam
98a251a859
zcl_excel_common: refactor unit tests (#833)
* split date_to_excel_string into one test per metho

* split excel_string_to_time

* refactor time_to_excel_string
2021-10-11 20:14:41 +02:00
Abo
66a45b840a
remove CHAR255 ( WIP #692 ) (#847)
DTEL, "STRU" and CLAS

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-10-09 20:04:05 +02:00
Abo
a959c0c69a
remove uses of CHAR20 ( WIP #692 ) (#846)
both DTEL and "STRU"

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-10-09 19:54:19 +02:00
Abo
b8be9c5de1
remove uses of CHAR2 (#845)
DTEL and in class
2021-10-09 19:42:53 +02:00
Domi Bigl
372fe61c75
add DECFLOAT16 and DECFLOAT34 (#834) 2021-10-09 11:57:38 +02:00
Domi Bigl
2cda265b4c
clear exporting parameter GET_CELL #789 (#840)
* clear exporting parameter GET_CELL #789

* satisfy linter

* satisfy linter - WHILE
2021-10-09 11:21:07 +02:00
Paul Hardy
d19ac690c6
Fix for Issue #783 - Conditional Formatting for Cells that "Begin With" a certain string - Third Attempt (#786)
* Issue 783 - Third Attempt
* Extension to fix all 4 text-specific operators

Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2021-10-09 09:49:17 +02:00
Lars Hvam
679950b498
DDIC: pane state and type change to builtin string (#835)
Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-10-08 22:58:08 +02:00
Lars Hvam
9bbc35a3ac
delete unused customui objects (#832)
closes #803

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-10-08 22:56:13 +02:00
Abo
d722718970
fix #826 (#841) 2021-10-08 22:53:30 +02:00
Abo
c4a97b44b9
Remove dtel char1 (#842)
* removes uses of CHAR1 data el. ( WIP #692 )
2021-10-08 20:01:12 +02:00
sandraros
f7151f3d39
Fix SHIFT_FORMULA (issues #727 and #728) (#830)
Fix SHIFT_FORMULA (issues #727 and #728)

Co-authored-by: Abo <andrea@borgia.bo.it>
2021-10-07 19:47:35 +02:00
Lars Hvam
16430d17dd
ZCL_EXCEL_COMMON: less DDIC references (#828)
* ZCL_EXCEL_COMMON: less DDIC references

* Update zexcel_s_org_rel.tabl.xml

* fix

* remove more DDIC references from testclasses
2021-10-07 06:33:48 +02:00
Lars Hvam
ca69b38a79
Less DDIC references (#831)
* CHAR3

* fix some DTELs

* fixes

* fix ZEXCEL_ALIGNMENT

* fix ZEXCEL_BORDER

* fix ZEXCEL_STYLE_COLOR_ARGB

* fixes
2021-10-07 06:32:01 +02:00
Lars Hvam
e9386fd022
refactor some ddic uses to builtin (#824)
reference = #692
2021-10-06 08:08:11 +02:00
Lars Hvam
e0052bbb9e
zcl_excel_style_number_format: refactor macro to method (#818)
* zcl_excel_style_number_format: refactor macro to method

* fix whitespace
2021-10-06 08:07:29 +02:00
sandraros
1076b86547
Fix #547 autofilter messed up if several sheets (#821)
Fix #547

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-10-04 16:50:50 +02:00
sandraros
b9a248dcb4
Fix issue #819 read/write autofilter values (#820)
* Fix issue #819 read/write autofilter values

Fix issue #819

* Code cleanup

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2021-10-04 16:47:32 +02:00
sandraros
90992efb50
Fix #546 autofilter on row>1 and one-row height (#822)
Fix #546

Co-authored-by: sandraros <sandra.rossi@gmail.com>
2021-10-04 12:20:18 +02:00
Lars Hvam
e7d34b65c1
delete unused DDIC objects (#817)
* delete unused DDIC objects

#799

* enable rule unused_ddic

* delete additional objects

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-10-03 11:32:37 +02:00
Lars Hvam
af1448dbbf
refactor use of INT4 DOMA (#816)
Instead of referring to DOMA INT4, this changes the DTELs to use the built-in type INT4 instead
2021-10-03 11:11:42 +02:00
Lars Hvam
ac5c95ace7
change EXIT to RETURN, where applicable (#814) 2021-09-26 18:43:53 +02:00
Lars Hvam
d66e0d5cc7
zcl_excel_common: refactor STATICS to CLASS-DATA (#811)
* rename statics

* move to class-data

* move to private

* Update src/zcl_excel_common.clas.abap

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
2021-09-26 13:43:36 +02:00
sandraros
03faa9500f
urgent fix of PR 805 (syntax error in write class) (#812)
Co-authored-by: sandraros <sandra.rossi@gmail.com>
2021-09-26 12:45:08 +02:00
sandraros
868c90ffdc
Fix issue 673 trailing spaces of cell values lost (#805)
* indicate preserve attribute in Excel writer

fix #673

* Update src/zcl_excel_writer_2007.clas.abap

Not sure to understand why it's needed, but no problem to do that

Co-authored-by: Lars Hvam <larshp@hotmail.com>

Co-authored-by: sandra <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-09-26 10:17:32 +02:00
Lars Hvam
88d75bfe8a
move zexcel_s_org_rel to demos (#810)
Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-09-26 10:07:05 +02:00
Lars Hvam
9cc7da37cb
upadte to latest abapGit format (#808)
https://github.com/abapGit/abapGit/blob/main/changelog.txt

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
2021-09-26 10:03:34 +02:00
Lars Hvam
24ae5ecef2
zcl_excel_common: unit tests cleanup (#806)
* common: unit tests cleanup

* refactor macro to method

* refactor macro to method

* delete old commented lines (method definitions char2hex and number_to_excel_string)

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
Co-authored-by: sandraros <sandra.rossi@gmail.com>
2021-09-26 09:57:36 +02:00
Lars Hvam
10b8df9b2f
remove use of aunit class (#809)
* remove use of aunit class

* aunit
2021-09-26 09:40:24 +02:00
sandraros
e72e4ea6a9
Fix issue 704 lint sy fields modified (#802)
* Do not change sy fields anymore (abaplint)

Fix #704

* forgotten case in zcl_excel_writer_2007

#704

Co-authored-by: sandra <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-09-23 07:19:02 +02:00
sandraros
ae76133265
abapGit diff says source has changed (#804)
In github repository, ZDEMO_CALENDAR_CLASSES seems to not contain a newline character at the end. When pulling it, abapGit creates ABAP source code with newline character at the end -> abapGit indicates a difference. PR to push the newline character at the end.

Co-authored-by: sandra <sandra.rossi@gmail.com>
2021-09-19 13:17:59 +02:00
Lars Hvam
5fa4f838b6
update abaplint configuration to latest (#798) 2021-09-19 11:23:22 +02:00
sandraros
8abf2adf9f
Move non-Cloud code to separate package (#795)
Fix of issue #717

Co-authored-by: sandra <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-09-19 09:56:37 +02:00
sandraros
41d5553181
Replace useless ZCL_EXCEL_AUNIT (#796)
Fix #715. Replaced with CL_ABAP_UNIT_ASSERT. Class ZCL_EXCEL_AUNIT deleted.

Co-authored-by: sandra <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-09-19 09:53:58 +02:00
sandraros
69d4883773
Do not change sy fields anymore (abaplint) (#797)
Fix #704

Co-authored-by: sandra <sandra.rossi@gmail.com>
2021-09-19 09:49:46 +02:00
sandraros
3b80566fa8
Fix so that empty Excel date -> ABAP date 00000000 (#792)
issue #703

Co-authored-by: sandra <sandra.rossi@gmail.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2021-09-14 22:57:45 +02:00
Abo
1cb2e42328
remove remaining usage of XFELD (#775)
followup #714
WIP #692

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-09-12 07:14:05 +02:00
Abo
530d4661f2
first draft of the contributing guidelines ( WIP #768 ) (#769)
* first draft of the contributing guidelines

* added link to coding guidelines

* clarified use of github for bugreports vs SCN for usage questions

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-08-21 11:00:16 +02:00
Abo
0064ae0a40
remove usage of CHAR07 domain (#754)
* remove CHAR07

See #692

* fixed formatting

Co-authored-by: Gregor Wolf <gregor.wolf@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-08-16 08:52:21 +02:00
Mike Pokraka
2710dd9717
Pretty print (#781)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-07-28 00:33:22 +02:00
sandraros
6edf73b01d
Create coding-guidelines.md (#778)
#773
2021-07-27 12:32:23 +02:00
Abo
e03fd5596d
remove usage of CHAR08 DTEL (#776)
WIP #692

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-07-10 17:49:40 +02:00
Abo
bd8f75537f
remove usage of CHAR10 domain (#777)
WIP #692
2021-07-10 17:30:23 +02:00
Abo
2120bc00ee
remove usage of OS_BOOLEAN (#774)
I could find only one use of the OS_BOOLEAN DTEL in all of abap2xlsx, precisely in zdemo_excel_outputopt_incl where it is used for the return value of a standard class method, cl_send_request->send.

"send" calls "release" which calls "submit" which finally sets e_sent_to_all to X unless one recipient has issues, in which case it is cleared: for this reason, replacing "IS INITIAL" with "= abap_false" is incorrect and the test should be inverted.
2021-07-10 11:40:59 +02:00
Abo
beaac0a28a
remove unused DOMA (#772)
fix #770
2021-07-09 18:35:40 +02:00
sandraros
e029864bbb
Wrongly changed file size #722 (#741)
* Fix #722 worksheet dimension (last empty rows)

* Fix #722 reduce DIFF quantity (indentations)

Co-authored-by: Jane Doe <Jane.Doe@World.com>
Co-authored-by: Abo <andrea@borgia.bo.it>
2021-07-03 19:07:18 +02:00
Gregor Wolf
0a3beaf7f8
fix #765 and pretty pring (#766) 2021-06-29 15:39:35 +02:00
sandraros
5110f924b4
Fix Vietnamese/Emoji not rendered #756 (#757)
Fix of bug #756
Vietnamese/Emoji should now be rendered in systems before ABAP 7.52

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Gregor Wolf <gregor.wolf@gmail.com>
2021-06-26 14:18:40 +02:00
sandraros
8c92b12d6f
Fix 474 newline in table header (#763)
* First solution, but wrong

Excel saves table1.xml with _x000d__x000a_ but abap2xlsx doing the same thing makes Excel say it's wrong!? To be analyzed...

* non-final solution

* Fix newline now accepted in table header

Fix of #474, \r\n can now be used in field catalog of table header in bind_table to display text on several lines. ZDEMO_EXCEL22 demonstrates it in first column "Flight Number" on 2 lines.

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Gregor Wolf <gregor.wolf@gmail.com>
2021-06-21 23:24:30 +02:00
sandraros
f4312ebf5d
Fix #761 (#762)
These lines are added to method SET_CELL of ZCL_EXCEL_WORKSHEET:
    IF lv_value CS '_x'.
      " Issue #761 value "_x0041_" rendered as "A".
      " "_x...._", where "." is 0-9 a-f or A-F (case insensitive), is an internal value in sharedStrings.xml
      " that Excel uses to store special characters, it's interpreted like Unicode character U+....
      " for instance "_x0041_" is U+0041 which is "A".
      " To not interpret such text, the first underscore is replaced with "_x005f_".
      " The value "_x0041_" is to be stored internally "_x005f_x0041_" so that it's rendered like "_x0041_".
      " Note that REGEX is time consuming, it's why "CS" is used above to improve the performance.
      REPLACE ALL OCCURRENCES OF REGEX '_(x[0-9a-fA-F]{4}_)' IN lv_value WITH '_x005f_$1' RESPECTING CASE.
    ENDIF.

Co-authored-by: sandraros <sandra.rossi@gmail.com>
2021-06-21 23:20:57 +02:00
Lars Hvam
18ff2dfc3c
update linter config to latest (#759) 2021-06-04 15:48:13 +02:00
Jaime Rodriguez Capote
32306262b2
Remove 15 chars. limit at encrypt password (#758) 2021-06-03 17:31:06 +02:00
sandraros
7b48cd0d90
fix #687 for reading range of hyperlinks (#750)
fix-#687-for-reading-range-of-hyperlinks

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Gregor Wolf <gregor.wolf@gmail.com>
2021-05-21 21:15:49 +02:00
sandraros
6eac42678c
Unicode characters not written to excel (#743)
* Fix output of "non-XML" characters 672 and 688

Fix #672 ("vietnamese") and #688 ("emoji").
It works for a recent system but unfortunately I can't test it on a old system to make sure that the new method `is_support_non_xml_characters` returns false.

* Remove useless code and rename variables

* Demo "Hello World" in 10 major languages + Emoji

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Gregor Wolf <gregor.wolf@gmail.com>
2021-05-21 20:28:17 +02:00
AlexandreHT
85dd442551
Update of DEMO31 as advised in #558 (#744)
Set_auto_size needs lo_worksheet->calculate_column_widths( ) to work
2021-05-19 22:42:22 +02:00
Abo
7fd9e3cbe0
remove CHAR01 (#753)
see #692
2021-05-17 11:21:17 +02:00
Abo
53b19eda8d
remove "BOOLEAN" domain (#746)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-04-19 13:14:42 +02:00
Abo
adf2c63ec8
use ZABAP2XLSX message class (#752)
related to #659
2021-04-19 12:55:00 +02:00
Abo
a9be231d99
remove CHAR_02 domain (#747)
WIP #692

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-03-20 14:20:06 +01:00
Abo
6b7d38cd8b
abapGit format update (#748) 2021-03-20 14:19:03 +01:00
sandraros
a0e234958b
AUnit warning zcl excel reader huge file "# au > "#au #739 (#742)
* Fix #739 AUnit warning ZCL_EXCEL_READER_HUGE_FILE

Useless warning in ABAP Unit tests of ZCL_EXCEL_READER_HUGE_FILE (reason: extra space "# AU -> "#AU) #739

* remove #AU everywhere in abap2xlsx

Co-authored-by: Jane Doe <Jane.Doe@World.com>
Co-authored-by: sandraros <sandra.rossi@gmail.com>
2021-02-21 16:12:15 +01:00
Abo
0a907d27de
Remove doma ZEXCEL_BOOLE01 (#738)
* remove ZEXCEL_SHEET_PROTECTION_BOOL

this dtel uses doma ZEXCEL_BOOLE01

* remove ZEXCEL_CONDITIONAL_SHOW_VALUE

this dtel uses doma ZEXCEL_BOOLE01

* ZEXCEL_BOOLE01

it was used by:
dtel ZEXCEL_SHEET_PROTECTION_BOOL
dtel ZEXCEL_CONDITIONAL_SHOW_VALUE

* fixed spurious edit of .abapgit.xml
2021-02-21 11:21:07 +01:00
Pascal Möller
bd8975ec66
Possibility to get the fieldcatalog with mandt (#732)
* Possibility to get the fieldcatalog with mandt

In some cases i need the mandt in the table.
Normally it is hidden but can be displayed if necessary

* adjusted code style
2021-02-10 09:08:57 +01:00
Abo
976c3c1d3c
cleanup types in zif_excel_book_protection (#721)
* cleanup types in zif_excel_book_protection

fixes #720

* cleanup types in zif_excel_book_protection 

fixes #720
2021-02-04 14:12:03 +01:00
Abo
ccd0fb8740
fixes #716 (#719)
* changed demo links

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-01-09 12:07:10 +01:00
Abo
f11a2762cf
fixes #716 (#718)
* removed broken screenshots on plinky.it (parked domain)
* added disclaimer
2021-01-09 11:48:36 +01:00
Abo
6c92a7f1ee
remove XFELD (#714)
see https://github.com/sapmentors/abap2xlsx/issues/692
2021-01-04 16:59:45 +01:00
Gregor Wolf
41823b64c9
Dynamic prefill of date (#713) 2021-01-02 10:35:42 +01:00
Stefan Rutzmoser
719fe85ef8
Fix in demo 11: Field-symbol usage (#712)
Do not rely on IF ... IS ASSIGNED for a field symbol inside a LOOP
2020-11-19 10:10:48 +01:00
Abo
482d04b1b3
Update abapGit-installation.md (#711) 2020-11-18 05:59:50 +01:00
Gregor Wolf
240f8cc126
Improve Documentaiton (#710)
* Cleanup dead links in Wiki

* Prefil question title with [abap2xlsx]
2020-11-11 10:22:47 +01:00
Gregor Wolf
7dd3e882fd
Improvements to the readme and documentation (#709) 2020-11-10 19:04:54 +01:00
Stefan Rutzmoser
1c276c6027
Fix package errors (#708)
* Fix package check errors

* Bump version number to 7.2.0
2020-11-10 18:21:38 +01:00
Stefan Rutzmoser
74c1a543cd
Feature: Enable custom converters (#707)
* Feature: Enable custom converters

Added method get_supported_class to ZIF_EXCEL_CONVERTER.

Implement your own converter by implementing this interface
and tell via the new interface method which class you support.

All instanceable implementations of the interface will be found
automatically.

* Fix abapLint issues
2020-11-05 13:16:47 +01:00
Lars Hvam
5bc24b234c
update linter config, omit RECEIVING (#705) 2020-10-10 17:37:13 +02:00
Domi Bigl
17461f911b
move some includes and WDA to demo package (#702) 2020-10-07 12:15:17 +02:00
Domi Bigl
7297f97349
harmonize demo report titles (#700) 2020-10-01 22:29:48 +02:00
Domi Bigl
5a9408b685
Change package assignment of demo reports (#699)
* change package assignment of demo reports

* change package assignment of demo reports
2020-10-01 21:16:28 +02:00
Lars Hvam
c36800ee49
update linter config, plus remove identical N01 condition (#696)
* update linter config, plus remove identical N01 condition

* add deps
2020-09-19 08:14:14 +02:00
Lars Hvam
5eae938b01
replace boolean with abap_bool (#694) 2020-09-19 08:11:03 +02:00
Lars Hvam
100e534c4a
update to latest abapGit format (#693) 2020-09-17 17:56:42 +02:00
Lars Hvam
09f4cb0550
readme: remove badge (#691) 2020-09-17 17:45:05 +02:00
Domi Bigl
b48e0bf3cf
increase number of fields in fieldcat - CONVERTER (#683)
fixes #680
2020-08-13 19:27:52 +02:00
Lars Hvam
88ac30f84c
update linter config, remove some unused variables (#685)
* update linter config

* teched9 demo, cleanup unused variables

* 28 and 29, cleanup unused variables

* remove few more
2020-08-12 08:48:15 +02:00
psio3123
3e780bb65e
Fixed ShowDropDown Constant (#670)
Enable display of DropDownList when using inline value list

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-08-09 12:19:33 +02:00
psio3123
701e8a197e
Enable ValidationStyle (#671)
Enable Validation Style (Error/Warning/...) for Value Lists

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-08-09 12:16:28 +02:00
Domi Bigl
37ad2fd68a
improve handling of multiple CF rules and ranges (#682) 2020-07-21 22:22:20 +02:00
srps
5a33253f0e
Bug fix - add INT4 support (#679)
* Bug fix - add INT4 support

* Update abaplint.json

* Update abaplint.json

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-07-20 20:58:41 +02:00
Domi Bigl
3b7f7f7b04
get INT8 typekind dynamic (#676) 2020-07-02 06:39:20 +02:00
JuvickAul
1c7e527a3b
Reading corrupted xlsx file (#663)
A cell contained text in the original template. It was lated deleted. But apparently a link to SharedStrings from the cell was not removed. An exception occurred after downloading and opening the file via ZCL_EXCELL_READER_2007 class. All operations until ZCL_EXCEL_READER_2007 were done using other tools.
2020-04-28 17:28:58 +02:00
Lars Hvam
0de59b65c7
upper case interfaces (#662)
* upper case interfaces

* add some naming conventions
2020-04-26 21:07:54 +02:00
Lars Hvam
49d78bfe35
remove tabs, remove seq empty lines (#660)
LGTM
2020-04-19 16:15:07 +02:00
Dennis Schaaf
718b15091e
ATC check cleared (#657)
* ATC check cleared

removed SELECT * from USR01
removed empty SELECT...ENDSELECT on URS01

* Removed Inerface method implementation

ZIF_EXCEL_READER~CAN_READ_FILE was implemented but this method is not defined anymore in the Interface.
ATC check failed with incorrect syntax.
Solution: Method implementation deleted.
2020-04-17 11:06:58 +02:00
bhavesh4321
c48484d6dc
Update zcl_excel_writer_2007.clas.abap (#654)
* Update zcl_excel_writer_2007.clas.abap

* dummy change

* revert

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-03-24 08:20:08 +01:00
Stefan Rutzmoser
1d76e44a83
Fix: Support ranges without stop row/column (#649)
Co-authored-by: Stefan Rutzmoser <Stefan.Rutzmoser@msg.group>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-03-17 08:03:31 +01:00
Lars Hvam
efdcf131b0 update abaplint configuration 2020-03-02 12:09:38 +01:00
Lars Hvam
8ea5ab07ea update abaplint config to latest (#645)
* update abaplint config to latest

* remove whitespace
2020-01-23 09:00:14 +01:00
Manuel Laggner
df80e6fd74 remove illegal files from the XML (#644)
according to the SAP note 1750204 we can use the method IF_IXML_OSTREAM->SKIP_NON_XML_CHARACTERS to strip out illegal characters for XML rendering.
Since this method needs a kernel version with builtin support, I've made the call dynamically in a try/catch block to support systems with a lower kernel too.

This patch fixes the issues from #298 (at least for us)
2020-01-22 14:40:44 +01:00
Lars Hvam
b9a787afd6 fix REPORT names (#642) 2020-01-04 11:50:47 +01:00
Lars Hvam
3d0338aa8a enable additional abaplint rules (#641) 2020-01-04 11:07:17 +01:00
Gregor Wolf
0446c85866
Update link and translation for calendar (#640) 2020-01-01 18:22:33 +01:00
striezl
36ea883d33 Fix #637 (#638)
LGTM. Thanks.
2019-10-30 07:20:30 +01:00
IBN
5053bf93a2 Issue #626 (#636) 2019-10-05 14:13:42 +02:00
Enno
2f7b9482d9 added description column for demo show report (#635)
* added description column for demo show report

* added description column for demo show report 2

2nd try
2019-10-01 16:49:07 +02:00
Gregor Wolf
2399f4aadd
Fill second sheed with data to avoid print issues (#631) 2019-09-29 19:57:36 +02:00
Gregor Wolf
7712316e9d
Fill second sheed with data to avoid print issues (#630) 2019-09-29 19:52:35 +02:00
mfallen
d104e020f3 Error headerfooter (#603)
Error (again?) when using more than 1 sheet
2019-09-29 19:07:29 +02:00
AtomKrieg
8938dba50f remove boilerplate: create/render ixml_document (#605)
also clear "dead code"
2019-09-29 17:40:48 +02:00
Gregor Wolf
3bee79156d
No line if empty by kwaishang (#629)
* Update zcl_excel_worksheet.clas.abap

Allow int8 type columns

* Option to create empty file 

Allow to create empty excel file even if input table is empty

* Update zcl_excel_worksheet.clas.abap

Add the option to create the file or not if the input table is empty

*  Test report zdemo_excel43 

When using CSV mainly, if the input table is empty, the csv file contained a line with empty fields and separators.
This fooled some automation process thinking there's data to process in the file.
When optional input parameter "iv_no_line_if_empty" of method "zcl_excel_worksheet->bind_table"  is checked, there's no more empty line in this case.

* User demo report 44 instead of 43

Mistake in test program name

* Fix internal renaming of test report 44

* Correct filename and test both cases

* Include test 44
2019-09-29 17:03:03 +02:00
striezl
e02733290f Fix as discussed in issue #623 (#624)
Convert exponential number from excel to ABAP datatype P (packed number)
2019-09-24 22:37:49 +02:00
Dennis Schaaf
84aa650b8e Bugfix range conversion (#628)
When reading xlsx and autofilters are being applied a dump occured when autofilter range was defined like "Sheet1!#REF1"
Such ranges are now ignored so that the xlsx can be read.
2019-09-24 22:35:12 +02:00
striezl
1da0be9fb9 Fix Issue #610 (Error if last column of last row is empty) (#620)
* #610 Error handling in ZCL_EXCEL_WORKSHEET->GET_TA

* #610 Error handling in ZCL_EXCEL_WORKSHEET->GET_TA

* Revert "#610 Error handling in ZCL_EXCEL_WORKSHEET->GET_TA"

This reverts commit 794320fc1b.

* #610 Error handling in ZCL_EXCEL_WORKSHEET->GET_TA

* rebase abaplint.json
2019-09-05 01:05:47 -07:00
Gregor Wolf
f5a6453e3a Adjust to current abapGit format 2019-09-04 21:28:31 -07:00
Lars Hvam
0134bd1177
fix badge 2019-09-05 06:27:44 +02:00
larshp
370cb11c4a update abaplint config 2019-09-04 21:26:01 -07:00
sephrat
789d41ff79 Updated old repository link 2019-06-27 06:27:53 -07:00
Gregor Wolf
e3784a2abd
Merge pull request #601 from mfallen/headerfooter
Redefinition Header Footer Image
2019-02-25 15:48:45 +01:00
mfallen
8006c97ceb Pretty Print of zcl_excel_worksheet 2019-02-25 10:25:15 +01:00
mfallen
edb50701b1 Redefinition Header Footer Image
Get errors when using header/footer in more than one sheet
2019-02-21 15:45:27 +01:00
Gregor Wolf
8e87d303a5
Merge pull request #599 from gregorwolf/master
New transport version for #562
2019-02-20 17:12:25 +01:00
Gregor Wolf
ad1021f8c2 New transport version for #562 2019-02-20 17:11:40 +01:00
Gregor Wolf
cf01f333ee
Merge pull request #598 from Berreke/master
Issue #588: Unable to activate zcl_excel_writer_xlsm
2019-02-20 15:24:38 +01:00
Berreke
66b581391c
Pretty print of zcl_excel_writer_xlsm 2019-02-20 15:17:15 +01:00
Berreke
9dc478cb5b
Merge pull request #1 from Berreke/Berreke-patch-1
ZCL_EXCEL_WRITER_XLSM add required parameter
2019-02-20 14:45:40 +01:00
Berreke
4f7a64656e
ZCL_EXCEL_WRITER_XLSM add required parameter
create_xl_sheet_rels has a required parameter iv_comment_index. This was not populated in this version. When transporting the transport goes in error because he can't activate this class. adding lv_comment_index like it is in zcl_excel_writer_2007 corrects this problem.
2019-02-20 14:40:44 +01:00
Gregor Wolf
e1f8d5b268
Merge pull request #597 from gregorwolf/master
Small additions do demo, check for break-points in abaplint
2019-02-19 11:11:51 +01:00
Gregor Wolf
eb6b58118c Check for break-point 2019-02-19 11:10:30 +01:00
Gregor Wolf
225fa0b29a Add ztest_excel_image_header to demos 2019-02-19 10:09:08 +00:00
Gregor Wolf
d3fd799e5b Remove beak-point + pretty print 2019-02-19 10:08:05 +00:00
Gregor Wolf
09b6b5f162
Merge pull request #595 from mfallen/headerfooter
Header Footer Image
2019-02-19 10:55:44 +01:00
mfallen
d1c74a18e4 Update XSTRING conversion 2019-02-19 07:47:30 +01:00
mfallen
0a17f7f14a IMAGE_HEADER_FOOTER 2019-02-19 07:37:22 +01:00
mfallen
f6b2a0218d Update of Test program 2019-02-19 07:01:14 +01:00
Gregor Wolf
06d10d1f11
Merge pull request #596 from gregorwolf/master
Add ZDEMO_EXCEL_COMMENTS to demo
2019-02-18 17:21:41 +01:00
Gregor Wolf
fe4a166782
Merge pull request #594 from AtomKrieg/master
fix #587
2019-02-18 17:12:09 +01:00
Gregor Wolf
3481ca8b76 Add ZDEMO_EXCEL_COMMENTS to demo 2019-02-18 16:10:37 +00:00
mfallen
d907d03e28 Header Footer Image
including a test program
2019-02-18 07:23:15 +01:00
AtomKrieg
2cb048d5bb new abapgit
fixed some diffs
2019-02-17 21:18:37 +03:00
Gregor Wolf
66e82266c3
Add abaplint badge 2019-02-17 15:43:06 +01:00
Gregor Wolf
bca0b78d41
# 2019-02-17 15:42:39 +01:00
Gregor Wolf
a5b80e4700
Update documentation link 2019-02-17 11:47:19 +01:00
AtomKrieg
a5194c647b fix comments on second sheet
https://github.com/sapmentors/abap2xlsx/issues/587
2019-02-17 11:35:01 +03:00
AtomKrieg
ac3f47c704 Merge branch 'sapmentors-master' 2019-02-16 10:33:42 +03:00
AtomKrieg
83d4cc5dd5 Resolved merge conflict by keeping clfinal flag 2019-02-16 10:32:31 +03:00
Gregor Wolf
f3d46100a4
Merge pull request #592 from gregorwolf/master
700 support #562 and abaplint check
2019-02-11 18:39:27 +01:00
Gregor Wolf
ec08afe506 700 support#562 2019-02-11 18:36:56 +01:00
Gregor Wolf
42a85aaa18 700 support #562 2019-02-11 17:33:24 +00:00
Gregor Wolf
76f08196b3 Do not yet check for breakpoints 2019-02-11 18:29:40 +01:00
Gregor Wolf
2a5929502b abaplint 2019-02-11 18:13:26 +01:00
Gregor Wolf
ffb840e113 Merge branch 'master' of https://github.com/gregorwolf/abap2xlsx 2019-02-11 18:12:11 +01:00
Gregor Wolf
e45d2c9274 700 support #562 2019-02-11 17:11:56 +00:00
Gregor Wolf
695bd3d8b9 Merge branch 'master' of https://github.com/gregorwolf/abap2xlsx 2019-02-11 18:03:40 +01:00
Gregor Wolf
6bf5141b00 Pretty print in GET_TABLE 2019-02-11 17:03:14 +00:00
Gregor Wolf
a6fd716ae9
Merge pull request #591 from gregorwolf/master
Add example for #565
2019-02-11 17:43:46 +01:00
Gregor Wolf
e29c54d3d1 Merge branch 'master' of https://github.com/gregorwolf/abap2xlsx 2019-02-11 17:42:40 +01:00
Gregor Wolf
8a7918eb11 Add example for #565
Example how to use zcl_excel_common%3D>excel_string_to_date
2019-02-11 16:41:01 +00:00
Gregor Wolf
f975eb78b5 Link tag abap2xlsx #589 2019-02-10 09:14:00 +01:00
Gregor Wolf
7e9dca56c3 Updated links to documenation #589 2019-02-10 09:12:11 +01:00
Gregor Wolf
7ea26da291 Move complete documentation #589 2019-02-10 09:09:12 +01:00
Gregor Wolf
fd21ed8757 Test links in documentaiton #589 2019-02-10 09:05:12 +01:00
Gregor Wolf
5c6f0ae384
Merge pull request #590 from ivanfemia/larshp-patch-1
package: remove permissions
2019-02-06 09:00:48 +01:00
Lars Hvam
f7792bf272
package: remove permissions 2019-02-06 08:48:59 +01:00
Lars Hvam
2a8b65e11f
test, moving wiki to docs folder #589 2019-02-05 13:14:06 +01:00
Gregor Wolf
57862b92a4
Merge pull request #585 from Jitsuryoku/patch-1
Add unit of measurement to margin attribute description
2019-01-31 10:16:18 +01:00
Jitsuryoku
3ff18207f7
Add unit of measurement to margin attribute description
Added "in inches" to MARGIN_XXXXXX fields, as an inch is the specified unit of measurement for margins in OpenXML standard (so it cannot be different).
2019-01-31 10:16:58 +02:00
Gregor Wolf
93ca0e5a8c
Merge pull request #584 from gregorwolf/master
Implementation for #396
2019-01-29 15:42:59 +01:00
Gregor Wolf
8699a5ce48 Implementation for #396
As suggested by @Jitsuryoku
2019-01-29 15:41:43 +01:00
Gregor Wolf
aaad50440d Support for comments (Issue #180) (#583)
* Read UTF-8 input file correctly

* Classes for cell coments

As contributed by guillaumegarcia13

* Support for comments (Issue #180)

As contributed by guillaumegarcia13
2019-01-23 08:23:09 -06:00
Ivan
f06d074592
Create default.md 2019-01-23 08:20:44 -06:00
Lars Hvam
6b84761443
update to latest abapGit format (#582)
* update to latest abapGit format

* fix syntax error
2019-01-11 09:46:50 +01:00
Gregor Wolf
095f3d135b Read UTF-8 input file correctly (#576) 2019-01-09 08:29:41 -06:00
MCH123
4ca4991167 Issue #572 - Protect sheet with filter caused Excel error (#577)
Issue #572 - Protect sheet with filter caused Excel error 

Autofilter + sheet protection causes excel error.

Sheet protection must be set BEFORE autofilter in XML.
2019-01-09 08:25:50 -06:00
AtomKrieg
39c1ad1b08 extract unit test methods from zcl_excel_common (#568)
It is necessary to isolate the functionality for unit tests to another class according to the SRP principle.
2018-12-29 04:41:49 -08:00
bohrh
b57484b1fd style at a merged cell #364 (#574)
I implemented the suggested changes and are using it in a customer project. It's working lick a charm
Added demo of new set_area method
2018-12-14 10:59:14 -06:00
Ivan
71f4cee997
Merge pull request #571 from larshp/master
whitespace fixes
2018-12-07 17:11:54 -06:00
Ivan
0cee2ab2f2
Merge pull request #573 from stevecp/patch-1
Support for more than 255 conditional formatting rules
2018-12-07 17:11:38 -06:00
CodePerfectionist
a50a26c764
Support for more than 255 conditional formatting rules
Changed conditional formatting priority datafield from int1 to int4
2018-12-05 12:32:01 +01:00
larshp
59f270b682 replace tabs with spaces 2018-11-24 11:12:35 +00:00
larshp
49f7113883 remove double spaces 2018-11-24 11:09:02 +00:00
Ivan
ea61a073b6
Merge pull request #570 from larshp/master
add spaces
2018-11-21 11:01:44 -06:00
larshp
faa434ec3e add spaces 2018-11-21 17:50:54 +01:00
AtomKrieg
996dcc39d6 extract unit test methods from zcl_excel_common
It is necessary to isolate the functionality for unit tests to another class according to the SRP principle.
2018-10-29 15:55:48 +03:00
Ivan
3c578c447e
Merge pull request #566 from AtomKrieg/master
modern style exception raise
2018-10-19 15:18:51 -05:00
AtomKrieg
a150c56e0d modern style exception raise 2018-10-19 07:24:31 +03:00
Ivan
1c5db94374
Merge pull request #563 from AtomKrieg/master
Update zcl_excel_writer_2007.clas.abap
2018-09-25 12:38:27 -05:00
AtomKrieg
d150160aea
Update zcl_excel_writer_2007.clas.abap 2018-09-25 18:52:01 +03:00
Ivan
1c143fad77
Adding some comment #551
Comments
2018-09-16 17:33:38 -05:00
Ivan
39c906c88d
Close issue #551
Including fix for issue #551
2018-09-16 17:32:06 -05:00
Ivan
6781323356
Merge pull request #561 from AtomKrieg/master
propragate exceptions
2018-09-16 17:29:50 -05:00
AtomKrieg
8653c21b89
Update zcl_excel.clas.abap 2018-09-16 12:13:16 +03:00
AtomKrieg
3e51f77be3
Update zcl_excel.clas.abap 2018-09-16 12:11:27 +03:00
AtomKrieg
a1867fd71e
Update zcl_excel.clas.abap 2018-09-16 11:52:49 +03:00
AtomKrieg
284d7db7c1
Update zcl_excel_worksheet.clas.abap 2018-09-16 11:39:01 +03:00
AtomKrieg
03247f23c7
Update zcl_excel_table.clas.abap 2018-09-16 11:36:52 +03:00
AtomKrieg
2f5c41832c
Update zcl_excel_table.clas.abap 2018-09-16 11:36:01 +03:00
AtomKrieg
bf3766a170
Update zcl_excel_style_cond.clas.abap 2018-09-16 11:34:13 +03:00
AtomKrieg
558578fa5e
Update zcl_excel_reader_xlsm.clas.abap 2018-09-16 11:29:40 +03:00
AtomKrieg
4354a8accf
Update zcl_excel_reader_huge_file.clas.abap 2018-09-16 11:28:57 +03:00
AtomKrieg
0945411b94
Update zcl_excel_reader_2007.clas.abap 2018-09-16 11:21:41 +03:00
AtomKrieg
323d91929f
Update zcl_excel_legacy_palette.clas.abap 2018-09-16 11:20:12 +03:00
AtomKrieg
70d8c148ae
Update zcl_excel_drawing.clas.abap 2018-09-16 11:18:21 +03:00
AtomKrieg
539d21bbe2
Update zcl_excel_autofilter.clas.abap 2018-09-16 11:17:01 +03:00
AtomKrieg
1b7cd1a2c1
Update zcl_excel.clas.abap 2018-09-16 11:00:38 +03:00
Ivan
76c0e4ac05
Merge pull request #555 from AtomKrieg/master
time performance optimization ZCL_EXCEL_WORKSHEET->UPDATE_DIMENSION_RANGE
2018-08-19 17:27:31 -05:00
AtomKrieg
f767b80bfa
Update zcl_excel_worksheet.clas.testclasses.abap 2018-08-20 00:08:42 +03:00
AtomKrieg
bbbf511dd6
Update zcl_excel_worksheet.clas.abap 2018-08-20 00:07:56 +03:00
AtomKrieg
c3d9431b49
Merge pull request #3 from ivanfemia/master
sync with original
2018-08-19 23:44:10 +03:00
Ivan
d0af940090
Merge pull request #548 from larshp/master
Minor fixes
2018-07-30 14:20:20 -05:00
larshp
a5985ea2ea remove some unreferenced variables 2018-07-29 11:20:21 +00:00
larshp
d1532a347b remove double space 2018-07-29 11:16:53 +00:00
larshp
9f94ee3af3 remove TRY without CATCH 2018-07-29 11:14:48 +00:00
AtomKrieg
74ba49c7e3
Merge pull request #2 from ivanfemia/master
sync with original
2018-07-25 21:05:34 +03:00
Ivan
56f6fafe77
Merge pull request #544 from Pacojka/master
Performance improvement for GET_ROW/GET_COLUMN
2018-07-16 22:35:33 -05:00
pacojka
7481a0bde3 modify not working on hashtables 2018-07-16 10:30:30 +02:00
pacojka
2217873519 Added hashtables for columns and rows objects 2018-07-14 22:28:35 +02:00
Ivan
dd5018ee44
Merge pull request #538 from larshp/stuff
Fix syntax warnings in demo programs
2018-07-12 19:39:05 -05:00
Ivan
433c441420
Merge pull request #537 from larshp/ignore
ignore config.yml
2018-07-12 19:38:21 -05:00
larshp
bdd2bfeb8d Fix syntax warnings in ZDEMO_EXCEL* 2018-06-03 12:19:01 +00:00
larshp
1f896dd025 ZDEMO_CALENDAR_CLASSES fix syntax warnings 2018-06-03 12:16:18 +00:00
larshp
27e30f7c7c ignore config.yml 2018-06-03 12:12:39 +00:00
Ivan
ac6ffe90f1
Merge pull request #534 from gregorwolf/master
NetWeaver 7.51 doesn't contain CHAR02
2018-04-22 14:10:56 -05:00
Gregor Wolf
4ecb09f839
NetWeaver 7.51 doesn't contain CHAR02 2018-04-22 21:09:29 +02:00
IvanFemia
7bb0ae6e69 Update from latest abapGit 2018-04-13 02:35:19 +00:00
Ivan
399c614e25
Merge pull request #532 from ivanfemia/revert-529-bilencekic-patch-1
Revert "Performance improvement for GET_ROW method"
2018-03-27 11:58:27 -05:00
Ivan
f7787a90b5
Revert "Performance improvement for GET_ROW method" 2018-03-27 11:57:41 -05:00
Ivan
cb102a7cea
Merge pull request #529 from bilencekic/bilencekic-patch-1
Performance improvement for GET_ROW method
2018-03-21 16:16:28 -05:00
Ivan
bc44a6c7c9
Update zcl_excel_rows.clas.abap 2018-03-21 16:15:51 -05:00
Ivan
4917b88a77
Update zcl_excel_rows.clas.abap 2018-03-20 22:10:45 -05:00
Bilen
2f8b93f2a5
performance improvement for GET_ROW
Iterator logic removed and hash table logic inserted to the GET_ROW method.
2018-03-20 20:53:53 +08:00
Bilen
cb1364b65f
Update zcl_excel_rows.clas.abap 2018-03-20 20:50:10 +08:00
Bilen
66e4ef4793
Performance update for iterator
Iterator is slowing down for read operations, row class reference is now stored in hash table rather than iterator.
2018-03-20 09:32:36 +08:00
Ivan
33e215d075
Merge pull request #518 from christianguenter2/fix_dump
add with missing flag
2018-02-23 17:20:22 -06:00
Ivan
9b6f80ec83
Merge pull request #516 from Cril2000/csv-writer-fixed-eol
CSV writer: fixed EOL length to handle CRLF correctly (Issue #519)
2018-02-23 17:20:04 -06:00
Christian Günter
4d2aaf049c add 'with unit tests' 2018-01-30 11:13:09 +01:00
Cril2000
0744e0c6c9
Update zcl_excel_writer_csv.clas.abap
Fixed EOL width to handle correctly CRLF
2018-01-30 10:57:01 +01:00
Ivan
0f0d582c6a Set theme jekyll-theme-cayman 2018-01-06 11:52:55 -06:00
Ivan
1efb7b87f1
Merge pull request #512 from AtomKrieg/AtomKrieg-patch-1
Fix zcl_excel_worksheet~delete_merge logic
2017-12-17 19:05:55 -06:00
AtomKrieg
4a7291ca49
Update zcl_excel_worksheet.clas.abap 2017-12-16 18:10:16 +03:00
AtomKrieg
3ce3335f12
Create zcl_excel_worksheet.clas.testclasses.abap 2017-12-16 17:32:45 +03:00
AtomKrieg
a5515b432b
Update zcl_excel_worksheet.clas.abap 2017-12-16 15:55:45 +03:00
Ivan Femia
333d505a1f fix #505 2017-11-15 18:25:33 +01:00
Ivan
90523b9853
Merge pull request #505 from muten86/patch-1
Enhancement of Class with Method GET_TABLE
2017-11-15 10:49:30 -06:00
Ivan
58d98d362b
Merge pull request #507 from larshp/master
simplify some IFs
2017-11-15 10:04:15 -06:00
Ivan Femia
e71644d487 Fix #489
Thanks to @Gh14Cc10
2017-11-15 17:02:11 +01:00
larshp
207bf54a54 few more 2017-11-05 18:32:33 +00:00
larshp
eaea931778 simplify some IFs 2017-11-05 18:16:35 +00:00
muten86
1475bda3d6 Enhancement of Class with Method GET_TABLE
This class lifts the functionality of the whole project to a full excel-upload and download framework, without having known limititions, of other ABAP Excel Upload mechanisms.

Best regards
D. Rauchenstein
2017-10-06 10:43:44 +02:00
Ivan Femia
5e6bb3ba10 fix #434 2017-10-05 19:16:35 +02:00
Ivan Femia
4f66d3445b updating to latest version of abapGit 2017-10-05 19:12:49 +02:00
Ivan
c38b1d79f7 Merge pull request #499 from larshp/branch
remove some unused variables
2017-07-26 11:53:33 -05:00
larshp
de5dd96564 remove some unused variables 2017-07-26 16:39:34 +00:00
Ivan
59aeaab0a8 Merge pull request #498 from larshp/master
Fix testclass for ZCL_EXCEL
2017-07-26 11:24:24 -05:00
larshp
7a10a253be Fix testclass for ZCL_EXCEL
The XML should contain X for testclasses when the class have a testclass
2017-07-26 16:12:22 +00:00
Ivan
5a712f9435 Merge pull request #497 from paladv/master
Fixing syntax errors in ZDEMO_TECHED8 ZDEMO_TECHED9 reports
2017-07-26 09:12:45 -05:00
Ivan
3855e5b97f Merge pull request #495 from TBuryanek/patch-1
Allow user specific ALV variant in SALV converter
2017-07-26 09:09:22 -05:00
Ivan
1c127e1a6b Merge pull request #493 from larshp/master
update to latest abapGit format
2017-07-26 09:08:41 -05:00
paladv
7303fb3c98 Fixing syntax errors in ZDEMO_TECHED8 ZDEMO_TECHED9 reports 2017-07-26 14:04:26 +02:00
Tomas
b74bc20d10 Allow user specific ALV variant in SALV converter
Same problem is in standart CL_SALV_TABLE~TO_XML method (from which this converter was probably inspired).
2017-07-21 13:02:05 +02:00
larshp
943c124cff update to latest abapGit format 2017-07-07 18:56:30 +00:00
Ivan
f2390f6375 Merge pull request #492 from ivanfemia/Column-Row-Dimension-Fix
Column row dimension fix
2017-07-07 13:10:21 -05:00
Ivan
c8b9132337 Merge branch 'master' into Column-Row-Dimension-Fix 2017-07-07 13:10:08 -05:00
Ivan Femia
cf7d5da6ca Fix #484
Remove obsolete objects
2017-05-22 21:02:18 +02:00
Ivan Femia
969da4a9dc Fix issue #484
Removed the conditional formatting object from the structure
2017-05-22 21:00:39 +02:00
Ivan Femia
d4464072c1 Fixed #484
Removed also issue with style class
2017-05-20 00:42:59 +02:00
Ivan Femia
6c124bf61d Fix issue #484
Removed row dimension and introduced row object
2017-05-19 23:52:29 +02:00
Ivan Femia
18cfa99a18 Remove old objects #484
Moving from the old column dimension class to the new column class and aligning the management of the collection
2017-05-19 00:39:03 +02:00
Ivan Femia
68b2c66edd First implementation for issue #484 2017-05-19 00:11:31 +02:00
Ivan
6356cad9f3 Merge pull request #485 from larshp/master
clean up
2017-05-18 12:01:20 -05:00
larshp
77bedd78c4 remove unreferenced variables 2017-05-18 16:44:58 +00:00
larshp
4f0393541d remove end of method statements with no effect 2017-05-18 16:03:12 +00:00
larshp
a3509f1d48 remove TRY without CATCH 2017-05-18 16:00:08 +00:00
Ivan
ee10976c8a Update README.md 2017-05-18 09:24:07 -05:00
Ivan Femia
240c61dbd7 Fixing after abapGit migration 2017-05-17 22:35:15 +02:00
Ivan Femia
f44f7baae4 Fix issue #461 2017-05-17 22:30:10 +02:00
Ivan Femia
2812fce7ce fixing after abapGit migration 2017-05-17 22:29:27 +02:00
Ivan Femia
5d80ca2a41 Fix issue #461 2017-05-17 22:26:37 +02:00
Ivan
1b121ea592 Merge pull request #482 from larshp/master
fix PROG translations
2017-05-17 15:21:45 -05:00
larshp
b6d536d34e fix PROG translations
make sure to use latest abapGit
2017-05-17 17:36:38 +00:00
617 changed files with 41641 additions and 331437 deletions

View File

@ -11,6 +11,8 @@
<item>/README.md</item>
<item>/package.json</item>
<item>/.travis.yml</item>
<item>/_config.yml</item>
<item>/abaplint.json</item>
</IGNORE>
</DATA>
</asx:values>

17
.github/workflows/unit.yml vendored Normal file
View File

@ -0,0 +1,17 @@
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 Normal file
View File

@ -0,0 +1,6 @@
node_modules/
package-lock.json
output
foo.zip
foo.xlsx
foo

1
.npmrc Normal file
View File

@ -0,0 +1 @@
ignore-scripts=true

41
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,41 @@
# Contributing to abap2xlsx
Welcome and thanks for taking the time to contribute, it's great to have you here!
This is a set of guidelines for contributing to abap2xlsx. Mostly guidelines, not hard and fast rules: try to apply your best judgment and, when necessary, feel free to propose changes to this document via pull requests.
## Table of Contents
1. [Important Resources](#important-resources)
1. [Discussion Board](#discussion-board)
1. [GitHub](#github)
1. [Slack](#slack)
1. [How to submit changes](#how-to-submit-changes)
1. [Review process](#review-process)
1. [Keeping PR up to date](#keeping-pr-up-to-date)
## Important Resources
### Discussion Board
We use the [SAP Community Network](https://community.sap.com/) as our discussion board for general questions concerning the usage of the library. You can [search for all content containing abap2xlsx](https://community.sap.com/search/?ct=all&q=abap2xlxs) before you post a new question. You also can limit the search [using the tag: abap2xlsx](https://answers.sap.com/topics/abap2xlsx.html). Please use this link when you want to [post a new question](https://answers.sap.com/questions/ask.html?primaryTagId=833755570260738661924709785639136&topics=abap2xlsx&question=%5Babap2xlsx%5D%20) the tag *abap2xlsx* will be prefilled).
### GitHub
While the discussion board is meant for general how-to questions, if you have found a bug or simply wish to inquire about a new feature please file an issue on GitHub and provide as much relevant information as possible: a well-written bug report is truly helpful.
### Slack
We have the channel [#abap2xlsx](https://sapmentors.slack.com/archives/CGG0UHDMG) in the SAP Mentors & Friends Slack. You can get [yourself an invite here](https://sapmentors-slack-invite.cfapps.eu10.hana.ondemand.com/).
## How to submit changes
Changes are handled via the usual pull request mechanism; clear, short PRs for bugfixes are best because they're easy to review but sometimes, especially with new features, the changes are more substantial: in this case please provide an overview and pointers to the most relevant changes to be checked. If possible, a PR should not exist in a vacuum, rather it should address or even close an issue already filed. This way, the relevant context can be provided without cluttering the PR itself. Last but not least, there is a separate document dedicated to the [coding guidelines](./docs/contributing/coding-guidelines.md).
### Review process
With the possible exception of the original authors it is recommended that contributors go through the PR process, even when they have push access. A different contributor will then review the PR, provide feedback on possible reworks or even merge it directly if all is in order. It is also possible to review changes and have someone else merge them, of course.
### Keeping PR up to date
When the review process takes a long time, regardless of the reason, the changes proposed by the PR might fall behind the master branch. If the author of the PR has allowed it (default setting in GitHub), another contributor might come along and merge the master branch into the PR branch, thereby freshening it. When conflicts happen, however, the PR author should resolve them. By all means, if necessary ask for help in the conversation section of the PR. If a PR lies dormant for too long, an effort will be made to get in touch with the author, to ensure the request is still relevant.

View File

@ -1,4 +1,4 @@
Apache License
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
@ -186,7 +186,7 @@ Apache License
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright {yyyy} {name of copyright owner}
Copyright 2010 abap2xlsx Contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@ -1,9 +1,9 @@
abap2xlsx
=========
# abap2xlsx - Read and generate Excel Spreadsheets with ABAP
Generate your professional Excel spreadsheet from ABAP
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 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 [Wiki section](https://github.com/ivanfemia/abap2xlsx/wiki).
Please refer to the official wiki for the [installation guide & F.A.Q.](https://github.com/ivanfemia/abap2xlsx/wiki).
For questions, bug reports and more information on contributing to the project, please refer to the [contributing guidelines](./CONTRIBUTING.md).
**Discussion Board is on [SAP Community Network - Open Source space](http://scn.sap.com/community/open-source), please add the prefix [abap2xlsx] in the title and tag the discussion with abap2xlsx.**
Version support: minimum tested version is SAP_ABA 731, it might work on older versions still but we need volunteers to test it.

3
SECURITY.md Normal file
View File

@ -0,0 +1,3 @@
# 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
_config.yml Normal file
View File

@ -0,0 +1 @@
theme: jekyll-theme-cayman

61
abap_transpile.json Normal file
View File

@ -0,0 +1,61 @@
{
"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"}
]
}
}

11
abaplint-app.json Normal file
View File

@ -0,0 +1,11 @@
{
"configurations": {
"default": {
"filename": "./abaplint.json"
},
"steampunk": {
"filename": "./abaplint-steampunk.json",
"annotations": false
}
}
}

54
abaplint-steampunk.json Normal file
View File

@ -0,0 +1,54 @@
{
"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"
}
}
}

201
abaplint.json Normal file
View File

@ -0,0 +1,201 @@
{
"global": {
"files": "/src/**/*.*",
"skipGeneratedGatewayClasses": true,
"skipGeneratedFunctionGroups": true,
"skipGeneratedPersistentClasses": true
},
"dependencies": [
{
"url": "https://github.com/abaplint/deps",
"folder": "/deps",
"files": "/src/**/*.*"
}
],
"syntax": {
"version": "v702",
"errorNamespace": "^(Z|Y)",
"globalConstants": [],
"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,
"unused_ddic": true,
"dangerous_statement": true,
"db_operation_in_loop": false,
"identical_descriptions": false,
"intf_referencing_clas": false,
"max_one_method_parameter_per_line": false,
"method_implemented_twice": true,
"modify_only_own_db_tables": false,
"no_yoda_conditions": false,
"parser_702_chaining": true,
"prefer_raise_exception_new": true,
"select_add_order_by": false,
"select_performance": false,
"uncaught_exception": true,
"unsecure_fae": false,
"use_class_based_exceptions": false,
"call_transaction_authority_check": true,
"function_module_recommendations": false,
"identical_contents": false,
"method_overwrites_builtin": true,
"omit_parameter_name": false,
"omit_receiving": true,
"prefer_is_not": false,
"prefer_xsdbool": true,
"sy_modification": true,
"unused_methods": false,
"use_bool_expression": false,
"begin_single_include": true,
"check_subrc": false,
"cyclomatic_complexity": false,
"forbidden_pseudo_and_pragma": false,
"identical_conditions": false,
"line_break_style": false,
"names_no_dash": true,
"parser_missing_space": true,
"unused_types": false,
"use_line_exists": false,
"downport": false,
"forbidden_void_type": false,
"line_break_multiple_parameters": false,
"prefer_inline": false,
"reduce_string_templates": true,
"forbidden_identifier": false,
"try_without_catch": true,
"unknown_types": true,
"prefix_is_current_class": false,
"unused_variables": false,
"abapdoc": false,
"allowed_object_naming": true,
"allowed_object_types": false,
"ambiguous_statement": false,
"avoid_use": {
"define": true,
"describeLines": false,
"testSeams": true,
"statics": false,
"defaultKey": false,
"break": true
},
"begin_end_names": true,
"chain_mainly_declarations": false,
"check_abstract": true,
"check_comments": false,
"check_ddic": true,
"check_include": true,
"check_syntax": true,
"check_text_elements": false,
"check_transformation_exists": true,
"commented_code": false,
"constructor_visibility_public": true,
"description_empty": true,
"double_space": false,
"empty_line_in_statement": false,
"empty_structure": false,
"form_tables_obsolete": true,
"fully_type_constants": false,
"global_class": true,
"identical_form_names": true,
"if_in_if": false,
"implement_methods": true,
"in_statement_indentation": false,
"indentation": false,
"keep_single_parameter_on_one_line": false,
"keyword_case": {
"style": "upper",
"ignoreExceptions": true,
"ignoreLowerClassImplmentationStatement": true,
"ignoreGlobalClassDefinition": false,
"ignoreGlobalInterface": false,
"ignoreKeywords": [],
"ignoreGlobalClassBoundaries": false,
"ignoreFunctionModuleName": false
},
"local_class_naming": false,
"main_file_contents": true,
"message_exists": false,
"msag_consistency": {
"numericParamters": false
},
"newline_between_methods": false,
"no_public_attributes": false,
"object_naming": {
"clas": "^ZC(L|X)\\_EXCEL",
"intf": "^ZIF\\_EXCEL",
"tabl": "^ZEXCEL",
"ttyp": "^ZEXCEL",
"dtel": "^ZEXCEL"
},
"prefer_returning_to_exporting": false,
"preferred_compare_operator": false,
"release_idoc": false,
"remove_descriptions": false,
"rfc_error_handling": true,
"selection_screen_naming": false,
"short_case": false,
"sicf_consistency": true,
"space_before_dot": false,
"sql_escape_host_variables": false,
"superclass_final": false,
"tabl_enhancement_category": true,
"type_form_parameters": true,
"types_naming": false,
"unreachable_code": true,
"use_new": false,
"when_others_last": true,
"xml_consistency": true,
"7bit_ascii": false,
"contains_tab": true,
"functional_writing": false,
"line_length": false,
"max_one_statement": false,
"parser_error": true,
"space_before_colon": false,
"colon_missing_space": false,
"exit_or_check": {
"allowCheck": true,
"allowExit": false
},
"line_only_punc": false,
"obsolete_statement": {
"refresh": true,
"move": true
},
"start_at_tab": false,
"whitespace_end": true,
"exporting": false,
"empty_statement": false,
"sequential_blank": true,
"definitions_top": false,
"nesting": false,
"cloud_types": true,
"method_length": false,
"mix_returning": true,
"method_parameter_names": false,
"inline_data_old_versions": true,
"local_variable_names": false,
"class_attribute_names": false
}
}

View File

@ -1,2 +0,0 @@
<?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"/>

View File

@ -1,139 +0,0 @@
<?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>*&amp;---------------------------------------------------------------------*
*&amp; Report Z_ZAKE_SVN
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp; Checkout / Checkin the ZAKE_SVN Project
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zake_svn_a2x.
CONSTANTS cl_svn TYPE seoclsname VALUE &apos;ZCL_ZAKE_SVN&apos;.
CONSTANTS cl_tortoise_svn TYPE seoclsname VALUE &apos;ZCL_ZAKE_TORTOISE_SVN&apos;.
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 &apos;X&apos;,
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 &apos;C:\Projects\abap2xlsx\trunk&apos; LOWER CASE OBLIGATORY,
zakenugg TYPE char512 DEFAULT &apos;C:\Projects\abap2xlsx\nuggs\abap2xlsx_Daily.nugg&apos; LOWER CASE OBLIGATORY,
svnpath TYPE char512 DEFAULT &apos;https://code.sdn.sap.com/svn/abap2xlsx/trunk&apos; LOWER CASE OBLIGATORY,
comment TYPE char512 DEFAULT &apos;&apos; LOWER CASE,
username TYPE char512 LOWER CASE,
password TYPE char512 LOWER CASE,
testrun TYPE flag DEFAULT &apos;X&apos;.
SELECTION-SCREEN END OF BLOCK c.
INITIALIZATION.
a = &apos;Action&apos;.
b = &apos;Version Controll Program&apos;.
c = &apos;Parameters&apos;.
START-OF-SELECTION.
svnpath_str = svnpath.
loclpath_str = loclpath.
zake_nuggetname = zakenugg.
comment_str = comment.
&quot; SELECT * INTO TABLE objects FROM tadir WHERE devclass = &apos;ZABAP2XLSX&apos;.
&quot; DELETE zake_objects WHERE object = &apos;DEVC&apos;.
TRY.
IF svn = &apos;X&apos;.
class = cl_svn.
ELSE.
class = cl_tortoise_svn.
ENDIF.
CREATE OBJECT zake
TYPE
(class)
EXPORTING
i_svnpath = svnpath_str
i_localpath = loclpath_str.
zake-&gt;set_testrun( testrun ).
zake-&gt;set_package( &apos;ZA2X&apos; ).
IF checkout = &apos;X&apos;.
zake-&gt;checkout( ).
ELSEIF update = &apos;X&apos;.
zake-&gt;update( ).
ELSEIF install = &apos;X&apos;.
zake-&gt;install_slinkees_from_lm( testrun ).
&quot; zake-&gt;install_objects( zake_objects ).
ELSEIF export = &apos;X&apos;.
&quot; Build Object list for Export
&quot; Programs
object-object = &apos;PROG&apos;.
object-obj_name = &apos;ZAKE_SVN_A2X&apos;.
APPEND object TO objects.
zake-&gt;set_checkin_objects( objects ).
zake-&gt;download_slinkees_to_lm = abap_true.
zake-&gt;download_nugget_to_lm = space.
zake-&gt;download_zip_to_lm_flag = space.
zake-&gt;create_slinkees( zake_nuggetname ).
ELSEIF build = &apos;X&apos;.
&quot; Build a complete package for download
zake-&gt;set_checkin_objects( objects ).
&quot; We don&apos;t want that for the complete Package Slinkees are created
&quot; in the ZAKE folder
zake-&gt;download_slinkees_to_lm = space.
zake-&gt;download_nugget_to_lm = space.
zake-&gt;create_slinkees( zake_nuggetname ).
ELSEIF checkin = &apos;X&apos;.
zake-&gt;set_package( &apos;ZA2X&apos; ).
zake-&gt;set_checkin_objects( objects ).
zake-&gt;create_slinkees( zake_nuggetname ).
IF testrun IS INITIAL.
zake-&gt;checkin( comment_str ).
ENDIF.
ENDIF.
CATCH zcx_saplink INTO ex.
message = ex-&gt;msg.
WRITE: / &apos;An Error occured: &apos;, message.
ENDTRY.</source>
</PROG>

View File

@ -1,71 +0,0 @@
<?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>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL1
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*
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 &apos;ANONYM&apos;.
START-OF-SELECTION.
&quot; Creates active sheet
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( ip_title = &apos;Sheet1&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 2 ip_value = &apos;Hello world&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 3 ip_value = sy-datum ).
lo_worksheet-&gt;set_cell( ip_column = &apos;C&apos; ip_row = 3 ip_value = sy-uzeit ).
lo_hyperlink = zcl_excel_hyperlink=&gt;create_external_link( iv_url = &apos;https://cw.sdn.sap.com/cw/groups/abap2xlsx&apos; ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos; ip_row = 4 ip_value = &apos;Click here to visit abap2xlsx homepage&apos; ip_hyperlink = lo_hyperlink ).
column_dimension = lo_worksheet-&gt;get_column_dimension( ip_column = &apos;B&apos; ).
column_dimension-&gt;set_width( ip_width = 11 ).
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
lv_file = lo_excel_writer-&gt;write_file( lo_excel ).
&quot; 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-&gt;zif_docs~upload( i_document = lv_file
i_title = &apos;demo1froma2xlsx&apos; i_size = lv_bytecount ).</source>
</PROG>

View File

@ -1,4 +0,0 @@
<?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>

View File

@ -1,177 +0,0 @@
<?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-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos;
ip_row = &apos;2&apos;
ip_value = &apos;Welcome to Web Dynpro and abap2xlsx.&apos; ).
CREATE OBJECT lo_excel_writer.
lv_content = lo_excel_writer-&gt;zif_excel_writer~write_file( lo_excel ).
DATA: lv_filename TYPE string.
lv_filename = &apos;wda01.xlsx&apos;.
CALL METHOD cl_wd_runtime_services=&gt;attach_file_to_response
EXPORTING
i_filename = lv_filename
i_content = lv_content
i_mime_type = &apos;EXCEL&apos;
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-&gt;wd_get_api( ).
* lo_action = lo_api_controller-&gt;get_current_action( ).
* if lo_action is bound.
* case lo_action-&gt;name.
* when &apos;...&apos;.
* 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>

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +0,0 @@
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

View File

@ -1,202 +0,0 @@
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.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,272 +0,0 @@
<?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-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos;
ip_row = &apos;2&apos;
ip_value = &apos;Welcome to Web Dynpro and abap2xlsx.&apos; ).
CREATE OBJECT lo_excel_writer.
lv_content = lo_excel_writer-&gt;zif_excel_writer~write_file( lo_excel ).
DATA: lv_filename TYPE string.
lv_filename = &apos;wda01.xlsx&apos;.
CALL METHOD cl_wd_runtime_services=&gt;attach_file_to_response
EXPORTING
i_filename = lv_filename
i_content = lv_content
i_mime_type = &apos;EXCEL&apos;
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-&gt;wd_get_api( ).
* lo_action = lo_api_controller-&gt;get_current_action( ).
* if lo_action is bound.
* case lo_action-&gt;name.
* when &apos;...&apos;.
* 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-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos;
ip_row = &apos;2&apos;
ip_value = &apos;Welcome to Web Dynpro and abap2xlsx.&apos; ).
CREATE OBJECT lo_excel_writer.
lv_content = lo_excel_writer-&gt;zif_excel_writer~write_file( lo_excel ).
DATA: lv_filename TYPE string.
lv_filename = &apos;wda01.xlsx&apos;.
CALL METHOD cl_wd_runtime_services=&gt;attach_file_to_response
EXPORTING
i_filename = lv_filename
i_content = lv_content
i_mime_type = &apos;EXCEL&apos;
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-&gt;wd_get_api( ).
* lo_action = lo_api_controller-&gt;get_current_action( ).
* if lo_action is bound.
* case lo_action-&gt;name.
* when &apos;...&apos;.
* 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>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

32
docs/FAQ.md Normal file
View File

@ -0,0 +1,32 @@
* Verify the version that you have installed
Starting from version 7.0.1 we introduced the version tracking.
To verify the version that you have installed in your system just generate a demo report and verify the properties of the generated XLSX file. In field description you should find the current version.
You can also check the attribute VERSION in the class ZCL_EXCEL.
* After import error "Interface method are not implemented" is thrown
This is by a well know problem with SAPLink, Import nugget twice.
* Demo reports do not compile, class CL_BCS_CONVERT is not available.
Implement SAP OSS Notes:
[Note 1151257 - Converting document content](https://service.sap.com/sap/support/notes/1151257)
[Note 1151258 - Error when sending Excel attachments](https://service.sap.com/sap/support/notes/1151258)
* You want to start a report with SUBMIT. The report you called has a parameter of type string. If a variable of type string is transferred to the parameter with SUBMIT, the system issues termination message DB036
Implement SAP OSS Notes:
[Note 1385713 - SUBMIT: Allowing parameter of type STRING](https://service.sap.com/sap/support/notes/1385713)
* Download XLSX files in Background
Run report ZDEMO_EXCEL25.
* Use Calibri font in Excel and auto width calculation
You can upload Excel's default font Calibri from the regular .TTF font files using transaction SM73. Make sure to upload all four files (standard, bold, italic, bold and italic) and to use the description "Calibri", i.e. exactly the name Excel displays for the font.

View File

@ -0,0 +1,154 @@
Note these instructions will get ABAP2XLSX working on an older 620 system. In this case I am doing it on a 4.70 Enterprise ext 2 system.
The guide draws from the existing installation guides and includes additional steps specific to 620.
This is based on the Daily build of ABAP2XLSX version 4, revision 103, dated 19th of January 2011.
1. Download abap2xlsx_Daily.nugg.zip and extract the .nugg file from it.
2. Download abap2xlsx6.20patch.nugg.zip and extract the .nugg file from it.
3. Use ZSAPLINK to install NUGG_ABAB2XLS_UTILS620.nugg. Ensure overwrite Originals is ticked. You should get green lights against the 3 classes and 2 interfaces that it imports.
4. Open abap2xlsx_Daily.nugg in text editor and do search and replace according to following table:
Search Replace with # of occurrences
CL_OBJECT_COLLECTION ZCL_OBJECT_COLLECTION 61
IF_OBJECT_COLLECTION ZIF_OBJECT_COLLECTION 68
CL_ABAP_ZIP ZCL_ABAP_ZIP 3
5. Save that new copy of abap2xlsx_Daily.nugg
6. Use SAPLINK to install your modified abap2xlsx_Daily.nugg. Again you should get a green light on everything it imports.
7. Use transaction SE80 (Object Navigator) to activate the newly imported entries.
Select the Inactive Objects from the dropdown. Activate in the following order :
Activate all domains
Activate all data elements
Activate all Database Tables / Structures except
ZEXCEL_S_FIELDCATALOG
ZEXCEL_S_WORKSHEET_COLUMNDIME
ZEXCEL_S_WORKSHEET_ROWDIMENSIO
Note you may get a warning on activation. Continue on.
Activate all Table Types except
ZEXCEL_T_FIELDCATALOG Table binding field catalog
ZEXCEL_T_WORKSHEET_COLUMNDIME Collection of column dimensions
ZEXCEL_T_WORKSHEET_ROWDIMENSIO Collection of row dimensions
Activate all interfaces
Activate all classes (see step 8 below for the errors you will encounter)
Activate remaining Database Tables / Structures (if any error occurs open the structure and double click on the class object, SAP needs to refresh its buffer)
ZEXCEL_S_FIELDCATALOG
ZEXCEL_S_WORKSHEET_COLUMNDIME
ZEXCEL_S_WORKSHEET_ROWDIMENSIO
Activate remaining Table Types (if any error occurs open the structure and double click on the class object, SAP needs to refresh its buffer)
ZEXCEL_T_FIELDCATALOG
ZEXCEL_T_WORKSHEET_COLUMNDIME
ZEXCEL_T_WORKSHEET_ROWDIMENSIO
8. You will find during activation on a 620 system that ZCL_EXCEL_HYPERLINKS class is a particular problem. It is easiest to just deactivate and exclude this (remove any reference to it from any other class with the abap2xlsx group). Note that with these changes made, any hyperlink functionality in your programs will not actually make use of the hyperlink functionality.
Hyperlinks Cleanup :
The main issue is hyperlinks->get_iterator is unknown. Quick fix is to ignore any hyperlink functionality.
Class : ZCL_EXCEL_WORKSHEET
Method : GET_HYPERLINKS_ITERATOR
Comment out : **eo_iterator = hyperlinks->get_iterator( ).**
Class : ZCL_EXCEL_WORKSHEET
Method : GET_HYPERLINKS_SIZE
Comment out : **ep_size = hyperlinks->size( ).**
Class : ZCL_EXCEL_WRITER_2007
Method : CREATE_XL_SHEET_RELS
Comment out :
**lo_iterator = io_worksheet->get_hyperlinks_iterator( ).**
**WHILE lo_iterator->ZIF_OBJECT_COLLECTION_iterator~has_next( ) EQ abap_true.**
**lo_link ?= lo_iterator->ZIF_OBJECT_COLLECTION_iterator~get_next( ).**
**ADD 1 TO lv_relation_id.**
**lv_value = lv_relation_id.**
**CONDENSE lv_value.**
**CONCATENATE 'rId' lv_value INTO lv_value.**
**lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship**
**parent = lo_document ).**
**lo_element->set_attribute_ns( name = lc_xml_attr_id**
**value = lv_value ).**
**lo_element->set_attribute_ns( name = lc_xml_attr_type**
**value = lc_xml_node_rid_link_tp ).**
**lv_value = lo_link->get_url( ).**
**lo_element->set_attribute_ns( name = lc_xml_attr_target**
**value = lv_value ).**
**lo_element->set_attribute_ns( name = lc_xml_attr_target_mode**
**value = lc_xml_val_external ).**
**lo_element_root->append_child( new_child = lo_element ).**
**ENDWHILE.**
And to help with any transport issues later on :
Class : ZCL_EXCEL_HYPERLINKS
Method : ADD
Comment out : **data_validations->add( ip_data_validation ).**
8a (Alternative to allow Hyperlinks - Tested with ABAP2XLSX version 6) - This is unconfirmed but it seems to be working for us.
Class : ZCL_EXCEL_WORKSHEET
Method : GET_HYPERLINKS_ITERATOR
Change to : **eo_iterator = hyperlinks->zif_object_collection~get_iterator( ).**
Class : ZCL_EXCEL_WORKSHEET
Method : GET_HYPERLINKS_SIZE
Change to: **ep_size = hyperlinks->zif_object_collection~size( ).**
The Class ZCL_EXCEL_WRITER_2007 Method CREATE_XL_SHEET_RELS code can remain uncommented.
9. 620 is picky about parameter names being omitted if there is more than one possible parameter. Minor changes to the code are required in the following area :
Class : ZCL_EXCEL_WORKSHEET
Method : CALCULATE_COLUMN_WIDTHS
Find : **column_dimension->set_width( <auto_size>-width ).**
Replace with : **call method column_dimension->set_width exporting ip_width = <auto_size>-width.**
10. 620 doesn't support CONCATENATE...RESPECTING BLANKS or REPLACE...REGEX... so this needs to be changed to a more traditional CONCATENATE.
Class : ZCL_EXCEL_WRITER_2007
Method : CREATE_DOCPROPS_CORE
Find :
**CONCATENATE lv_date lv_time INTO lv_value RESPECTING BLANKS.**
**REPLACE ALL OCCURRENCES OF REGEX '([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})' IN lv_value WITH '--T::Z'.**
Replace with :
**CONCATENATE lv_date+0(4) '-' lv_date+4(2) '-' lv_date+6(2) 'T' lv_time+0(2) ':' lv_time+2(2) ':' lv_time+4(2) 'Z' INTO lv_value.**
There are two occurances to replace.
11. You should now have no problems activating everything except for one of the Demo reports. Three of the four can be fixed as follows :
ZDEMO_EXCEL20
Fix not attempted on this one.
Thanks to Regan MacDonald

View File

@ -0,0 +1,33 @@
## DISCLAIMER
As far as abap2xlsx is concerned, SAPlink is obsolete and should only be used on systems lower than 702.
## Prerequisites
* [SAPlink](http://www.saplink.org) installed in your system.
* [SAPlink Plugins](http://www.saplink.org) installed in your system: DDic, Interface (I would suggest to install the complete nugg package in build/SAPlink-plugins_Daily.nugg)SAP
## Procedure
Download the nugg file from [build folder](https://github.com/sapmentors/abap2xlsx/tree/master/build) and save it locally on your system. Logon on your SAP system and execute report ZSAPLINK Select "Import Nugget" and locate your nugg file, check overwrite originals only if you have a previous installation of abap2xlsx and you want to update.
Execute the report.
If you have checked overwrite originals a popup could appears in order to confirm the overwrite; press Yes to all.
You should get this result (all green light)
SAPLinks puts the objects into $tmp space and all the objects are inactive. So we need to activate now.
From SE80, select inactive objects
Activate objects in the following order:
I tried a new nugg import on a new system here the detailed steps I performed:
1. Activate all domains
1. Activate all data elements
1. Activate all Database Tables / Structures except: ZEXCEL_S_FIELDCATALOG, ZEXCEL_S_STYLEMAPPING, ZEXCEL_S_WORKSHEET_COLUMNDIME, ZEXCEL_S_WORKSHEET_ROWDIMENSIO
1. Activate all Table Types except: ZEXCEL_T_FIELDCATALOG, ZEXCEL_T_STYLEMAPPING, ZEXCEL_T_WORKSHEET_COLUMNDIME, ZEXCEL_T_WORKSHEET_ROWDIMENSIO
1. Activate all interface/classes (activate anyway)
1. Activate remaining Database Tables / Structures (if any error occurs open the structure and double click on the class object, SAP needs to refresh its buffer): ZEXCEL_S_FIELDCATALOG, ZEXCEL_S_WORKSHEET_COLUMNDIME, ZEXCEL_S_WORKSHEET_ROWDIMENSIO
1. Activate remaining Table Types (if any error occurs open the structure and double click on the class object, SAP needs to refresh its buffer): ZEXCEL_T_FIELDCATALOG, ZEXCEL_T_WORKSHEET_COLUMNDIME, ZEXCEL_T_WORKSHEET_ROWDIMENSIO
1. Activate all demo reports
1. ~~Due to a issue with interfaces in SAPlink you need to import the abap2xlsx nugget twice and activate again all the objects.~~ Fixed with latest SAPlink release
Report ZAKE_SVN_A2X is used to retrieve and commit object into subversion server, Delete it if you are not a contributor.
[Getting ABAP2XLSX to work on a 620 System](Getting-ABAP2XLSX-to-work-on-a-620-System)

View File

@ -0,0 +1,4 @@
The Demo Program ZDEMO_CALENDAR gives you the possibility to create a calendar just be specifying the image locations and descriptions. If you're using this report please share your results here:
* [Calendar created since 2012 with abap2xlsx by Gregor Wolf](https://computerservice-wolf.com/privat/)
* [New York Calendar 2012 by Hendrik Neumann](http://dl.dropbox.com/u/3894797/Calendar%20-%20New%20York%20City%20-%202012.pdf)

View File

@ -0,0 +1,15 @@
## Prerequisites
[Install abapGit](https://docs.abapgit.org/guide-install.html), if you have two factor authentication activated import https certificates from https://api.github.com ([Pull request #536](https://github.com/larshp/abapGit/pull/536))
## 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*.
![abapGit New Online Repository](new-online-abap2xlsx.png)
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.

View File

@ -0,0 +1,73 @@
# Naming convention of variables, etc.
In abap2xlsx, over time, alas, the ABAP code came to mix different [naming standards](https://github.com/abap2xlsx/abap2xlsx/issues/773). Naming standards may vary from one class to another, but one naming standards is usually correctly applied in each class.
It's not possible to impose one naming standards by fixing the existing names, because clients may have developed custom programs which may already refer to them.
When it's about adding a new variable, parameter or type in an existing object or method, it's embarrassing to impose one naming standards because that could be inconsistent with the variables, parameters or types which already exist at this place.
Here is the chosen compromise so that to keep the ABAP code the most consistent possible everywhere:
- If you fix a method, reuse its naming standards so that its code looks consistent. If this method has several naming standards, choose the most used one.
- If you create an ABAP object or a method implementation, choose the names according to the below rules.
- If you create an attribute, a method definition or a type in a class or interface, choose the naming standards used in its section.
NB: that means, if you need to create and maintain several objects to fix one issue or to make one pull request, you may end with using different naming standards.
Rules for creating an ABAP object or a method implementation (mix of Hungarian notation (prefixes) and [Clean Code](https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#avoid-encodings-esp-hungarian-notation-and-prefixes)):
- Method names
- clean code
- Local class names
- LCL_
- LCX_ for the only exception class
- Types
- elementary: TV_
- structure: TS_
- table: TT_
- Instance and class Attributes (not constants)
- clean code
- constant and global attributes
- C_
- Local variables
- elementary: LV_
- object: LO_
- structure: LS_
- table: LT_
- data reference: LR_
- Local constants
- LC_
- Field symbols
- elementary: <LV_
- structure: <LS_
- table: <LT_
- IMPORTING parameters
- elementary: IV_
- object: IO_
- structure: IS_
- table: IT_
- EXPORTING parameters
- elementary: EV_
- object: EO_
- structure: ES_
- table: ET_
- RETURNING parameters
- elementary: RV_
- object: RO_
- structure: RS_
- table: RT_
- data reference: RR_
- NB: don't use the general suffix "RESULT", instead use RO_WORKSHEET if method name is GET_ACTIVE_WORKSHEET
- CHANGING parameters
- elementary: CV_
- structure: CS_
- table: CT_
- object: CO_
Here is a list of other naming standards, that you should use if they occur in existing method implementations or in the definition part of existing classes and interfaces, and if they are majority:
- Types
- Miscellaneous namings like T_, TY_, LTY, MTY_ were often used
- Field symbols
- <FS_ and <F_ were often used
- elementary parameters
- P was often used instead of V, for instance IP_ or EP_
- RETURNING parameters
- E was often used instead of R
- CHANGING parameters
- X was often used instead of C

View File

@ -0,0 +1,38 @@
# 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.

10
docs/index.md Normal file
View File

@ -0,0 +1,10 @@
This community project allows you to generate Professional Excel spreadsheets directly from ABAP.
**Resources**
* Installation guide
* [abapGit](abapGit-installation) (Preferred)
* [SAPLink](SAPLink-installation) (obsolete)
* [F.A.Q.](FAQ)
* [abap2xlsx Calender Gallery](abap2xlsx-Calender-Gallery)
* [Demos](https://github.com/abap2xlsx/demos)

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

16
package.json Normal file
View File

@ -0,0 +1,16 @@
{
"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"
}
}

Binary file not shown.

View 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>Objects which cannot work in SAP Cloud</CTEXT>
</DEVC>
</asx:values>
</asx:abap>
</abapGit>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,51 @@
*"* use this source file for any type declarations (class
*"* definitions, interfaces or data types) you need for method
*"* implementation or private method's signature
TYPES ty_style_type TYPE c LENGTH 1.
TYPES: BEGIN OF ts_alv_types,
seoclass TYPE seoclsname,
clsname TYPE seoclsname,
END OF ts_alv_types,
tt_alv_types TYPE HASHED TABLE OF ts_alv_types WITH UNIQUE KEY seoclass.
TYPES: BEGIN OF ts_sort_values,
fieldname TYPE fieldname,
row_int TYPE zexcel_cell_row,
value TYPE REF TO data,
new TYPE flag,
sort_level TYPE int4,
is_collapsed TYPE flag,
END OF ts_sort_values,
tt_sort_values TYPE HASHED TABLE OF ts_sort_values WITH UNIQUE KEY primary_key COMPONENTS fieldname
WITH NON-UNIQUE SORTED KEY collapsed COMPONENTS is_collapsed fieldname
##TABKEY[PRIMARY_KEY][COLLAPSED].
TYPES: BEGIN OF ts_subtotal_rows,
row_int TYPE zexcel_cell_row,
row_int_start TYPE zexcel_cell_row,
columnname TYPE fieldname,
END OF ts_subtotal_rows,
tt_subtotal_rows TYPE HASHED TABLE OF ts_subtotal_rows WITH UNIQUE KEY row_int.
TYPES: BEGIN OF ts_styles,
type TYPE ty_style_type,
alignment TYPE zexcel_alignment,
inttype TYPE abap_typekind,
decimals TYPE int1,
style TYPE REF TO zcl_excel_style,
guid TYPE zexcel_cell_style,
END OF ts_styles,
tt_styles TYPE HASHED TABLE OF ts_styles WITH UNIQUE KEY primary_key COMPONENTS type alignment inttype decimals
WITH NON-UNIQUE SORTED KEY guid COMPONENTS guid .
TYPES: BEGIN OF ts_color_styles,
guid_old TYPE zexcel_cell_style,
fontcolor TYPE zexcel_style_color_argb,
fillcolor TYPE zexcel_style_color_argb,
style_new TYPE REF TO zcl_excel_style,
END OF ts_color_styles,
tt_color_styles TYPE HASHED TABLE OF ts_color_styles WITH UNIQUE KEY guid_old fontcolor fillcolor.

View File

@ -0,0 +1,333 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_CONVERTER</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>Salv converter</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
<TPOOL>
<item>
<ID>I</ID>
<KEY>001</KEY>
<ENTRY>Sheet1</ENTRY>
<LENGTH>15</LENGTH>
</item>
<item>
<ID>I</ID>
<KEY>002</KEY>
<ENTRY>Grand</ENTRY>
<LENGTH>10</LENGTH>
</item>
<item>
<ID>I</ID>
<KEY>003</KEY>
<ENTRY>Total</ENTRY>
<LENGTH>10</LENGTH>
</item>
<item>
<ID>I</ID>
<KEY>004</KEY>
<ENTRY>Minimum</ENTRY>
<LENGTH>10</LENGTH>
</item>
<item>
<ID>I</ID>
<KEY>005</KEY>
<ENTRY>Maximum</ENTRY>
<LENGTH>10</LENGTH>
</item>
<item>
<ID>I</ID>
<KEY>006</KEY>
<ENTRY>Average</ENTRY>
<LENGTH>10</LENGTH>
</item>
<item>
<ID>I</ID>
<KEY>007</KEY>
<ENTRY>Count</ENTRY>
<LENGTH>10</LENGTH>
</item>
<item>
<ID>I</ID>
<KEY>008</KEY>
<ENTRY>Excel creation options</ENTRY>
<LENGTH>30</LENGTH>
</item>
</TPOOL>
<DESCRIPTIONS>
<SEOCOMPOTX>
<CMPNAME>ASK_OPTION</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Ask for user option data</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>BIND_CELLS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create table with set cell method</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>BIND_TABLE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create table with bind table method</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CLASS_CONSTRUCTOR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>CLASS_CONSTRUCTOR</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CLEAN_FIELDCATALOG</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Sort and check on fieldcatalog</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CONVERT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Convert</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CREATE_COLOR_STYLE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create new color style based on cell style</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CREATE_FORMULAR_SUBTOTAL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create formular for subtotal</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CREATE_FORMULAR_TOTAL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create formular for column total</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CREATE_PATH</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create file path for download</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CREATE_STYLE_HDR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create header style</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CREATE_STYLE_NORMAL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create line style for stripped</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CREATE_STYLE_STRIPPED</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create line style for stripped</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CREATE_STYLE_SUBTOTAL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create subtotals style</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CREATE_STYLE_TOTAL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create totals style</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CREATE_TABLE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create table based on fieldcatalog</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CREATE_TEXT_SUBTOTAL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create subtoal text for column</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CREATE_WORKSHEET</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create table in worksheet</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>C_TYPE_HDR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Single-Character Indicator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>C_TYPE_NOR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Single-Character Indicator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>C_TYPE_STR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Single-Character Indicator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>C_TYPE_SUB</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Single-Character Indicator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>C_TYPE_TOT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Single-Character Indicator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>EXECUTE_CONVERTER</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Execute the converter based on object provided</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>GET_COLOR_STYLE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Look up color style and create if needed</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>GET_FILE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create excel file</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>GET_FUNCTION_NUMBER</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Convert function name into internal number</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>GET_OPTION</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get user option data</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>GET_STYLE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get style for cell</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>INIT_OPTION</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Init option structure</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>LOOP_NORMAL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Bind cells with normal loop</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>LOOP_SUBTOTAL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Bind cells with subtotal loop</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>OPEN_FILE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Open excel file</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>SET_AUTOFILTER_AREA</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create autofilter</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>SET_CELL_FORMAT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>SET CELL FORMAT</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>SET_FIELDCATALOG</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Set fieldcatalog from table</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>SET_OPTION</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Set user option data</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WO_AUTOFILTER</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Autofilter</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WO_DATA</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Excel data without unwanted columns</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WO_EXCEL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Excel creator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WO_TABLE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Table sorted but not reduced</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WO_WORKSHEET</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Worksheet</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WRITE_FILE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Write excel file</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WS_INDX</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>System Table INDX</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WS_LAYOUT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Converter settings for table</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WS_OPTION</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Converter options for grid configuration</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WT_COLORS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Table type for color information of cells for converter</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WT_FIELDCATALOG</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Conter table for tabel fields</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WT_FILTER</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Table type for filter information of cells for converter</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WT_OBJECTS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>ALV object list</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>W_COL_INT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Cell Column</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>W_FCOUNT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Three digit number</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>W_ROW_INT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Cell Row</DESCRIPT>
</SEOCOMPOTX>
</DESCRIPTIONS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,600 @@
CLASS zcl_excel_converter_alv DEFINITION
PUBLIC
ABSTRACT
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_CONVERTER_ALV
*"* do not include other source files here!!!
PUBLIC SECTION.
INTERFACES zif_excel_converter
ALL METHODS ABSTRACT .
CLASS-METHODS class_constructor .
*"* protected components of class ZCL_EXCEL_CONVERTER_ALV
*"* do not include other source files here!!!
PROTECTED SECTION.
DATA wt_sort TYPE lvc_t_sort .
DATA wt_filt TYPE lvc_t_filt .
DATA wt_fcat TYPE lvc_t_fcat .
DATA ws_layo TYPE lvc_s_layo .
DATA ws_option TYPE zexcel_s_converter_option .
METHODS update_catalog
CHANGING
!cs_layout TYPE zexcel_s_converter_layo
!ct_fieldcatalog TYPE zexcel_t_converter_fcat .
METHODS apply_sort
IMPORTING
!it_table TYPE STANDARD TABLE
EXPORTING
!eo_table TYPE REF TO data .
METHODS get_color
IMPORTING
!io_table TYPE REF TO data
EXPORTING
!et_colors TYPE zexcel_t_converter_col .
METHODS get_filter
EXPORTING
!et_filter TYPE zexcel_t_converter_fil
CHANGING
!xo_table TYPE REF TO data .
*"* private components of class ZCL_EXCEL_CONVERTER_ALV
*"* do not include other source files here!!!
PRIVATE SECTION.
CLASS-DATA wt_colors TYPE tt_col_converter .
ENDCLASS.
CLASS zcl_excel_converter_alv IMPLEMENTATION.
METHOD apply_sort.
DATA: lt_otab TYPE abap_sortorder_tab,
ls_otab TYPE abap_sortorder.
FIELD-SYMBOLS: <fs_table> TYPE STANDARD TABLE,
<fs_sort> TYPE lvc_s_sort.
CREATE DATA eo_table LIKE it_table.
ASSIGN eo_table->* TO <fs_table>.
<fs_table> = it_table.
SORT wt_sort BY spos.
LOOP AT wt_sort ASSIGNING <fs_sort>.
IF <fs_sort>-up = abap_true.
ls_otab-name = <fs_sort>-fieldname.
ls_otab-descending = abap_false.
* ls_otab-astext = abap_true. " not only text fields
INSERT ls_otab INTO TABLE lt_otab.
ENDIF.
IF <fs_sort>-down = abap_true.
ls_otab-name = <fs_sort>-fieldname.
ls_otab-descending = abap_true.
* ls_otab-astext = abap_true. " not only text fields
INSERT ls_otab INTO TABLE lt_otab.
ENDIF.
ENDLOOP.
IF lt_otab IS NOT INITIAL.
SORT <fs_table> BY (lt_otab).
ENDIF.
ENDMETHOD.
METHOD class_constructor.
* let's fill the color conversion routines.
DATA: ls_color TYPE ts_col_converter.
* 0 all combination the same
ls_color-col = 0.
ls_color-int = 0.
ls_color-inv = 0.
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 0.
ls_color-int = 0.
ls_color-inv = 1.
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 0.
ls_color-int = 1.
ls_color-inv = 0.
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 0.
ls_color-int = 1.
ls_color-inv = 1.
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
* Blue
ls_color-col = 1.
ls_color-int = 0.
ls_color-inv = 0.
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
ls_color-fillcolor = 'FFB0E4FC'. " 176 228 252 blue
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 1.
ls_color-int = 0.
ls_color-inv = 1.
ls_color-fontcolor = 'FFB0E4FC'. " 176 228 252 blue
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 1.
ls_color-int = 1.
ls_color-inv = 0.
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
ls_color-fillcolor = 'FF5FCBFE'. " 095 203 254 Int blue
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 1.
ls_color-int = 1.
ls_color-inv = 1.
ls_color-fontcolor = 'FF5FCBFE'. " 095 203 254
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255
INSERT ls_color INTO TABLE wt_colors.
* Gray
ls_color-col = 2.
ls_color-int = 0.
ls_color-inv = 0.
ls_color-fontcolor = 'FF000000'.
ls_color-fillcolor = 'FFE5EAF0'. " 229 234 240 gray
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 2.
ls_color-int = 0.
ls_color-inv = 1.
ls_color-fontcolor = 'FFE5EAF0'. " 229 234 240 gray
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 2.
ls_color-int = 1.
ls_color-inv = 0.
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
ls_color-fillcolor = 'FFD8E8F4'. " 216 234 244 int gray
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 2.
ls_color-int = 1.
ls_color-inv = 1.
ls_color-fontcolor = 'FFD8E8F4'. " 216 234 244 int gray
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
*Yellow
ls_color-col = 3.
ls_color-int = 0.
ls_color-inv = 0.
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
ls_color-fillcolor = 'FFFEFEB8'. " 254 254 184 yellow
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 3.
ls_color-int = 0.
ls_color-inv = 1.
ls_color-fontcolor = 'FFFEFEB8'. " 254 254 184 yellow
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 3.
ls_color-int = 1.
ls_color-inv = 0.
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
ls_color-fillcolor = 'FFF9ED5D'. " 249 237 093 int yellow
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 3.
ls_color-int = 1.
ls_color-inv = 1.
ls_color-fontcolor = 'FFF9ED5D'. " 249 237 093 int yellow
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
* light blue
ls_color-col = 4.
ls_color-int = 0.
ls_color-inv = 0.
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
ls_color-fillcolor = 'FFCEE7FB'. " 206 231 251 light blue
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 4.
ls_color-int = 0.
ls_color-inv = 1.
ls_color-fontcolor = 'FFCEE7FB'. " 206 231 251 light blue
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 4.
ls_color-int = 1.
ls_color-inv = 0.
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
ls_color-fillcolor = 'FF9ACCEF'. " 154 204 239 int light blue
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 4.
ls_color-int = 1.
ls_color-inv = 1.
ls_color-fontcolor = 'FF9ACCEF'. " 154 204 239 int light blue
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
* Green
ls_color-col = 5.
ls_color-int = 0.
ls_color-inv = 0.
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
ls_color-fillcolor = 'FFCEF8AE'. " 206 248 174 Green
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 5.
ls_color-int = 0.
ls_color-inv = 1.
ls_color-fontcolor = 'FFCEF8AE'. " 206 248 174 Green
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 5.
ls_color-int = 1.
ls_color-inv = 0.
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
ls_color-fillcolor = 'FF7AC769'. " 122 199 105 int Green
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 5.
ls_color-int = 1.
ls_color-inv = 1.
ls_color-fontcolor = 'FF7AC769'. " 122 199 105 int Green
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
* Red
ls_color-col = 6.
ls_color-int = 0.
ls_color-inv = 0.
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
ls_color-fillcolor = 'FFFDBBBC'. " 253 187 188 Red
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 6.
ls_color-int = 0.
ls_color-inv = 1.
ls_color-fontcolor = 'FFFDBBBC'. " 253 187 188 Red
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 6.
ls_color-int = 1.
ls_color-inv = 0.
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
ls_color-fillcolor = 'FFFB6B6B'. " 251 107 107 int Red
INSERT ls_color INTO TABLE wt_colors.
ls_color-col = 6.
ls_color-int = 1.
ls_color-inv = 1.
ls_color-fontcolor = 'FFFB6B6B'. " 251 107 107 int Red
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
INSERT ls_color INTO TABLE wt_colors.
ENDMETHOD.
METHOD get_color.
DATA: ls_con_col TYPE zexcel_s_converter_col,
ls_color TYPE ts_col_converter,
l_line TYPE i,
l_color(4) TYPE c.
FIELD-SYMBOLS: <fs_tab> TYPE STANDARD TABLE,
<fs_stab> TYPE any,
<fs> TYPE any,
<ft_slis> TYPE STANDARD TABLE,
<fs_slis> TYPE any.
* Loop trough the table to set the color properties of each line. The color properties field is
* Char 4 and the characters is set as follows:
* Char 1 = C = This is a color property
* Char 2 = 6 = Color code (1 - 7)
* Char 3 = Intensified on/of = 1 = on
* Char 4 = Inverse display = 0 = of
ASSIGN io_table->* TO <fs_tab>.
IF ws_layo-info_fname IS NOT INITIAL OR
ws_layo-ctab_fname IS NOT INITIAL.
LOOP AT <fs_tab> ASSIGNING <fs_stab>.
l_line = sy-tabix.
IF ws_layo-info_fname IS NOT INITIAL.
ASSIGN COMPONENT ws_layo-info_fname OF STRUCTURE <fs_stab> TO <fs>.
IF sy-subrc = 0 AND <fs> IS NOT INITIAL.
l_color = <fs>.
IF l_color(1) = 'C'.
READ TABLE wt_colors INTO ls_color WITH TABLE KEY col = l_color+1(1)
int = l_color+2(1)
inv = l_color+3(1).
IF sy-subrc = 0.
ls_con_col-rownumber = l_line.
ls_con_col-columnname = space.
ls_con_col-fontcolor = ls_color-fontcolor.
ls_con_col-fillcolor = ls_color-fillcolor.
INSERT ls_con_col INTO TABLE et_colors.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF ws_layo-ctab_fname IS NOT INITIAL.
ASSIGN COMPONENT ws_layo-ctab_fname OF STRUCTURE <fs_stab> TO <ft_slis>.
IF sy-subrc = 0.
LOOP AT <ft_slis> ASSIGNING <fs_slis>.
ASSIGN COMPONENT 'COLOR' OF STRUCTURE <fs_slis> TO <fs>.
IF sy-subrc = 0.
IF <fs> IS NOT INITIAL.
FIELD-SYMBOLS: <col> TYPE any,
<int> TYPE any,
<inv> TYPE any,
<fname> TYPE any,
<nokeycol> TYPE any.
ASSIGN COMPONENT 'COL' OF STRUCTURE <fs> TO <col>.
ASSIGN COMPONENT 'INT' OF STRUCTURE <fs> TO <int>.
ASSIGN COMPONENT 'INV' OF STRUCTURE <fs> TO <inv>.
READ TABLE wt_colors INTO ls_color WITH TABLE KEY col = <col>
int = <int>
inv = <inv>.
IF sy-subrc = 0.
ls_con_col-rownumber = l_line.
ASSIGN COMPONENT 'FNAME' OF STRUCTURE <fs_slis> TO <fname>.
IF sy-subrc NE 0.
ASSIGN COMPONENT 'FIELDNAME' OF STRUCTURE <fs_slis> TO <fname>.
IF sy-subrc EQ 0.
ls_con_col-columnname = <fname>.
ENDIF.
ELSE.
ls_con_col-columnname = <fname>.
ENDIF.
ls_con_col-fontcolor = ls_color-fontcolor.
ls_con_col-fillcolor = ls_color-fillcolor.
ASSIGN COMPONENT 'NOKEYCOL' OF STRUCTURE <fs_slis> TO <nokeycol>.
IF sy-subrc EQ 0.
ls_con_col-nokeycol = <nokeycol>.
ENDIF.
INSERT ls_con_col INTO TABLE et_colors.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDMETHOD.
METHOD get_filter.
DATA: ls_filt TYPE lvc_s_filt,
l_line TYPE i,
ls_filter TYPE zexcel_s_converter_fil.
DATA: lo_addit TYPE REF TO cl_abap_elemdescr,
lt_components_tab TYPE cl_abap_structdescr=>component_table,
ls_components TYPE abap_componentdescr,
lo_table TYPE REF TO cl_abap_tabledescr,
lo_struc TYPE REF TO cl_abap_structdescr,
lo_trange TYPE REF TO data,
lo_srange TYPE REF TO data,
lo_ltabdata TYPE REF TO data.
FIELD-SYMBOLS: <fs_tab> TYPE STANDARD TABLE,
<fs_ltab> TYPE STANDARD TABLE,
<fs_stab> TYPE any,
<fs> TYPE any,
<fs1> TYPE any,
<fs_srange> TYPE any,
<fs_trange> TYPE STANDARD TABLE.
IF ws_option-filter = abap_false.
CLEAR et_filter.
RETURN.
ENDIF.
ASSIGN xo_table->* TO <fs_tab>.
CREATE DATA lo_ltabdata LIKE <fs_tab>.
ASSIGN lo_ltabdata->* TO <fs_ltab>.
LOOP AT wt_filt INTO ls_filt.
LOOP AT <fs_tab> ASSIGNING <fs_stab>.
l_line = sy-tabix.
ASSIGN COMPONENT ls_filt-fieldname OF STRUCTURE <fs_stab> TO <fs>.
IF sy-subrc = 0.
IF l_line = 1.
CLEAR lt_components_tab.
ls_components-name = 'SIGN'.
lo_addit ?= cl_abap_typedescr=>describe_by_data( ls_filt-sign ).
ls_components-type = lo_addit .
INSERT ls_components INTO TABLE lt_components_tab.
ls_components-name = 'OPTION'.
lo_addit ?= cl_abap_typedescr=>describe_by_data( ls_filt-option ).
ls_components-type = lo_addit .
INSERT ls_components INTO TABLE lt_components_tab.
ls_components-name = 'LOW'.
lo_addit ?= cl_abap_typedescr=>describe_by_data( <fs> ).
ls_components-type = lo_addit .
INSERT ls_components INTO TABLE lt_components_tab.
ls_components-name = 'HIGH'.
lo_addit ?= cl_abap_typedescr=>describe_by_data( <fs> ).
ls_components-type = lo_addit .
INSERT ls_components INTO TABLE lt_components_tab.
"create new line type
TRY.
lo_struc = cl_abap_structdescr=>create( p_components = lt_components_tab
p_strict = abap_false ).
CATCH cx_sy_struct_creation.
CONTINUE.
ENDTRY.
lo_table = cl_abap_tabledescr=>create( lo_struc ).
CREATE DATA lo_trange TYPE HANDLE lo_table.
CREATE DATA lo_srange TYPE HANDLE lo_struc.
ASSIGN lo_trange->* TO <fs_trange>.
ASSIGN lo_srange->* TO <fs_srange>.
ENDIF.
CLEAR <fs_trange>.
ASSIGN COMPONENT 'SIGN' OF STRUCTURE <fs_srange> TO <fs1>.
<fs1> = ls_filt-sign.
ASSIGN COMPONENT 'OPTION' OF STRUCTURE <fs_srange> TO <fs1>.
<fs1> = ls_filt-option.
ASSIGN COMPONENT 'LOW' OF STRUCTURE <fs_srange> TO <fs1>.
<fs1> = ls_filt-low.
ASSIGN COMPONENT 'HIGH' OF STRUCTURE <fs_srange> TO <fs1>.
<fs1> = ls_filt-high.
INSERT <fs_srange> INTO TABLE <fs_trange>.
IF <fs> IN <fs_trange>.
IF ws_option-filter = abap_true.
ls_filter-rownumber = l_line.
ls_filter-columnname = ls_filt-fieldname.
INSERT ls_filter INTO TABLE et_filter.
ELSE.
INSERT <fs_stab> INTO TABLE <fs_ltab>.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
IF ws_option-filter = abap_undefined.
<fs_tab> = <fs_ltab>.
CLEAR <fs_ltab>.
ENDIF.
ENDLOOP.
ENDMETHOD.
METHOD update_catalog.
DATA: ls_fieldcatalog TYPE zexcel_s_converter_fcat,
ls_fcat TYPE lvc_s_fcat,
ls_sort TYPE lvc_s_sort,
l_decimals TYPE lvc_decmls.
FIELD-SYMBOLS: <fs_scat> TYPE zexcel_s_converter_fcat.
IF ws_layo-zebra IS NOT INITIAL.
cs_layout-is_stripped = abap_true.
ENDIF.
IF ws_layo-no_keyfix IS INITIAL OR
ws_layo-no_keyfix = '0'.
cs_layout-is_fixed = abap_true.
ENDIF.
LOOP AT wt_fcat INTO ls_fcat.
CLEAR: ls_fieldcatalog,
l_decimals.
CASE ws_option-hidenc.
WHEN abap_false. " We make hiden columns visible
CLEAR ls_fcat-no_out.
WHEN abap_true.
* We convert column and hide it.
WHEN abap_undefined. "We don't convert hiden columns
IF ls_fcat-no_out = abap_true.
ls_fcat-tech = abap_true.
ENDIF.
ENDCASE.
IF ls_fcat-tech = abap_false.
ls_fieldcatalog-tabname = ls_fcat-tabname.
ls_fieldcatalog-fieldname = ls_fcat-fieldname .
ls_fieldcatalog-columnname = ls_fcat-fieldname .
ls_fieldcatalog-position = ls_fcat-col_pos.
ls_fieldcatalog-col_id = ls_fcat-col_id.
ls_fieldcatalog-convexit = ls_fcat-convexit.
ls_fieldcatalog-inttype = ls_fcat-inttype.
ls_fieldcatalog-scrtext_s = ls_fcat-scrtext_s .
ls_fieldcatalog-scrtext_m = ls_fcat-scrtext_m .
ls_fieldcatalog-scrtext_l = ls_fcat-scrtext_l.
l_decimals = ls_fcat-decimals_o.
IF l_decimals IS NOT INITIAL.
ls_fieldcatalog-decimals = l_decimals.
ELSE.
ls_fieldcatalog-decimals = ls_fcat-decimals .
ENDIF.
CASE ws_option-subtot.
WHEN abap_false. " We ignore subtotals
CLEAR ls_fcat-do_sum.
WHEN abap_true. " We convert subtotals and detail
WHEN abap_undefined. " We should only take subtotals and displayed detail
* for now abap_true
ENDCASE.
CASE ls_fcat-do_sum.
WHEN abap_true.
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_sum.
WHEN 'A'.
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_min.
WHEN 'B' .
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_max.
WHEN 'C' .
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_average.
WHEN OTHERS.
CLEAR ls_fieldcatalog-totals_function .
ENDCASE.
ls_fieldcatalog-fix_column = ls_fcat-fix_column.
IF ws_layo-cwidth_opt IS INITIAL.
IF ls_fcat-col_opt IS NOT INITIAL.
ls_fieldcatalog-is_optimized = abap_true.
ENDIF.
ELSE.
ls_fieldcatalog-is_optimized = abap_true.
ENDIF.
IF ls_fcat-no_out IS NOT INITIAL.
ls_fieldcatalog-is_hidden = abap_true.
ls_fieldcatalog-position = ls_fieldcatalog-col_id. " We hide based on orginal data structure
ENDIF.
* Alignment in each cell
CASE ls_fcat-just.
WHEN 'R'.
ls_fieldcatalog-alignment = zcl_excel_style_alignment=>c_horizontal_right.
WHEN 'L'.
ls_fieldcatalog-alignment = zcl_excel_style_alignment=>c_horizontal_left.
WHEN 'C'.
ls_fieldcatalog-alignment = zcl_excel_style_alignment=>c_horizontal_center.
WHEN OTHERS.
CLEAR ls_fieldcatalog-alignment.
ENDCASE.
* Check for subtotals.
READ TABLE wt_sort INTO ls_sort WITH KEY fieldname = ls_fcat-fieldname.
IF sy-subrc = 0 AND ws_option-subtot <> abap_false.
ls_fieldcatalog-sort_level = 0 .
ls_fieldcatalog-is_subtotalled = ls_sort-subtot.
ls_fieldcatalog-is_collapsed = ls_sort-expa.
IF ls_fieldcatalog-is_subtotalled = abap_true.
ls_fieldcatalog-sort_level = ls_sort-spos.
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_sum. " we need function for text
ENDIF.
ENDIF.
APPEND ls_fieldcatalog TO ct_fieldcatalog.
ENDIF.
ENDLOOP.
SORT ct_fieldcatalog BY sort_level ASCENDING.
cs_layout-max_subtotal_level = 0.
LOOP AT ct_fieldcatalog ASSIGNING <fs_scat> WHERE sort_level > 0.
cs_layout-max_subtotal_level = cs_layout-max_subtotal_level + 1.
<fs_scat>-sort_level = cs_layout-max_subtotal_level.
ENDLOOP.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_CONVERTER_ALV</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>ALV grid interface implementation</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
<DESCRIPTIONS>
<SEOCOMPOTX>
<CMPNAME>APPLY_SORT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Apply sort criteria to data table</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CLASS_CONSTRUCTOR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>CLASS_CONSTRUCTOR</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>GET_COLOR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create color table for formating</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>GET_FILTER</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create filter values</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>UPDATE_CATALOG</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create fieldcatalog and layout</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WS_LAYO</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>ALV control: Layout structure</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WS_OPTION</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Converter options for grid configuration</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WT_FCAT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Field Catalog for List Viewer Control</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WT_FILT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>ALV control: Table of filter conditions</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WT_SORT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>ALV Control: Table of Sort Criteria</DESCRIPT>
</SEOCOMPOTX>
</DESCRIPTIONS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,77 @@
CLASS zcl_excel_converter_alv_grid DEFINITION
PUBLIC
INHERITING FROM zcl_excel_converter_alv
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_excel_converter~can_convert_object
REDEFINITION .
*"* public components of class ZCL_EXCEL_CONVERTER_ALV_GRID
*"* do not include other source files here!!!
METHODS zif_excel_converter~create_fieldcatalog
REDEFINITION .
METHODS zif_excel_converter~get_supported_class
REDEFINITION .
PROTECTED SECTION.
*"* protected components of class ZCL_EXCEL_CONVERTER_ALV_GRID
*"* do not include other source files here!!!
*"* private components of class ZCL_EXCEL_CONVERTER_ALV_GRID
*"* do not include other source files here!!!
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_excel_converter_alv_grid IMPLEMENTATION.
METHOD zif_excel_converter~get_supported_class.
rv_supported_class = 'CL_GUI_ALV_GRID'.
ENDMETHOD.
METHOD zif_excel_converter~can_convert_object.
DATA: lo_alv TYPE REF TO cl_gui_alv_grid.
TRY.
lo_alv ?= io_object.
CATCH cx_sy_move_cast_error .
RAISE EXCEPTION TYPE zcx_excel.
ENDTRY.
ENDMETHOD.
METHOD zif_excel_converter~create_fieldcatalog.
DATA: lo_alv TYPE REF TO cl_gui_alv_grid.
zif_excel_converter~can_convert_object( io_object = io_object ).
ws_option = is_option.
lo_alv ?= io_object.
CLEAR: es_layout,
et_fieldcatalog.
IF lo_alv IS BOUND.
lo_alv->get_frontend_fieldcatalog( IMPORTING et_fieldcatalog = wt_fcat ).
lo_alv->get_frontend_layout( IMPORTING es_layout = ws_layo ).
lo_alv->get_sort_criteria( IMPORTING et_sort = wt_sort ) .
lo_alv->get_filter_criteria( IMPORTING et_filter = wt_filt ) .
apply_sort( EXPORTING it_table = it_table
IMPORTING eo_table = eo_table ) .
get_color( EXPORTING io_table = eo_table
IMPORTING et_colors = et_colors ) .
get_filter( IMPORTING et_filter = et_filter
CHANGING xo_table = eo_table ) .
update_catalog( CHANGING cs_layout = es_layout
ct_fieldcatalog = et_fieldcatalog ).
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@ -4,17 +4,13 @@
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_CONVERTER_ALV_GRID</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>SALV converter</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
<TPOOL/>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,55 @@
CLASS zcl_excel_converter_result DEFINITION
PUBLIC
INHERITING FROM zcl_excel_converter_alv
ABSTRACT
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_CONVERTER_RESULT
*"* do not include other source files here!!!
PUBLIC SECTION.
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT
*"* do not include other source files here!!!
PROTECTED SECTION.
METHODS get_table
IMPORTING
!io_object TYPE REF TO object
RETURNING
VALUE(ro_data) TYPE REF TO data .
*"* private components of class ZCL_EXCEL_CONVERTER_RESULT
*"* do not include other source files here!!!
*"* private components of class ZCL_EXCEL_CONVERTER_RESULT
*"* do not include other source files here!!!
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_excel_converter_result IMPLEMENTATION.
METHOD get_table.
DATA: lo_object TYPE REF TO object,
ls_seoclass TYPE seoclass,
l_method TYPE string.
SELECT SINGLE * INTO ls_seoclass
FROM seoclass
WHERE clsname = 'IF_SALV_BS_DATA_SOURCE'.
IF sy-subrc = 0.
l_method = 'GET_TABLE_REF'.
lo_object ?= io_object.
CALL METHOD lo_object->(l_method)
RECEIVING
value = ro_data.
ELSE.
l_method = 'GET_REF_TO_TABLE'.
lo_object ?= io_object.
CALL METHOD lo_object->(l_method)
RECEIVING
value = ro_data.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@ -4,30 +4,19 @@
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_CONVERTER_RESULT</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>Result object for table reference</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSABSTRCT>X</CLSABSTRCT>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
<TPOOL/>
<DESCRIPTIONS>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_CONVERTER_RESULT</CLSNAME>
<CMPNAME>GET_TABLE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get table</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_CONVERTER_RESULT</CLSNAME>
<CMPNAME>GET_TABLE</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Get table</DESCRIPT>
</SEOCOMPOTX>
</DESCRIPTIONS>
</asx:values>
</asx:abap>

View File

@ -0,0 +1,97 @@
CLASS zcl_excel_converter_result_ex DEFINITION
PUBLIC
INHERITING FROM zcl_excel_converter_result
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_CONVERTER_RESULT_EX
*"* do not include other source files here!!!
PUBLIC SECTION.
METHODS zif_excel_converter~can_convert_object
REDEFINITION .
METHODS zif_excel_converter~create_fieldcatalog
REDEFINITION .
METHODS zif_excel_converter~get_supported_class
REDEFINITION .
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_EX
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_EX
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_EX
*"* do not include other source files here!!!
PROTECTED SECTION.
*"* private components of class ZCL_EXCEL_CONVERTER_EX_RESULT
*"* do not include other source files here!!!
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_excel_converter_result_ex IMPLEMENTATION.
METHOD zif_excel_converter~get_supported_class.
rv_supported_class = 'CL_SALV_EX_RESULT_DATA_TABLE'.
ENDMETHOD.
METHOD zif_excel_converter~can_convert_object.
DATA: lo_result TYPE REF TO cl_salv_ex_result_data_table.
TRY.
lo_result ?= io_object.
CATCH cx_sy_move_cast_error .
RAISE EXCEPTION TYPE zcx_excel.
ENDTRY.
ENDMETHOD.
METHOD zif_excel_converter~create_fieldcatalog.
DATA: lo_result TYPE REF TO cl_salv_ex_result_data_table,
lo_ex_cm TYPE REF TO cl_salv_ex_cm,
lo_data TYPE REF TO data.
FIELD-SYMBOLS: <fs_table> TYPE STANDARD TABLE.
zif_excel_converter~can_convert_object( io_object = io_object ).
ws_option = is_option.
lo_result ?= io_object.
CLEAR: es_layout,
et_fieldcatalog.
IF lo_result IS BOUND.
lo_data = get_table( io_object = lo_result->r_model->r_data ).
IF lo_data IS BOUND.
ASSIGN lo_data->* TO <fs_table> .
lo_ex_cm ?= lo_result->r_model->r_model.
ws_layo = lo_ex_cm->s_layo.
* T_DRDN Instance Attribute Public Type LVC_T_DROP
wt_fcat = lo_ex_cm->t_fcat.
wt_filt = lo_ex_cm->t_filt.
* T_HYPE Instance Attribute Public Type LVC_T_HYPE
* T_SELECTED_CELLS Instance Attribute Public Type LVC_T_CELL
* T_SELECTED_COLUMNS Instance Attribute Public Type LVC_T_COL
wt_sort = lo_ex_cm->t_sort.
apply_sort( EXPORTING it_table = <fs_table>
IMPORTING eo_table = eo_table ) .
get_color( EXPORTING io_table = eo_table
IMPORTING et_colors = et_colors ) .
get_filter( IMPORTING et_filter = et_filter
CHANGING xo_table = eo_table ) .
update_catalog( CHANGING cs_layout = es_layout
ct_fieldcatalog = et_fieldcatalog ).
ELSE.
* We have a problem and should stop here.
ENDIF.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@ -4,17 +4,13 @@
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_CONVERTER_RESULT_EX</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>SALV - ALV converter for export</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
<TPOOL/>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,250 @@
CLASS zcl_excel_converter_result_wd DEFINITION
PUBLIC
INHERITING FROM zcl_excel_converter_result
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_CONVERTER_RESULT_WD
*"* do not include other source files here!!!
PUBLIC SECTION.
METHODS zif_excel_converter~can_convert_object
REDEFINITION .
METHODS zif_excel_converter~create_fieldcatalog
REDEFINITION .
METHODS zif_excel_converter~get_supported_class
REDEFINITION .
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_WD
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_WD
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_WD
*"* do not include other source files here!!!
PROTECTED SECTION.
PRIVATE SECTION.
DATA wo_config TYPE REF TO cl_salv_wd_config_table .
DATA wt_fields TYPE salv_wd_t_field_ref .
DATA wt_columns TYPE salv_wd_t_column_ref .
METHODS get_columns_info
CHANGING
!xs_fcat TYPE lvc_s_fcat .
METHODS get_fields_info
CHANGING
!xs_fcat TYPE lvc_s_fcat .
METHODS create_wt_sort .
METHODS create_wt_filt .
METHODS create_wt_fcat
IMPORTING
!io_table TYPE REF TO data .
ENDCLASS.
CLASS zcl_excel_converter_result_wd IMPLEMENTATION.
METHOD create_wt_fcat.
DATA: lr_data TYPE REF TO data,
lo_structdescr TYPE REF TO cl_abap_structdescr,
lt_dfies TYPE ddfields,
ls_dfies TYPE dfies.
DATA: ls_fcat TYPE lvc_s_fcat.
FIELD-SYMBOLS: <fs_tab> TYPE ANY TABLE.
ASSIGN io_table->* TO <fs_tab> .
CREATE DATA lr_data LIKE LINE OF <fs_tab>.
lo_structdescr ?= cl_abap_structdescr=>describe_by_data_ref( lr_data ).
lt_dfies = zcl_excel_common=>describe_structure( io_struct = lo_structdescr ).
LOOP AT lt_dfies INTO ls_dfies.
MOVE-CORRESPONDING ls_dfies TO ls_fcat.
ls_fcat-col_pos = ls_dfies-position.
ls_fcat-key = ls_dfies-keyflag.
get_fields_info( CHANGING xs_fcat = ls_fcat ) .
ls_fcat-col_opt = abap_true.
get_columns_info( CHANGING xs_fcat = ls_fcat ) .
INSERT ls_fcat INTO TABLE wt_fcat.
ENDLOOP.
ENDMETHOD.
METHOD create_wt_filt.
* No neeed for superclass.
* Only for WD
DATA: lt_filters TYPE salv_wd_t_filter_rule_ref,
ls_filt TYPE lvc_s_filt.
FIELD-SYMBOLS: <fs_fields> TYPE salv_wd_s_field_ref,
<fs_filter> TYPE salv_wd_s_filter_rule_ref.
LOOP AT wt_fields ASSIGNING <fs_fields>.
CLEAR lt_filters.
lt_filters = <fs_fields>-r_field->if_salv_wd_filter~get_filter_rules( ) .
LOOP AT lt_filters ASSIGNING <fs_filter>.
ls_filt-fieldname = <fs_fields>-fieldname.
IF <fs_filter>-r_filter_rule->get_included( ) = abap_true.
ls_filt-sign = 'I'.
ELSE.
ls_filt-sign = 'E'.
ENDIF.
ls_filt-option = <fs_filter>-r_filter_rule->get_operator( ).
ls_filt-high = <fs_filter>-r_filter_rule->get_high_value( ) .
ls_filt-low = <fs_filter>-r_filter_rule->get_low_value( ) .
INSERT ls_filt INTO TABLE wt_filt.
ENDLOOP.
ENDLOOP.
ENDMETHOD.
METHOD create_wt_sort.
DATA: lo_sort TYPE REF TO cl_salv_wd_sort_rule,
l_sort_order TYPE salv_wd_constant,
ls_sort TYPE lvc_s_sort.
FIELD-SYMBOLS: <fs_fields> TYPE salv_wd_s_field_ref.
LOOP AT wt_fields ASSIGNING <fs_fields>.
lo_sort = <fs_fields>-r_field->if_salv_wd_sort~get_sort_rule( ) .
IF lo_sort IS BOUND.
l_sort_order = lo_sort->get_sort_order( ).
IF l_sort_order <> if_salv_wd_c_sort=>sort_order.
CLEAR ls_sort.
ls_sort-spos = lo_sort->get_sort_position( ).
ls_sort-fieldname = <fs_fields>-fieldname.
ls_sort-subtot = lo_sort->get_group_aggregation( ).
IF l_sort_order = if_salv_wd_c_sort=>sort_order_ascending.
ls_sort-up = abap_true.
ELSE.
ls_sort-down = abap_true.
ENDIF.
INSERT ls_sort INTO TABLE wt_sort.
ENDIF.
ENDIF.
ENDLOOP.
ENDMETHOD.
METHOD get_columns_info.
DATA: l_numc2 TYPE salv_wd_constant.
FIELD-SYMBOLS: <fs_column> TYPE salv_wd_s_column_ref.
READ TABLE wt_columns ASSIGNING <fs_column> WITH KEY id = xs_fcat-fieldname .
IF sy-subrc = 0.
xs_fcat-col_pos = <fs_column>-r_column->get_position( ) .
l_numc2 = <fs_column>-r_column->get_fixed_position( ).
IF l_numc2 = '02'.
xs_fcat-fix_column = abap_true .
ENDIF.
l_numc2 = <fs_column>-r_column->get_visible( ).
IF l_numc2 = '01'.
xs_fcat-no_out = abap_true .
ENDIF.
ENDIF.
ENDMETHOD.
METHOD get_fields_info.
DATA: lo_aggr TYPE REF TO cl_salv_wd_aggr_rule,
l_aggrtype TYPE salv_wd_constant.
FIELD-SYMBOLS: <fs_fields> TYPE salv_wd_s_field_ref.
READ TABLE wt_fields ASSIGNING <fs_fields> WITH KEY fieldname = xs_fcat-fieldname.
IF sy-subrc = 0.
lo_aggr = <fs_fields>-r_field->if_salv_wd_aggr~get_aggr_rule( ) .
IF lo_aggr IS BOUND.
l_aggrtype = lo_aggr->get_aggregation_type( ) .
CASE l_aggrtype.
WHEN if_salv_wd_c_aggregation=>aggrtype_total.
xs_fcat-do_sum = abap_true.
WHEN if_salv_wd_c_aggregation=>aggrtype_minimum.
xs_fcat-do_sum = 'A'.
WHEN if_salv_wd_c_aggregation=>aggrtype_maximum .
xs_fcat-do_sum = 'B'.
WHEN if_salv_wd_c_aggregation=>aggrtype_average .
xs_fcat-do_sum = 'C'.
WHEN OTHERS.
CLEAR xs_fcat-do_sum .
ENDCASE.
ENDIF.
ENDIF.
ENDMETHOD.
METHOD zif_excel_converter~get_supported_class.
rv_supported_class = 'CL_SALV_WD_RESULT_DATA_TABLE'.
ENDMETHOD.
METHOD zif_excel_converter~can_convert_object.
DATA: lo_result TYPE REF TO cl_salv_wd_result_data_table.
TRY.
lo_result ?= io_object.
CATCH cx_sy_move_cast_error .
RAISE EXCEPTION TYPE zcx_excel.
ENDTRY.
ENDMETHOD.
METHOD zif_excel_converter~create_fieldcatalog.
DATA: lo_result TYPE REF TO cl_salv_wd_result_data_table,
lo_data TYPE REF TO data.
FIELD-SYMBOLS: <fs_table> TYPE STANDARD TABLE.
zif_excel_converter~can_convert_object( io_object = io_object ).
ws_option = is_option.
lo_result ?= io_object.
CLEAR: es_layout,
et_fieldcatalog.
IF lo_result IS BOUND.
lo_data = get_table( io_object = lo_result->r_model->r_data ).
IF lo_data IS BOUND.
ASSIGN lo_data->* TO <fs_table> .
wo_config ?= lo_result->r_model->r_model.
IF wo_config IS BOUND.
wt_fields = wo_config->if_salv_wd_field_settings~get_fields( ) .
wt_columns = wo_config->if_salv_wd_column_settings~get_columns( ) .
ENDIF.
create_wt_fcat( io_table = lo_data ).
create_wt_sort( ).
create_wt_filt( ).
apply_sort( EXPORTING it_table = <fs_table>
IMPORTING eo_table = eo_table ) .
get_filter( IMPORTING et_filter = et_filter
CHANGING xo_table = eo_table ) .
update_catalog( CHANGING cs_layout = es_layout
ct_fieldcatalog = et_fieldcatalog ).
ELSE.
* We have a problem and should stop here
ENDIF.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_CONVERTER_RESULT_WD</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>SALV converter for web dynpro</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
<DESCRIPTIONS>
<SEOCOMPOTX>
<CMPNAME>CREATE_WT_FCAT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create wt_fcat for WD interface</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CREATE_WT_FILT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create wt_filt for WD interface</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>CREATE_WT_SORT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create wt_sort for WD interface</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>GET_COLUMNS_INFO</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Read data from WD columns object</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>GET_FIELDS_INFO</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get aggregation from field table</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WO_CONFIG</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Configuration of the ALV Output</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WT_COLUMNS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>SALV_WD_T_COLUMN_REF</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WT_FIELDS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>SALV_WD_T_FIELD_REF</DESCRIPT>
</SEOCOMPOTX>
</DESCRIPTIONS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,39 @@
CLASS zcl_excel_converter_salv_model DEFINITION
PUBLIC
INHERITING FROM cl_salv_model
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS is_get_metadata_callable
IMPORTING
io_salv TYPE REF TO cl_salv_table
RETURNING
VALUE(result) TYPE abap_bool.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_excel_converter_salv_model IMPLEMENTATION.
METHOD is_get_metadata_callable.
DATA: lo_object TYPE REF TO object,
lo_model TYPE REF TO cl_salv_model.
" In 7.52 and older versions, we have a short dump with CL_SALV_TABLE->GET_METADATA if the ALV is not displayed
" (due to io_salv->r_controller->r_adapter not instantiated yet). That's later fixed by SAP (no short dump in 7.57).
" NB: r_controller is always instantiated.
lo_object = io_salv.
TRY.
lo_model ?= lo_object.
CATCH cx_sy_move_cast_error.
" In 7.57, CL_SALV_TABLE is no more a subclass of CL_SALV_MODEL, but CL_SALV_TABLE->GET_METADATA can be called.
result = abap_true.
RETURN.
ENDTRY.
result = boolc( lo_model->r_controller->r_adapter IS BOUND ).
ENDMETHOD.
ENDCLASS.

View File

@ -3,18 +3,14 @@
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_CUSTOMUI</CLSNAME>
<VERSION>1</VERSION>
<CLSNAME>ZCL_EXCEL_CONVERTER_SALV_MODEL</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>Excel customUI</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<DESCRIPT>SALV model utility methods</DESCRIPT>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
<TPOOL/>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,273 @@
CLASS zcl_excel_converter_salv_table DEFINITION
PUBLIC
INHERITING FROM zcl_excel_converter_alv
FINAL
CREATE PUBLIC .
*"* public components of class ZCL_EXCEL_CONVERTER_SALV_TABLE
*"* do not include other source files here!!!
PUBLIC SECTION.
METHODS zif_excel_converter~can_convert_object
REDEFINITION .
METHODS zif_excel_converter~create_fieldcatalog
REDEFINITION .
METHODS zif_excel_converter~get_supported_class
REDEFINITION .
*"* protected components of class ZCL_EXCEL_CONVERTER_SALV_TABLE
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_CONVERTER_SALV_TABLE
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_CONVERTER_SALV_TABLE
*"* do not include other source files here!!!
PROTECTED SECTION.
PRIVATE SECTION.
METHODS load_data
IMPORTING
!io_salv TYPE REF TO cl_salv_table
!it_table TYPE STANDARD TABLE .
METHODS is_intercept_data_active
RETURNING
VALUE(rv_result) TYPE abap_bool.
ENDCLASS.
CLASS zcl_excel_converter_salv_table IMPLEMENTATION.
METHOD load_data.
DATA: lo_columns TYPE REF TO cl_salv_columns_table,
lo_aggregations TYPE REF TO cl_salv_aggregations,
lo_sorts TYPE REF TO cl_salv_sorts,
lo_filters TYPE REF TO cl_salv_filters,
lo_functional TYPE REF TO cl_salv_functional_settings,
lo_display TYPE REF TO cl_salv_display_settings.
DATA: ls_vari TYPE disvariant,
lo_layout TYPE REF TO cl_salv_layout.
DATA lt_kkblo_fieldcat TYPE kkblo_t_fieldcat.
DATA ls_kkblo_layout TYPE kkblo_layout.
DATA lt_kkblo_filter TYPE kkblo_t_filter.
DATA lt_kkblo_sort TYPE kkblo_t_sortinfo.
DATA: lv_intercept_data_active TYPE abap_bool,
ls_layout_key TYPE salv_s_layout_key.
lo_layout = io_salv->get_layout( ) .
lo_columns = io_salv->get_columns( ).
lo_aggregations = io_salv->get_aggregations( ) .
lo_sorts = io_salv->get_sorts( ) .
lo_filters = io_salv->get_filters( ) .
lo_display = io_salv->get_display_settings( ) .
lo_functional = io_salv->get_functional_settings( ) .
CLEAR: wt_fcat, wt_sort, wt_filt.
lv_intercept_data_active = is_intercept_data_active( ).
* First update metadata if we can.
IF io_salv->is_offline( ) = abap_false.
IF lv_intercept_data_active = abap_true.
ls_layout_key = lo_layout->get_key( ).
ls_vari-report = ls_layout_key-report.
ls_vari-handle = ls_layout_key-handle.
ls_vari-log_group = ls_layout_key-logical_group.
ls_vari-variant = lo_layout->get_initial_layout( ).
ELSE.
IF zcl_excel_converter_salv_model=>is_get_metadata_callable( io_salv ) = abap_true.
io_salv->get_metadata( ) .
ELSE.
" (do same as offline below)
cl_salv_controller_metadata=>get_variant(
EXPORTING
r_layout = lo_layout
CHANGING
s_variant = ls_vari ).
ENDIF.
ENDIF.
ELSE.
* If we are offline we need to build this.
cl_salv_controller_metadata=>get_variant(
EXPORTING
r_layout = lo_layout
CHANGING
s_variant = ls_vari ).
ENDIF.
*... get the column information
wt_fcat = cl_salv_controller_metadata=>get_lvc_fieldcatalog(
r_columns = lo_columns
r_aggregations = lo_aggregations ).
*... get the layout information
cl_salv_controller_metadata=>get_lvc_layout(
EXPORTING
r_functional_settings = lo_functional
r_display_settings = lo_display
r_columns = lo_columns
r_aggregations = lo_aggregations
CHANGING
s_layout = ws_layo ).
* the fieldcatalog is not complete yet!
CALL FUNCTION 'LVC_FIELDCAT_COMPLETE'
EXPORTING
i_complete = 'X'
i_refresh_buffer = space
i_buffer_active = space
is_layout = ws_layo
i_test = '1'
i_fcat_complete = 'X'
IMPORTING
es_layout = ws_layo
CHANGING
ct_fieldcat = wt_fcat.
IF ls_vari IS NOT INITIAL AND
( io_salv->is_offline( ) = abap_true
OR lv_intercept_data_active = abap_true ).
CALL FUNCTION 'LVC_TRANSFER_TO_KKBLO'
EXPORTING
it_fieldcat_lvc = wt_fcat
is_layout_lvc = ws_layo
IMPORTING
et_fieldcat_kkblo = lt_kkblo_fieldcat
es_layout_kkblo = ls_kkblo_layout
TABLES
it_data = it_table
EXCEPTIONS
it_data_missing = 1
it_fieldcat_lvc_missing = 2
OTHERS = 3.
IF sy-subrc <> 0.
ENDIF.
CALL FUNCTION 'LT_VARIANT_LOAD'
EXPORTING
i_tabname = '1'
i_dialog = ' '
i_user_specific = 'X'
i_fcat_complete = 'X'
IMPORTING
et_fieldcat = lt_kkblo_fieldcat
et_sort = lt_kkblo_sort
et_filter = lt_kkblo_filter
CHANGING
cs_layout = ls_kkblo_layout
ct_default_fieldcat = lt_kkblo_fieldcat
cs_variant = ls_vari
EXCEPTIONS
wrong_input = 1
fc_not_complete = 2
not_found = 3
OTHERS = 4.
IF sy-subrc <> 0.
ENDIF.
CALL FUNCTION 'LVC_TRANSFER_FROM_KKBLO'
EXPORTING
it_fieldcat_kkblo = lt_kkblo_fieldcat
it_sort_kkblo = lt_kkblo_sort
it_filter_kkblo = lt_kkblo_filter
is_layout_kkblo = ls_kkblo_layout
IMPORTING
et_fieldcat_lvc = wt_fcat
et_sort_lvc = wt_sort
et_filter_lvc = wt_filt
es_layout_lvc = ws_layo
TABLES
it_data = it_table
EXCEPTIONS
it_data_missing = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
ELSE.
* ... get the sort information
wt_sort = cl_salv_controller_metadata=>get_lvc_sort( lo_sorts ).
* ... get the filter information
wt_filt = cl_salv_controller_metadata=>get_lvc_filter( lo_filters ).
ENDIF.
ENDMETHOD.
METHOD zif_excel_converter~get_supported_class.
rv_supported_class = 'CL_SALV_TABLE'.
ENDMETHOD.
METHOD zif_excel_converter~can_convert_object.
DATA: lo_salv TYPE REF TO cl_salv_table.
TRY.
lo_salv ?= io_object.
CATCH cx_sy_move_cast_error .
RAISE EXCEPTION TYPE zcx_excel.
ENDTRY.
ENDMETHOD.
METHOD zif_excel_converter~create_fieldcatalog.
DATA: lo_salv TYPE REF TO cl_salv_table.
zif_excel_converter~can_convert_object( io_object = io_object ).
ws_option = is_option.
lo_salv ?= io_object.
CLEAR: es_layout,
et_fieldcatalog,
et_colors .
IF lo_salv IS BOUND.
load_data( EXPORTING io_salv = lo_salv
it_table = it_table ).
apply_sort( EXPORTING it_table = it_table
IMPORTING eo_table = eo_table ) .
get_color( EXPORTING io_table = eo_table
IMPORTING et_colors = et_colors ) .
get_filter( IMPORTING et_filter = et_filter
CHANGING xo_table = eo_table ) .
update_catalog( CHANGING cs_layout = es_layout
ct_fieldcatalog = et_fieldcatalog ).
ENDIF.
ENDMETHOD.
METHOD is_intercept_data_active.
DATA: lr_s_type_runtime_info TYPE REF TO data.
FIELD-SYMBOLS: <ls_type_runtime_info> TYPE any,
<lv_display> TYPE any,
<lv_data> TYPE any.
rv_result = abap_false.
TRY.
CREATE DATA lr_s_type_runtime_info TYPE ('CL_SALV_BS_RUNTIME_INFO=>S_TYPE_RUNTIME_INFO').
ASSIGN lr_s_type_runtime_info->* TO <ls_type_runtime_info>.
CALL METHOD ('CL_SALV_BS_RUNTIME_INFO')=>('GET')
RECEIVING
value = <ls_type_runtime_info>.
ASSIGN ('<LS_TYPE_RUNTIME_INFO>-DISPLAY') TO <lv_display>.
CHECK sy-subrc = 0.
ASSIGN ('<LS_TYPE_RUNTIME_INFO>-DATA') TO <lv_data>.
CHECK sy-subrc = 0.
IF <lv_display> = abap_false AND <lv_data> = abap_true.
rv_result = abap_true.
ENDIF.
CATCH cx_sy_create_data_error cx_sy_dyn_call_error cx_salv_bs_sc_runtime_info.
rv_result = abap_false.
ENDTRY.
ENDMETHOD.
ENDCLASS.

View File

@ -4,30 +4,19 @@
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_CONVERTER_SALV_TABLE</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>SALV converter</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
<TPOOL/>
<DESCRIPTIONS>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_CONVERTER_SALV_TABLE</CLSNAME>
<CMPNAME>LOAD_DATA</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Fill internal layout tables</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_CONVERTER_SALV_TABLE</CLSNAME>
<CMPNAME>LOAD_DATA</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Fill internal layout tables</DESCRIPT>
</SEOCOMPOTX>
</DESCRIPTIONS>
</asx:values>
</asx:abap>

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,7 @@
*"* use this source file for any type declarations (class
*"* definitions, interfaces or data types) you need for method
*"* implementation or private method's signature
TYPE-POOLS: sydes.
TYPE-POOLS: slis.
*"* use this source file for any type of declarations (class
*"* definitions, interfaces or type declarations) you need for
*"* components in the private section
*--------------------------------------------------------------------*
* CLASS c_oi_proxy_error
*--------------------------------------------------------------------*

View File

@ -1,6 +1,6 @@
*"* local class implementation for public class
*"* use this source file for the implementation part of
*"* local helper classes
*"* use this source file for the definition and implementation of
*"* local helper classes, interface definitions and type
*"* declarations
*&---------------------------------------------------------------------*
*& Class (Implementation) C_OI_PROXY_ERROR

View File

@ -3,18 +3,14 @@
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_CUSTOMUI_BUTTON</CLSNAME>
<VERSION>1</VERSION>
<CLSNAME>ZCL_EXCEL_OLE</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>Excel customUI Button</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<DESCRIPT>OLE processing (including DOI)</DESCRIPT>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
<TPOOL/>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -3,22 +3,22 @@
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD04V>
<ROLLNAME>ZEXCEL_PROTECTION</ROLLNAME>
<ROLLNAME>ZEXCEL_COLUMN_ID</ROLLNAME>
<DDLANGUAGE>E</DDLANGUAGE>
<DOMNAME>CHAR20</DOMNAME>
<HEADLEN>20</HEADLEN>
<HEADLEN>30</HEADLEN>
<SCRLEN1>10</SCRLEN1>
<SCRLEN2>15</SCRLEN2>
<SCRLEN3>20</SCRLEN3>
<DDTEXT>Protection</DDTEXT>
<REPTEXT>Protection</REPTEXT>
<SCRTEXT_S>Protection</SCRTEXT_S>
<SCRTEXT_M>Protection</SCRTEXT_M>
<SCRTEXT_L>Protection</SCRTEXT_L>
<DTELMASTER>E</DTELMASTER>
<REFKIND>D</REFKIND>
<DDTEXT>ALV control: Column ID</DDTEXT>
<REPTEXT>Column ID</REPTEXT>
<SCRTEXT_S>Column ID</SCRTEXT_S>
<SCRTEXT_M>Column ID</SCRTEXT_M>
<SCRTEXT_L>Column ID</SCRTEXT_L>
<DTELMASTER>D</DTELMASTER>
<DATATYPE>INT4</DATATYPE>
<LENG>000010</LENG>
<OUTPUTLEN>000011</OUTPUTLEN>
</DD04V>
<TPARA/>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DTEL" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD04V>
<ROLLNAME>ZEXCEL_COMPONENT_POSITION</ROLLNAME>
<DDLANGUAGE>E</DDLANGUAGE>
<HEADLEN>06</HEADLEN>
<SCRLEN1>10</SCRLEN1>
<SCRLEN2>15</SCRLEN2>
<SCRLEN3>20</SCRLEN3>
<DDTEXT>Position of the field in the table</DDTEXT>
<REPTEXT>TabPos</REPTEXT>
<SCRTEXT_S>Table pos.</SCRTEXT_S>
<SCRTEXT_M>Table position</SCRTEXT_M>
<SCRTEXT_L>Table position</SCRTEXT_L>
<APPLCLASS>SDIC</APPLCLASS>
<AUTHCLASS>01</AUTHCLASS>
<DTELMASTER>D</DTELMASTER>
<DATATYPE>NUMC</DATATYPE>
<LENG>000004</LENG>
<OUTPUTLEN>000004</OUTPUTLEN>
</DD04V>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DOMA" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD01V>
<DOMNAME>ZEXCEL_CONVEXIT</DOMNAME>
<DDLANGUAGE>E</DDLANGUAGE>
<DATATYPE>CHAR</DATATYPE>
<LENG>000005</LENG>
<OUTPUTLEN>000005</OUTPUTLEN>
<DDTEXT>Conversion routine</DDTEXT>
<APPLCLASS>SDIC</APPLCLASS>
<AUTHCLASS>01</AUTHCLASS>
</DD01V>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DTEL" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD04V>
<ROLLNAME>ZEXCEL_CONVEXIT</ROLLNAME>
<DDLANGUAGE>E</DDLANGUAGE>
<DOMNAME>ZEXCEL_CONVEXIT</DOMNAME>
<HEADLEN>30</HEADLEN>
<SCRLEN1>10</SCRLEN1>
<SCRLEN2>15</SCRLEN2>
<SCRLEN3>20</SCRLEN3>
<DDTEXT>Conversion Routine</DDTEXT>
<REPTEXT>Conversion Routine</REPTEXT>
<SCRTEXT_S>Conv.Rout.</SCRTEXT_S>
<SCRTEXT_M>Convers. Rout.</SCRTEXT_M>
<SCRTEXT_L>Conversion Routine</SCRTEXT_L>
<APPLCLASS>SDIC</APPLCLASS>
<AUTHCLASS>01</AUTHCLASS>
<DTELMASTER>D</DTELMASTER>
<REFKIND>D</REFKIND>
</DD04V>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -3,28 +3,27 @@
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD01V>
<DOMNAME>ZEXCEL_BOOLE01</DOMNAME>
<DOMNAME>ZEXCEL_DDIC_FLAG</DOMNAME>
<DDLANGUAGE>E</DDLANGUAGE>
<DATATYPE>CHAR</DATATYPE>
<LENG>000001</LENG>
<OUTPUTLEN>000001</OUTPUTLEN>
<VALEXI>X</VALEXI>
<DDTEXT>XML Schema bool data type</DDTEXT>
<DDTEXT>Flag (X or blank)</DDTEXT>
<APPLCLASS>SDIC</APPLCLASS>
<AUTHCLASS>01</AUTHCLASS>
</DD01V>
<DD07V_TAB>
<DD07V>
<DOMNAME>ZEXCEL_BOOLE01</DOMNAME>
<VALPOS>0001</VALPOS>
<DDLANGUAGE>E</DDLANGUAGE>
<DOMVALUE_L>1</DOMVALUE_L>
<DDTEXT>True</DDTEXT>
<DDTEXT>Do not set flag</DDTEXT>
</DD07V>
<DD07V>
<DOMNAME>ZEXCEL_BOOLE01</DOMNAME>
<VALPOS>0002</VALPOS>
<DDLANGUAGE>E</DDLANGUAGE>
<DOMVALUE_L>0</DOMVALUE_L>
<DDTEXT>False</DDTEXT>
<DOMVALUE_L>X</DOMVALUE_L>
<DDTEXT>Set flag</DDTEXT>
</DD07V>
</DD07V_TAB>
</asx:values>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DOMA" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD01V>
<DOMNAME>ZEXCEL_DISP_TEXT_LONG</DOMNAME>
<DDLANGUAGE>E</DDLANGUAGE>
<DATATYPE>CHAR</DATATYPE>
<LENG>000040</LENG>
<OUTPUTLEN>000040</OUTPUTLEN>
<LOWERCASE>X</LOWERCASE>
<DDTEXT>Long keyword</DDTEXT>
<APPLCLASS>SDIC</APPLCLASS>
<AUTHCLASS>01</AUTHCLASS>
</DD01V>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DTEL" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD04V>
<ROLLNAME>ZEXCEL_DISP_TEXT_LONG</ROLLNAME>
<DDLANGUAGE>E</DDLANGUAGE>
<DOMNAME>ZEXCEL_DISP_TEXT_LONG</DOMNAME>
<HEADLEN>30</HEADLEN>
<SCRLEN1>10</SCRLEN1>
<SCRLEN2>15</SCRLEN2>
<SCRLEN3>20</SCRLEN3>
<DDTEXT>Long Field Label</DDTEXT>
<REPTEXT>Long Field Label</REPTEXT>
<SCRTEXT_S>Long</SCRTEXT_S>
<SCRTEXT_M>Long Fld Label</SCRTEXT_M>
<SCRTEXT_L>Long field label</SCRTEXT_L>
<APPLCLASS>SDIC</APPLCLASS>
<AUTHCLASS>01</AUTHCLASS>
<DTELMASTER>D</DTELMASTER>
<DEFFDNAME>SCRTEXT_L</DEFFDNAME>
<REFKIND>D</REFKIND>
</DD04V>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DOMA" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD01V>
<DOMNAME>ZEXCEL_DISP_TEXT_MEDIUM</DOMNAME>
<DDLANGUAGE>E</DDLANGUAGE>
<DATATYPE>CHAR</DATATYPE>
<LENG>000020</LENG>
<OUTPUTLEN>000020</OUTPUTLEN>
<LOWERCASE>X</LOWERCASE>
<DDTEXT>Medium keyword</DDTEXT>
<APPLCLASS>SDIC</APPLCLASS>
<AUTHCLASS>01</AUTHCLASS>
</DD01V>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DTEL" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD04V>
<ROLLNAME>ZEXCEL_DISP_TEXT_MEDIUM</ROLLNAME>
<DDLANGUAGE>E</DDLANGUAGE>
<DOMNAME>ZEXCEL_DISP_TEXT_MEDIUM</DOMNAME>
<HEADLEN>30</HEADLEN>
<SCRLEN1>10</SCRLEN1>
<SCRLEN2>15</SCRLEN2>
<SCRLEN3>20</SCRLEN3>
<DDTEXT>Medium Field Label</DDTEXT>
<REPTEXT>Medium Field Label</REPTEXT>
<SCRTEXT_S>Medium</SCRTEXT_S>
<SCRTEXT_M>Medium Label</SCRTEXT_M>
<SCRTEXT_L>Medium Field Label</SCRTEXT_L>
<APPLCLASS>SDIC</APPLCLASS>
<AUTHCLASS>01</AUTHCLASS>
<DTELMASTER>D</DTELMASTER>
<DEFFDNAME>SCRTEXT_M</DEFFDNAME>
<REFKIND>D</REFKIND>
</DD04V>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DOMA" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD01V>
<DOMNAME>ZEXCEL_DISP_TEXT_SHORT</DOMNAME>
<DDLANGUAGE>E</DDLANGUAGE>
<DATATYPE>CHAR</DATATYPE>
<LENG>000010</LENG>
<OUTPUTLEN>000010</OUTPUTLEN>
<LOWERCASE>X</LOWERCASE>
<DDTEXT>Short keyword</DDTEXT>
<APPLCLASS>SDIC</APPLCLASS>
<AUTHCLASS>01</AUTHCLASS>
</DD01V>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DTEL" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD04V>
<ROLLNAME>ZEXCEL_DISP_TEXT_SHORT</ROLLNAME>
<DDLANGUAGE>E</DDLANGUAGE>
<DOMNAME>ZEXCEL_DISP_TEXT_SHORT</DOMNAME>
<HEADLEN>30</HEADLEN>
<SCRLEN1>10</SCRLEN1>
<SCRLEN2>15</SCRLEN2>
<SCRLEN3>20</SCRLEN3>
<DDTEXT>Short Field Label</DDTEXT>
<REPTEXT>Short field label</REPTEXT>
<SCRTEXT_S>Short</SCRTEXT_S>
<SCRTEXT_M>ShortFieldLabel</SCRTEXT_M>
<SCRTEXT_L>Short field label</SCRTEXT_L>
<APPLCLASS>SDIC</APPLCLASS>
<AUTHCLASS>01</AUTHCLASS>
<DTELMASTER>D</DTELMASTER>
<DEFFDNAME>SCRTEXT_S</DEFFDNAME>
<REFKIND>D</REFKIND>
</DD04V>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DTEL" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD04V>
<ROLLNAME>ZEXCEL_KEY_COLOR_OVERRIDE</ROLLNAME>
<DDLANGUAGE>E</DDLANGUAGE>
<DOMNAME>CHAR1</DOMNAME>
<DDTEXT>ALV control: Override key color</DDTEXT>
<DTELMASTER>D</DTELMASTER>
<REFKIND>D</REFKIND>
</DD04V>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -7,56 +7,41 @@
<DDLANGUAGE>E</DDLANGUAGE>
<TABCLASS>INTTAB</TABCLASS>
<DDTEXT>Color information for cells</DDTEXT>
<MASTERLANG>E</MASTERLANG>
<EXCLASS>3</EXCLASS>
</DD02V>
<DD03P_TABLE>
<DD03P>
<TABNAME>ZEXCEL_S_CONVERTER_COL</TABNAME>
<FIELDNAME>ROWNUMBER</FIELDNAME>
<POSITION>0001</POSITION>
<ROLLNAME>ZEXCEL_CELL_ROW</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<TABNAME>ZEXCEL_S_CONVERTER_COL</TABNAME>
<FIELDNAME>COLUMNNAME</FIELDNAME>
<POSITION>0002</POSITION>
<ROLLNAME>FIELDNAME</ROLLNAME>
<ROLLNAME>ZEXCEL_FIELDNAME</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<TABNAME>ZEXCEL_S_CONVERTER_COL</TABNAME>
<FIELDNAME>FONTCOLOR</FIELDNAME>
<POSITION>0003</POSITION>
<ROLLNAME>ZEXCEL_STYLE_COLOR_ARGB</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<TABNAME>ZEXCEL_S_CONVERTER_COL</TABNAME>
<FIELDNAME>FILLCOLOR</FIELDNAME>
<POSITION>0004</POSITION>
<ROLLNAME>ZEXCEL_STYLE_COLOR_ARGB</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<TABNAME>ZEXCEL_S_CONVERTER_COL</TABNAME>
<FIELDNAME>NOKEYCOL</FIELDNAME>
<POSITION>0005</POSITION>
<ROLLNAME>LVC_NOKEYC</ROLLNAME>
<ROLLNAME>ZEXCEL_KEY_COLOR_OVERRIDE</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
</DD03P_TABLE>
<DD05M_TABLE/>
<DD08V_TABLE/>
<DD12V/>
<DD17V/>
<DD35V_TALE/>
<DD36M/>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,175 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_TABL" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD02V>
<TABNAME>ZEXCEL_S_CONVERTER_FCAT</TABNAME>
<DDLANGUAGE>E</DDLANGUAGE>
<TABCLASS>INTTAB</TABCLASS>
<DDTEXT>Field catalog for converter</DDTEXT>
<MASTERLANG>E</MASTERLANG>
<EXCLASS>4</EXCLASS>
</DD02V>
<DD03P_TABLE>
<DD03P>
<FIELDNAME>TABNAME</FIELDNAME>
<ROLLNAME>TABNAME</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>FIELDNAME</FIELDNAME>
<ROLLNAME>ZEXCEL_FIELDNAME</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>COLUMNNAME</FIELDNAME>
<ROLLNAME>ZEXCEL_FIELDNAME</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>POSITION</FIELDNAME>
<ROLLNAME>ZEXCEL_COMPONENT_POSITION</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>INTTYPE</FIELDNAME>
<ADMINFIELD>0</ADMINFIELD>
<INTTYPE>C</INTTYPE>
<INTLEN>000002</INTLEN>
<DATATYPE>CHAR</DATATYPE>
<LENG>000001</LENG>
<MASK> CHAR</MASK>
<DDTEXT>ABAP data type (C,D,N,...)</DDTEXT>
</DD03P>
<DD03P>
<FIELDNAME>DECIMALS</FIELDNAME>
<ROLLNAME>INT1</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>SCRTEXT_S</FIELDNAME>
<ROLLNAME>ZEXCEL_DISP_TEXT_SHORT</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>SCRTEXT_M</FIELDNAME>
<ROLLNAME>ZEXCEL_DISP_TEXT_MEDIUM</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>SCRTEXT_L</FIELDNAME>
<ROLLNAME>ZEXCEL_DISP_TEXT_LONG</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>TOTALS_FUNCTION</FIELDNAME>
<ROLLNAME>ZEXCEL_TABLE_TOTALS_FUNCTION</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>FIX_COLUMN</FIELDNAME>
<ROLLNAME>FLAG</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<VALEXI>X</VALEXI>
<SHLPORIGIN>F</SHLPORIGIN>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>ALIGNMENT</FIELDNAME>
<ROLLNAME>ZEXCEL_ALIGNMENT</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>IS_OPTIMIZED</FIELDNAME>
<ROLLNAME>FLAG</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<VALEXI>X</VALEXI>
<SHLPORIGIN>F</SHLPORIGIN>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>IS_HIDDEN</FIELDNAME>
<ROLLNAME>FLAG</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<VALEXI>X</VALEXI>
<SHLPORIGIN>F</SHLPORIGIN>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>IS_COLLAPSED</FIELDNAME>
<ROLLNAME>FLAG</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<VALEXI>X</VALEXI>
<SHLPORIGIN>F</SHLPORIGIN>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>IS_SUBTOTALLED</FIELDNAME>
<ROLLNAME>FLAG</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<VALEXI>X</VALEXI>
<SHLPORIGIN>F</SHLPORIGIN>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>SORT_LEVEL</FIELDNAME>
<ROLLNAME>INT4</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>STYLE_HDR</FIELDNAME>
<ROLLNAME>ZEXCEL_CELL_STYLE</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>STYLE_NORMAL</FIELDNAME>
<ROLLNAME>ZEXCEL_CELL_STYLE</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>STYLE_STRIPPED</FIELDNAME>
<ROLLNAME>ZEXCEL_CELL_STYLE</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>STYLE_TOTAL</FIELDNAME>
<ROLLNAME>ZEXCEL_CELL_STYLE</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>STYLE_SUBTOTAL</FIELDNAME>
<ROLLNAME>ZEXCEL_CELL_STYLE</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>COL_ID</FIELDNAME>
<ROLLNAME>ZEXCEL_COLUMN_ID</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<FIELDNAME>CONVEXIT</FIELDNAME>
<ROLLNAME>ZEXCEL_CONVEXIT</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
</DD03P_TABLE>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -3,22 +3,22 @@
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD04V>
<ROLLNAME>ZEXCEL_FORMAT</ROLLNAME>
<ROLLNAME>ZEXCEL_SCREEN_DISPLAY</ROLLNAME>
<DDLANGUAGE>E</DDLANGUAGE>
<DOMNAME>ZEXCEL_FORMAT</DOMNAME>
<HEADLEN>11</HEADLEN>
<DOMNAME>ZEXCEL_DDIC_FLAG</DOMNAME>
<HEADLEN>02</HEADLEN>
<SCRLEN1>10</SCRLEN1>
<SCRLEN2>15</SCRLEN2>
<SCRLEN3>20</SCRLEN3>
<DDTEXT>File format</DDTEXT>
<REPTEXT>File format</REPTEXT>
<SCRTEXT_S>File type</SCRTEXT_S>
<SCRTEXT_M>File format</SCRTEXT_M>
<SCRTEXT_L>File format</SCRTEXT_L>
<DTELMASTER>E</DTELMASTER>
<DDTEXT>Flag: Field is displayed on dynpro</DDTEXT>
<REPTEXT>SF</REPTEXT>
<SCRTEXT_S>Dynpro</SCRTEXT_S>
<SCRTEXT_M>Screen field</SCRTEXT_M>
<SCRTEXT_L>Screen field</SCRTEXT_L>
<APPLCLASS>SDIC</APPLCLASS>
<DTELMASTER>D</DTELMASTER>
<REFKIND>D</REFKIND>
</DD04V>
<TPARA/>
</asx:values>
</asx:abap>
</abapGit>

Some files were not shown because too many files have changed in this diff Show More