mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-06 00:56:20 +08:00
Merge branch 'main' into issue-1092
This commit is contained in:
commit
19949a457b
39
src/not_cloud/zcl_excel_converter_salv_model.clas.abap
Normal file
39
src/not_cloud/zcl_excel_converter_salv_model.clas.abap
Normal 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.
|
16
src/not_cloud/zcl_excel_converter_salv_model.clas.xml
Normal file
16
src/not_cloud/zcl_excel_converter_salv_model.clas.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?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_SALV_MODEL</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>SALV model utility methods</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -75,7 +75,16 @@ CLASS zcl_excel_converter_salv_table IMPLEMENTATION.
|
|||
ls_vari-handle = ls_layout_key-handle.
|
||||
ls_vari-log_group = ls_layout_key-logical_group.
|
||||
ELSE.
|
||||
io_salv->get_metadata( ) .
|
||||
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.
|
||||
|
|
Loading…
Reference in New Issue
Block a user