mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-06 07:01:02 +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-handle = ls_layout_key-handle.
|
||||||
ls_vari-log_group = ls_layout_key-logical_group.
|
ls_vari-log_group = ls_layout_key-logical_group.
|
||||||
ELSE.
|
ELSE.
|
||||||
|
IF zcl_excel_converter_salv_model=>is_get_metadata_callable( io_salv ) = abap_true.
|
||||||
io_salv->get_metadata( ) .
|
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.
|
ENDIF.
|
||||||
ELSE.
|
ELSE.
|
||||||
* If we are offline we need to build this.
|
* If we are offline we need to build this.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user