mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 22:04:38 +08:00
parent
0621d73423
commit
2476813062
|
@ -1,16 +1,45 @@
|
|||
CLASS z2ui5_cl_popup_file_upload DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC.
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
data mt_tab type string.
|
||||
METHODS display.
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
i_text TYPE string default `Choose the file to upload:`
|
||||
i_title TYPE string DEFAULT `File Upload`
|
||||
i_button_text_confirm TYPE string DEFAULT `OK`
|
||||
i_button_text_cancel TYPE string DEFAULT `Cancel`
|
||||
i_path type string optional
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO z2ui5_cl_popup_file_upload.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_result,
|
||||
text TYPE string,
|
||||
check_cancel TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
data mv_path type string.
|
||||
data mv_value type string.
|
||||
|
||||
METHODS result
|
||||
RETURNING
|
||||
VALUE(result) TYPE ty_s_result.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA question_text TYPE string.
|
||||
DATA button_text_confirm TYPE string.
|
||||
DATA button_text_cancel TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA check_result_confirmed TYPE abap_bool.
|
||||
METHODS view_display.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -19,31 +48,50 @@ ENDCLASS.
|
|||
CLASS Z2UI5_CL_POPUP_FILE_UPLOAD IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD display.
|
||||
METHOD factory.
|
||||
|
||||
DATA(popup) = Z2UI5_cl_xml_view=>factory_popup( client )->dialog( 'abap2UI5 - Popup to select entry'
|
||||
)->table(
|
||||
mode = 'SingleSelectLeft'
|
||||
items = client->_bind_edit( mt_tab )
|
||||
)->columns(
|
||||
)->column( )->text( 'Title' )->get_parent(
|
||||
)->column( )->text( 'Color' )->get_parent(
|
||||
)->column( )->text( 'Info' )->get_parent(
|
||||
)->column( )->text( 'Description' )->get_parent(
|
||||
)->get_parent(
|
||||
)->items( )->column_list_item( selected = '{SELKZ}'
|
||||
)->cells(
|
||||
)->text( '{TITLE}'
|
||||
)->text( '{VALUE}'
|
||||
)->text( '{INFO}'
|
||||
)->text( '{DESCR}'
|
||||
)->get_parent( )->get_parent( )->get_parent( )->get_parent(
|
||||
)->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
)->button(
|
||||
text = 'continue'
|
||||
press = client->_event( 'POPUP_TABLE_CONTINUE' )
|
||||
type = 'Emphasized' ).
|
||||
r_result = NEW #( ).
|
||||
r_result->title = i_title.
|
||||
* r_result->icon = i_icon.
|
||||
r_result->question_text = i_text.
|
||||
r_result->button_text_confirm = i_button_text_confirm.
|
||||
r_result->button_text_cancel = i_button_text_cancel.
|
||||
r_result->mv_path = i_path.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD result.
|
||||
|
||||
result = ms_result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog(
|
||||
title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
)->content(
|
||||
)->vbox( 'sapUiMediumMargin'
|
||||
)->label( text = question_text
|
||||
)->_z2ui5( )->file_uploader(
|
||||
value = client->_bind_edit( mv_value )
|
||||
path = client->_bind_edit( mv_path )
|
||||
placeholder = 'filepath here...'
|
||||
upload = client->_event( 'UPLOAD' )
|
||||
)->get_parent( )->get_parent(
|
||||
)->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
)->button(
|
||||
text = button_text_cancel
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
)->button(
|
||||
text = button_text_confirm
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
|
@ -52,5 +100,38 @@ CLASS Z2UI5_CL_POPUP_FILE_UPLOAD IMPLEMENTATION.
|
|||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
||||
IF check_initialized = abap_false.
|
||||
check_initialized = abap_true.
|
||||
view_display( ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
CASE client->get( )-event.
|
||||
when `UPLOAD`.
|
||||
|
||||
SPLIT mv_value AT `;` INTO DATA(lv_dummy) DATA(lv_data).
|
||||
SPLIT lv_data AT `,` INTO lv_dummy lv_data.
|
||||
|
||||
DATA(lv_data2) = lcl_utility=>decode_x_base64( lv_data ).
|
||||
ms_result-text = lcl_utility=>get_string_by_xstring( lv_data2 ).
|
||||
|
||||
client->message_box_display( `file uploaded` ).
|
||||
|
||||
CLEAR mv_value.
|
||||
CLEAR mv_path.
|
||||
|
||||
|
||||
WHEN `BUTTON_CONFIRM`.
|
||||
check_result_confirmed = abap_true.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
WHEN `BUTTON_CANCEL`.
|
||||
check_result_confirmed = abap_false.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
ENDCASE.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
528
src/03/01/z2ui5_cl_popup_file_upload.clas.locals_imp.abap
Normal file
528
src/03/01/z2ui5_cl_popup_file_upload.clas.locals_imp.abap
Normal file
|
@ -0,0 +1,528 @@
|
|||
CLASS lcl_utility DEFINITION
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CLASS-METHODS boolean_abap_2_json
|
||||
IMPORTING
|
||||
val TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
client TYPE REF TO z2ui5_if_client optional
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO lcl_utility.
|
||||
|
||||
METHODS app_get_url_source_code
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS app_get_url
|
||||
IMPORTING
|
||||
classname TYPE string OPTIONAL
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS url_param_get
|
||||
IMPORTING
|
||||
!val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS trans_xml_2_object
|
||||
IMPORTING
|
||||
xml TYPE clike
|
||||
EXPORTING
|
||||
data TYPE data.
|
||||
|
||||
CLASS-METHODS trans_data_2_xml
|
||||
IMPORTING
|
||||
data TYPE data
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_table_by_json
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO data.
|
||||
|
||||
CLASS-METHODS get_table_by_xml
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO data.
|
||||
|
||||
CLASS-METHODS get_table_by_csv
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO data.
|
||||
|
||||
CLASS-METHODS get_csv_by_table
|
||||
IMPORTING
|
||||
val TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_xml_by_table
|
||||
IMPORTING
|
||||
val TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_json_by_table
|
||||
IMPORTING
|
||||
val TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_fieldlist_by_table
|
||||
IMPORTING
|
||||
it_table TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE string_table.
|
||||
|
||||
CLASS-METHODS decode_x_base64
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE xstring.
|
||||
|
||||
CLASS-METHODS encode_x_base64
|
||||
IMPORTING
|
||||
val TYPE xstring
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_string_by_xstring
|
||||
IMPORTING
|
||||
val TYPE xstring
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_xstring_by_string
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE xstring.
|
||||
|
||||
CLASS-METHODS get_uuid
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS trim_upper
|
||||
IMPORTING
|
||||
val TYPE clike
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS boolean_check
|
||||
IMPORTING
|
||||
val TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE abap_bool.
|
||||
|
||||
CLASS-METHODS rtti_get_type_name
|
||||
IMPORTING
|
||||
val TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
DATA mi_client TYPE REF TO z2ui5_if_client.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS lcl_utility IMPLEMENTATION.
|
||||
|
||||
METHOD rtti_get_type_name.
|
||||
|
||||
DATA(lo_descr) = cl_abap_elemdescr=>describe_by_data( val ).
|
||||
DATA(lo_ele) = CAST cl_abap_elemdescr( lo_descr ).
|
||||
result = lo_ele->get_relative_name( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD boolean_check.
|
||||
|
||||
TRY.
|
||||
DATA(lv_type_name) = rtti_get_type_name( val ).
|
||||
CASE lv_type_name.
|
||||
WHEN `ABAP_BOOL` OR `XSDBOOLEAN`.
|
||||
result = abap_true.
|
||||
ENDCASE.
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD boolean_abap_2_json.
|
||||
|
||||
IF boolean_check( val ).
|
||||
result = COND #( WHEN val = abap_true THEN `true` ELSE `false` ).
|
||||
ELSE.
|
||||
result = val.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = new #( ).
|
||||
r_result->mi_client = client.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD app_get_url.
|
||||
|
||||
result = z2ui5_cl_util_func=>app_get_url( classname = classname client = mi_client ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD app_get_url_source_code.
|
||||
|
||||
result = z2ui5_cl_util_func=>app_get_url_source_code( mi_client ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD url_param_get.
|
||||
|
||||
result = z2ui5_cl_util_func=>url_param_get(
|
||||
val = val
|
||||
url = mi_client->get( )-s_config-search ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_uuid.
|
||||
TRY.
|
||||
|
||||
DATA uuid TYPE c LENGTH 32.
|
||||
|
||||
TRY.
|
||||
CALL METHOD (`CL_SYSTEM_UUID`)=>if_system_uuid_static~create_uuid_c32
|
||||
RECEIVING
|
||||
uuid = uuid.
|
||||
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(lv_fm) = `GUID_CREATE`.
|
||||
CALL FUNCTION lv_fm
|
||||
IMPORTING
|
||||
ev_guid_32 = uuid.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
result = uuid.
|
||||
|
||||
CATCH cx_root.
|
||||
ASSERT 1 = 0.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_table_by_json.
|
||||
|
||||
* DATA lt_tab TYPE ty_t_table.
|
||||
*
|
||||
|
||||
DATA lt_tab TYPE REF TO data.
|
||||
|
||||
/ui2/cl_json=>deserialize(
|
||||
EXPORTING
|
||||
json = val
|
||||
* jsonx =
|
||||
* pretty_name =
|
||||
* assoc_arrays =
|
||||
* assoc_arrays_opt =
|
||||
* name_mappings =
|
||||
* conversion_exits =
|
||||
* hex_as_base64 =
|
||||
CHANGING
|
||||
data = lt_tab
|
||||
).
|
||||
|
||||
result = lt_tab.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD trans_data_2_xml.
|
||||
|
||||
" FIELD-SYMBOLS <object> TYPE any.
|
||||
" ASSIGN object->* TO <object>.
|
||||
" raise( when = xsdbool( sy-subrc <> 0 ) ).
|
||||
|
||||
CALL TRANSFORMATION id
|
||||
SOURCE data = data
|
||||
RESULT XML result
|
||||
OPTIONS data_refs = `heap-or-create`.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD trans_xml_2_object.
|
||||
|
||||
CALL TRANSFORMATION id
|
||||
SOURCE XML xml
|
||||
RESULT data = data.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_table_by_xml.
|
||||
|
||||
* DATA lt_tab TYPE ty_t_table.
|
||||
*
|
||||
CALL TRANSFORMATION id SOURCE xml = val RESULT data = result.
|
||||
*
|
||||
* result = lt_tab.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_table_by_csv.
|
||||
|
||||
SPLIT val AT cl_abap_char_utilities=>newline INTO TABLE DATA(lt_rows).
|
||||
SPLIT lt_rows[ 1 ] AT ';' INTO TABLE DATA(lt_cols).
|
||||
|
||||
DATA lt_comp TYPE cl_abap_structdescr=>component_table.
|
||||
LOOP AT lt_cols REFERENCE INTO DATA(lr_col).
|
||||
|
||||
DATA(lv_name) = trim_upper( lr_col->* ).
|
||||
REPLACE ` ` IN lv_name WITH `_`.
|
||||
|
||||
INSERT VALUE #( name = lv_name type = cl_abap_elemdescr=>get_c( 40 ) ) INTO TABLE lt_comp.
|
||||
ENDLOOP.
|
||||
|
||||
DATA(struc) = cl_abap_structdescr=>get( lt_comp ).
|
||||
DATA(o_table_desc) = cl_abap_tabledescr=>create(
|
||||
p_line_type = CAST #( struc )
|
||||
p_table_kind = cl_abap_tabledescr=>tablekind_std
|
||||
p_unique = abap_false ).
|
||||
|
||||
CREATE DATA result TYPE HANDLE o_table_desc.
|
||||
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||
ASSIGN result->* TO <tab>.
|
||||
|
||||
DELETE lt_rows WHERE table_line IS INITIAL.
|
||||
|
||||
LOOP AT lt_rows REFERENCE INTO DATA(lr_rows) FROM 2.
|
||||
|
||||
SPLIT lr_rows->* AT ';' INTO TABLE lt_cols.
|
||||
DATA lr_row TYPE REF TO data.
|
||||
CREATE DATA lr_row TYPE HANDLE struc.
|
||||
|
||||
LOOP AT lt_cols REFERENCE INTO lr_col.
|
||||
ASSIGN lr_row->* TO FIELD-SYMBOL(<row>).
|
||||
ASSIGN COMPONENT sy-tabix OF STRUCTURE <row> TO FIELD-SYMBOL(<field>).
|
||||
<field> = lr_col->*.
|
||||
ENDLOOP.
|
||||
|
||||
INSERT <row> INTO TABLE <tab>.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD decode_x_base64.
|
||||
|
||||
TRY.
|
||||
|
||||
CALL METHOD ('CL_WEB_HTTP_UTILITY')=>('DECODE_X_BASE64')
|
||||
EXPORTING
|
||||
encoded = val
|
||||
RECEIVING
|
||||
decoded = result.
|
||||
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(classname) = 'CL_HTTP_UTILITY'.
|
||||
CALL METHOD (classname)=>('DECODE_X_BASE64')
|
||||
EXPORTING
|
||||
encoded = val
|
||||
RECEIVING
|
||||
decoded = result.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD encode_x_base64.
|
||||
|
||||
TRY.
|
||||
|
||||
CALL METHOD ('CL_WEB_HTTP_UTILITY')=>('ENCODE_X_BASE64')
|
||||
EXPORTING
|
||||
unencoded = val
|
||||
RECEIVING
|
||||
encoded = result.
|
||||
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(classname) = 'CL_HTTP_UTILITY'.
|
||||
CALL METHOD (classname)=>('ENCODE_X_BASE64')
|
||||
EXPORTING
|
||||
unencoded = val
|
||||
RECEIVING
|
||||
encoded = result.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_csv_by_table.
|
||||
|
||||
FIELD-SYMBOLS <tab> TYPE table.
|
||||
ASSIGN val TO <tab>.
|
||||
|
||||
DATA lr_row TYPE REF TO data.
|
||||
|
||||
DATA(tab) = CAST cl_abap_tabledescr( cl_abap_typedescr=>describe_by_data( <tab> ) ).
|
||||
|
||||
DATA(struc) = CAST cl_abap_structdescr( tab->get_table_line_type( ) ).
|
||||
|
||||
LOOP AT struc->get_components( ) REFERENCE INTO DATA(lr_comp).
|
||||
result = result && lr_comp->name && ';'.
|
||||
ENDLOOP.
|
||||
|
||||
result = result && cl_abap_char_utilities=>cr_lf.
|
||||
|
||||
LOOP AT <tab> REFERENCE INTO lr_row.
|
||||
|
||||
DATA(lv_index) = 1.
|
||||
DO.
|
||||
ASSIGN lr_row->* TO FIELD-SYMBOL(<row>).
|
||||
ASSIGN COMPONENT lv_index OF STRUCTURE <row> TO FIELD-SYMBOL(<field>).
|
||||
IF sy-subrc <> 0.
|
||||
EXIT.
|
||||
ENDIF.
|
||||
lv_index = lv_index + 1.
|
||||
result = result && <field> && ';'.
|
||||
ENDDO.
|
||||
result = result && cl_abap_char_utilities=>cr_lf.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_json_by_table.
|
||||
|
||||
result = /ui2/cl_json=>serialize(
|
||||
val
|
||||
* compress =
|
||||
* name =
|
||||
* pretty_name =
|
||||
* type_descr =
|
||||
* assoc_arrays =
|
||||
* ts_as_iso8601 =
|
||||
* expand_includes =
|
||||
* assoc_arrays_opt =
|
||||
* numc_as_string =
|
||||
* name_mappings =
|
||||
* conversion_exits =
|
||||
" format_output = abap_true
|
||||
* hex_as_base64 =
|
||||
).
|
||||
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_xml_by_table.
|
||||
|
||||
CALL TRANSFORMATION id SOURCE values = val RESULT XML result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_fieldlist_by_table.
|
||||
|
||||
DATA(lo_tab) = CAST cl_abap_tabledescr( cl_abap_datadescr=>describe_by_data( it_table ) ).
|
||||
DATA(lo_struc) = CAST cl_abap_structdescr( lo_tab->get_table_line_type( ) ).
|
||||
|
||||
DATA(lt_comp) = lo_struc->get_components( ).
|
||||
|
||||
LOOP AT lt_comp INTO DATA(ls_comp).
|
||||
INSERT ls_comp-name INTO TABLE result.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_string_by_xstring.
|
||||
|
||||
DATA conv TYPE REF TO object.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ABAP_CONV_CODEPAGE')=>create_in
|
||||
RECEIVING
|
||||
instance = conv.
|
||||
|
||||
CALL METHOD conv->('IF_ABAP_CONV_IN~CONVERT')
|
||||
EXPORTING
|
||||
source = val
|
||||
RECEIVING
|
||||
result = result.
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(conv_in_class) = 'CL_ABAP_CONV_IN_CE'.
|
||||
CALL METHOD (conv_in_class)=>create
|
||||
EXPORTING
|
||||
encoding = 'UTF-8'
|
||||
RECEIVING
|
||||
conv = conv.
|
||||
|
||||
CALL METHOD conv->('CONVERT')
|
||||
EXPORTING
|
||||
input = val
|
||||
IMPORTING
|
||||
data = result.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_xstring_by_string.
|
||||
|
||||
DATA conv TYPE REF TO object.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ABAP_CONV_CODEPAGE')=>create_out
|
||||
RECEIVING
|
||||
instance = conv.
|
||||
|
||||
CALL METHOD conv->('IF_ABAP_CONV_OUT~CONVERT')
|
||||
EXPORTING
|
||||
source = val
|
||||
RECEIVING
|
||||
result = result.
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(conv_out_class) = 'CL_ABAP_CONV_OUT_CE'.
|
||||
CALL METHOD (conv_out_class)=>create
|
||||
EXPORTING
|
||||
encoding = 'UTF-8'
|
||||
RECEIVING
|
||||
conv = conv.
|
||||
|
||||
CALL METHOD conv->('CONVERT')
|
||||
EXPORTING
|
||||
data = val
|
||||
IMPORTING
|
||||
buffer = result.
|
||||
ENDTRY.
|
||||
|
||||
|
||||
|
||||
* result = cl_abap_conv_codepage=>create_out( )->convert( val ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD trim_upper.
|
||||
result = to_upper( shift_left( shift_right( val ) ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
|
@ -1,56 +0,0 @@
|
|||
CLASS z2ui5_cl_popup_input_date DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
data mt_tab type string.
|
||||
METHODS display.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_POPUP_INPUT_DATE IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD display.
|
||||
|
||||
DATA(popup) = Z2UI5_cl_xml_view=>factory_popup( client )->dialog( 'abap2UI5 - Popup to select entry'
|
||||
)->table(
|
||||
mode = 'SingleSelectLeft'
|
||||
items = client->_bind_edit( mt_tab )
|
||||
)->columns(
|
||||
)->column( )->text( 'Title' )->get_parent(
|
||||
)->column( )->text( 'Color' )->get_parent(
|
||||
)->column( )->text( 'Info' )->get_parent(
|
||||
)->column( )->text( 'Description' )->get_parent(
|
||||
)->get_parent(
|
||||
)->items( )->column_list_item( selected = '{SELKZ}'
|
||||
)->cells(
|
||||
)->text( '{TITLE}'
|
||||
)->text( '{VALUE}'
|
||||
)->text( '{INFO}'
|
||||
)->text( '{DESCR}'
|
||||
)->get_parent( )->get_parent( )->get_parent( )->get_parent(
|
||||
)->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
)->button(
|
||||
text = 'continue'
|
||||
press = client->_event( 'POPUP_TABLE_CONTINUE' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
|
@ -1,56 +0,0 @@
|
|||
CLASS z2ui5_cl_popup_input_int DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
data mt_tab type string.
|
||||
METHODS display.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_POPUP_INPUT_INT IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD display.
|
||||
|
||||
DATA(popup) = Z2UI5_cl_xml_view=>factory_popup( client )->dialog( 'abap2UI5 - Popup to select entry'
|
||||
)->table(
|
||||
mode = 'SingleSelectLeft'
|
||||
items = client->_bind_edit( mt_tab )
|
||||
)->columns(
|
||||
)->column( )->text( 'Title' )->get_parent(
|
||||
)->column( )->text( 'Color' )->get_parent(
|
||||
)->column( )->text( 'Info' )->get_parent(
|
||||
)->column( )->text( 'Description' )->get_parent(
|
||||
)->get_parent(
|
||||
)->items( )->column_list_item( selected = '{SELKZ}'
|
||||
)->cells(
|
||||
)->text( '{TITLE}'
|
||||
)->text( '{VALUE}'
|
||||
)->text( '{INFO}'
|
||||
)->text( '{DESCR}'
|
||||
)->get_parent( )->get_parent( )->get_parent( )->get_parent(
|
||||
)->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
)->button(
|
||||
text = 'continue'
|
||||
press = client->_event( 'POPUP_TABLE_CONTINUE' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
118
src/03/01/z2ui5_cl_popup_input_value.clas.abap
Normal file
118
src/03/01/z2ui5_cl_popup_input_value.clas.abap
Normal file
|
@ -0,0 +1,118 @@
|
|||
CLASS z2ui5_cl_popup_input_value DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
i_text TYPE string
|
||||
i_title TYPE string DEFAULT `Title`
|
||||
i_button_text_confirm TYPE string DEFAULT `OK`
|
||||
i_button_text_cancel TYPE string DEFAULT `Cancel`
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO z2ui5_cl_popup_input_value.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_result,
|
||||
text TYPE string,
|
||||
check_cancel TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
|
||||
|
||||
METHODS result
|
||||
RETURNING
|
||||
VALUE(result) TYPE ty_s_result.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA question_text TYPE string.
|
||||
DATA button_text_confirm TYPE string.
|
||||
DATA button_text_cancel TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA check_result_confirmed TYPE abap_bool.
|
||||
METHODS view_display.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_POPUP_INPUT_VALUE IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
r_result->title = i_title.
|
||||
* r_result->icon = i_icon.
|
||||
r_result->question_text = i_text.
|
||||
r_result->button_text_confirm = i_button_text_confirm.
|
||||
r_result->button_text_cancel = i_button_text_cancel.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD result.
|
||||
|
||||
result = ms_result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog(
|
||||
title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
)->content(
|
||||
)->vbox( 'sapUiMediumMargin'
|
||||
)->label( text = question_text
|
||||
)->input(
|
||||
value = client->_bind_edit( ms_result-text )
|
||||
submit = client->_event( 'BUTTON_CONFIRM' )
|
||||
)->get_parent( )->get_parent(
|
||||
)->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
)->button(
|
||||
text = button_text_cancel
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
)->button(
|
||||
text = button_text_confirm
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
||||
IF check_initialized = abap_false.
|
||||
check_initialized = abap_true.
|
||||
view_display( ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
CASE client->get( )-event.
|
||||
WHEN `BUTTON_CONFIRM`.
|
||||
check_result_confirmed = abap_true.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
WHEN `BUTTON_CANCEL`.
|
||||
check_result_confirmed = abap_false.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
ENDCASE.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
|
@ -3,9 +3,9 @@
|
|||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>Z2UI5_CL_POPUP_INPUT_INT</CLSNAME>
|
||||
<CLSNAME>Z2UI5_CL_POPUP_INPUT_VALUE</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>ui - popup input integer</DESCRIPT>
|
||||
<DESCRIPT>ui - popup input value</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
|
@ -53,7 +53,9 @@ CLASS z2ui5_cl_popup_messages IMPLEMENTATION.
|
|||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( client )->dialog( title
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( client )->dialog(
|
||||
title = title
|
||||
afterclose = client->_event( 'BUTTON_CONTINUE' )
|
||||
)->table(
|
||||
* mode = 'SingleSelectLeft'
|
||||
items = client->_bind_edit( mt_msg )
|
||||
|
|
125
src/03/01/z2ui5_cl_popup_pdf.clas.abap
Normal file
125
src/03/01/z2ui5_cl_popup_pdf.clas.abap
Normal file
|
@ -0,0 +1,125 @@
|
|||
CLASS z2ui5_cl_popup_pdf DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
i_title TYPE string DEFAULT `PDF Viewer`
|
||||
i_button_text_confirm TYPE string DEFAULT `OK`
|
||||
i_button_text_cancel TYPE string DEFAULT `Cancel`
|
||||
i_pdf type string
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO z2ui5_cl_popup_pdf.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_result,
|
||||
text TYPE string,
|
||||
check_cancel TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
|
||||
data mv_pdf type string.
|
||||
|
||||
METHODS result
|
||||
RETURNING
|
||||
VALUE(result) TYPE ty_s_result.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA question_text TYPE string.
|
||||
DATA button_text_confirm TYPE string.
|
||||
DATA button_text_cancel TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA check_result_confirmed TYPE abap_bool.
|
||||
METHODS view_display.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_POPUP_PDF IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
r_result->title = i_title.
|
||||
r_result->button_text_confirm = i_button_text_confirm.
|
||||
r_result->button_text_cancel = i_button_text_cancel.
|
||||
r_result->mv_pdf = i_pdf.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD result.
|
||||
|
||||
result = ms_result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog(
|
||||
title = title
|
||||
icon = icon
|
||||
stretch = abap_true
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
)->content(
|
||||
)->vbox( 'sapUiMediumMargin'
|
||||
)->label( text = question_text
|
||||
)->_generic(
|
||||
ns = `html`
|
||||
name = `iframe`
|
||||
t_prop = VALUE #(
|
||||
( n = `src` v = mv_pdf )
|
||||
( n = `height` v = `800px` )
|
||||
( n = `width` v = `99%` )
|
||||
)
|
||||
)->get_parent( )->get_parent( )->get_parent(
|
||||
)->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
)->button(
|
||||
text = button_text_cancel
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
)->button(
|
||||
text = button_text_confirm
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
||||
IF check_initialized = abap_false.
|
||||
check_initialized = abap_true.
|
||||
view_display( ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
CASE client->get( )-event.
|
||||
|
||||
WHEN `BUTTON_CONFIRM`.
|
||||
check_result_confirmed = abap_true.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
WHEN `BUTTON_CANCEL`.
|
||||
check_result_confirmed = abap_false.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
ENDCASE.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
528
src/03/01/z2ui5_cl_popup_pdf.clas.locals_imp.abap
Normal file
528
src/03/01/z2ui5_cl_popup_pdf.clas.locals_imp.abap
Normal file
|
@ -0,0 +1,528 @@
|
|||
CLASS lcl_utility DEFINITION
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CLASS-METHODS boolean_abap_2_json
|
||||
IMPORTING
|
||||
val TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
client TYPE REF TO z2ui5_if_client optional
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO lcl_utility.
|
||||
|
||||
METHODS app_get_url_source_code
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS app_get_url
|
||||
IMPORTING
|
||||
classname TYPE string OPTIONAL
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS url_param_get
|
||||
IMPORTING
|
||||
!val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS trans_xml_2_object
|
||||
IMPORTING
|
||||
xml TYPE clike
|
||||
EXPORTING
|
||||
data TYPE data.
|
||||
|
||||
CLASS-METHODS trans_data_2_xml
|
||||
IMPORTING
|
||||
data TYPE data
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_table_by_json
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO data.
|
||||
|
||||
CLASS-METHODS get_table_by_xml
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO data.
|
||||
|
||||
CLASS-METHODS get_table_by_csv
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO data.
|
||||
|
||||
CLASS-METHODS get_csv_by_table
|
||||
IMPORTING
|
||||
val TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_xml_by_table
|
||||
IMPORTING
|
||||
val TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_json_by_table
|
||||
IMPORTING
|
||||
val TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_fieldlist_by_table
|
||||
IMPORTING
|
||||
it_table TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE string_table.
|
||||
|
||||
CLASS-METHODS decode_x_base64
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE xstring.
|
||||
|
||||
CLASS-METHODS encode_x_base64
|
||||
IMPORTING
|
||||
val TYPE xstring
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_string_by_xstring
|
||||
IMPORTING
|
||||
val TYPE xstring
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_xstring_by_string
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE xstring.
|
||||
|
||||
CLASS-METHODS get_uuid
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS trim_upper
|
||||
IMPORTING
|
||||
val TYPE clike
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS boolean_check
|
||||
IMPORTING
|
||||
val TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE abap_bool.
|
||||
|
||||
CLASS-METHODS rtti_get_type_name
|
||||
IMPORTING
|
||||
val TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
DATA mi_client TYPE REF TO z2ui5_if_client.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS lcl_utility IMPLEMENTATION.
|
||||
|
||||
METHOD rtti_get_type_name.
|
||||
|
||||
DATA(lo_descr) = cl_abap_elemdescr=>describe_by_data( val ).
|
||||
DATA(lo_ele) = CAST cl_abap_elemdescr( lo_descr ).
|
||||
result = lo_ele->get_relative_name( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD boolean_check.
|
||||
|
||||
TRY.
|
||||
DATA(lv_type_name) = rtti_get_type_name( val ).
|
||||
CASE lv_type_name.
|
||||
WHEN `ABAP_BOOL` OR `XSDBOOLEAN`.
|
||||
result = abap_true.
|
||||
ENDCASE.
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD boolean_abap_2_json.
|
||||
|
||||
IF boolean_check( val ).
|
||||
result = COND #( WHEN val = abap_true THEN `true` ELSE `false` ).
|
||||
ELSE.
|
||||
result = val.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = new #( ).
|
||||
r_result->mi_client = client.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD app_get_url.
|
||||
|
||||
result = z2ui5_cl_util_func=>app_get_url( classname = classname client = mi_client ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD app_get_url_source_code.
|
||||
|
||||
result = z2ui5_cl_util_func=>app_get_url_source_code( mi_client ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD url_param_get.
|
||||
|
||||
result = z2ui5_cl_util_func=>url_param_get(
|
||||
val = val
|
||||
url = mi_client->get( )-s_config-search ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_uuid.
|
||||
TRY.
|
||||
|
||||
DATA uuid TYPE c LENGTH 32.
|
||||
|
||||
TRY.
|
||||
CALL METHOD (`CL_SYSTEM_UUID`)=>if_system_uuid_static~create_uuid_c32
|
||||
RECEIVING
|
||||
uuid = uuid.
|
||||
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(lv_fm) = `GUID_CREATE`.
|
||||
CALL FUNCTION lv_fm
|
||||
IMPORTING
|
||||
ev_guid_32 = uuid.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
result = uuid.
|
||||
|
||||
CATCH cx_root.
|
||||
ASSERT 1 = 0.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_table_by_json.
|
||||
|
||||
* DATA lt_tab TYPE ty_t_table.
|
||||
*
|
||||
|
||||
DATA lt_tab TYPE REF TO data.
|
||||
|
||||
/ui2/cl_json=>deserialize(
|
||||
EXPORTING
|
||||
json = val
|
||||
* jsonx =
|
||||
* pretty_name =
|
||||
* assoc_arrays =
|
||||
* assoc_arrays_opt =
|
||||
* name_mappings =
|
||||
* conversion_exits =
|
||||
* hex_as_base64 =
|
||||
CHANGING
|
||||
data = lt_tab
|
||||
).
|
||||
|
||||
result = lt_tab.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD trans_data_2_xml.
|
||||
|
||||
" FIELD-SYMBOLS <object> TYPE any.
|
||||
" ASSIGN object->* TO <object>.
|
||||
" raise( when = xsdbool( sy-subrc <> 0 ) ).
|
||||
|
||||
CALL TRANSFORMATION id
|
||||
SOURCE data = data
|
||||
RESULT XML result
|
||||
OPTIONS data_refs = `heap-or-create`.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD trans_xml_2_object.
|
||||
|
||||
CALL TRANSFORMATION id
|
||||
SOURCE XML xml
|
||||
RESULT data = data.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_table_by_xml.
|
||||
|
||||
* DATA lt_tab TYPE ty_t_table.
|
||||
*
|
||||
CALL TRANSFORMATION id SOURCE xml = val RESULT data = result.
|
||||
*
|
||||
* result = lt_tab.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_table_by_csv.
|
||||
|
||||
SPLIT val AT cl_abap_char_utilities=>newline INTO TABLE DATA(lt_rows).
|
||||
SPLIT lt_rows[ 1 ] AT ';' INTO TABLE DATA(lt_cols).
|
||||
|
||||
DATA lt_comp TYPE cl_abap_structdescr=>component_table.
|
||||
LOOP AT lt_cols REFERENCE INTO DATA(lr_col).
|
||||
|
||||
DATA(lv_name) = trim_upper( lr_col->* ).
|
||||
REPLACE ` ` IN lv_name WITH `_`.
|
||||
|
||||
INSERT VALUE #( name = lv_name type = cl_abap_elemdescr=>get_c( 40 ) ) INTO TABLE lt_comp.
|
||||
ENDLOOP.
|
||||
|
||||
DATA(struc) = cl_abap_structdescr=>get( lt_comp ).
|
||||
DATA(o_table_desc) = cl_abap_tabledescr=>create(
|
||||
p_line_type = CAST #( struc )
|
||||
p_table_kind = cl_abap_tabledescr=>tablekind_std
|
||||
p_unique = abap_false ).
|
||||
|
||||
CREATE DATA result TYPE HANDLE o_table_desc.
|
||||
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||
ASSIGN result->* TO <tab>.
|
||||
|
||||
DELETE lt_rows WHERE table_line IS INITIAL.
|
||||
|
||||
LOOP AT lt_rows REFERENCE INTO DATA(lr_rows) FROM 2.
|
||||
|
||||
SPLIT lr_rows->* AT ';' INTO TABLE lt_cols.
|
||||
DATA lr_row TYPE REF TO data.
|
||||
CREATE DATA lr_row TYPE HANDLE struc.
|
||||
|
||||
LOOP AT lt_cols REFERENCE INTO lr_col.
|
||||
ASSIGN lr_row->* TO FIELD-SYMBOL(<row>).
|
||||
ASSIGN COMPONENT sy-tabix OF STRUCTURE <row> TO FIELD-SYMBOL(<field>).
|
||||
<field> = lr_col->*.
|
||||
ENDLOOP.
|
||||
|
||||
INSERT <row> INTO TABLE <tab>.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD decode_x_base64.
|
||||
|
||||
TRY.
|
||||
|
||||
CALL METHOD ('CL_WEB_HTTP_UTILITY')=>('DECODE_X_BASE64')
|
||||
EXPORTING
|
||||
encoded = val
|
||||
RECEIVING
|
||||
decoded = result.
|
||||
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(classname) = 'CL_HTTP_UTILITY'.
|
||||
CALL METHOD (classname)=>('DECODE_X_BASE64')
|
||||
EXPORTING
|
||||
encoded = val
|
||||
RECEIVING
|
||||
decoded = result.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD encode_x_base64.
|
||||
|
||||
TRY.
|
||||
|
||||
CALL METHOD ('CL_WEB_HTTP_UTILITY')=>('ENCODE_X_BASE64')
|
||||
EXPORTING
|
||||
unencoded = val
|
||||
RECEIVING
|
||||
encoded = result.
|
||||
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(classname) = 'CL_HTTP_UTILITY'.
|
||||
CALL METHOD (classname)=>('ENCODE_X_BASE64')
|
||||
EXPORTING
|
||||
unencoded = val
|
||||
RECEIVING
|
||||
encoded = result.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_csv_by_table.
|
||||
|
||||
FIELD-SYMBOLS <tab> TYPE table.
|
||||
ASSIGN val TO <tab>.
|
||||
|
||||
DATA lr_row TYPE REF TO data.
|
||||
|
||||
DATA(tab) = CAST cl_abap_tabledescr( cl_abap_typedescr=>describe_by_data( <tab> ) ).
|
||||
|
||||
DATA(struc) = CAST cl_abap_structdescr( tab->get_table_line_type( ) ).
|
||||
|
||||
LOOP AT struc->get_components( ) REFERENCE INTO DATA(lr_comp).
|
||||
result = result && lr_comp->name && ';'.
|
||||
ENDLOOP.
|
||||
|
||||
result = result && cl_abap_char_utilities=>cr_lf.
|
||||
|
||||
LOOP AT <tab> REFERENCE INTO lr_row.
|
||||
|
||||
DATA(lv_index) = 1.
|
||||
DO.
|
||||
ASSIGN lr_row->* TO FIELD-SYMBOL(<row>).
|
||||
ASSIGN COMPONENT lv_index OF STRUCTURE <row> TO FIELD-SYMBOL(<field>).
|
||||
IF sy-subrc <> 0.
|
||||
EXIT.
|
||||
ENDIF.
|
||||
lv_index = lv_index + 1.
|
||||
result = result && <field> && ';'.
|
||||
ENDDO.
|
||||
result = result && cl_abap_char_utilities=>cr_lf.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_json_by_table.
|
||||
|
||||
result = /ui2/cl_json=>serialize(
|
||||
val
|
||||
* compress =
|
||||
* name =
|
||||
* pretty_name =
|
||||
* type_descr =
|
||||
* assoc_arrays =
|
||||
* ts_as_iso8601 =
|
||||
* expand_includes =
|
||||
* assoc_arrays_opt =
|
||||
* numc_as_string =
|
||||
* name_mappings =
|
||||
* conversion_exits =
|
||||
" format_output = abap_true
|
||||
* hex_as_base64 =
|
||||
).
|
||||
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_xml_by_table.
|
||||
|
||||
CALL TRANSFORMATION id SOURCE values = val RESULT XML result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_fieldlist_by_table.
|
||||
|
||||
DATA(lo_tab) = CAST cl_abap_tabledescr( cl_abap_datadescr=>describe_by_data( it_table ) ).
|
||||
DATA(lo_struc) = CAST cl_abap_structdescr( lo_tab->get_table_line_type( ) ).
|
||||
|
||||
DATA(lt_comp) = lo_struc->get_components( ).
|
||||
|
||||
LOOP AT lt_comp INTO DATA(ls_comp).
|
||||
INSERT ls_comp-name INTO TABLE result.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_string_by_xstring.
|
||||
|
||||
DATA conv TYPE REF TO object.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ABAP_CONV_CODEPAGE')=>create_in
|
||||
RECEIVING
|
||||
instance = conv.
|
||||
|
||||
CALL METHOD conv->('IF_ABAP_CONV_IN~CONVERT')
|
||||
EXPORTING
|
||||
source = val
|
||||
RECEIVING
|
||||
result = result.
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(conv_in_class) = 'CL_ABAP_CONV_IN_CE'.
|
||||
CALL METHOD (conv_in_class)=>create
|
||||
EXPORTING
|
||||
encoding = 'UTF-8'
|
||||
RECEIVING
|
||||
conv = conv.
|
||||
|
||||
CALL METHOD conv->('CONVERT')
|
||||
EXPORTING
|
||||
input = val
|
||||
IMPORTING
|
||||
data = result.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_xstring_by_string.
|
||||
|
||||
DATA conv TYPE REF TO object.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ABAP_CONV_CODEPAGE')=>create_out
|
||||
RECEIVING
|
||||
instance = conv.
|
||||
|
||||
CALL METHOD conv->('IF_ABAP_CONV_OUT~CONVERT')
|
||||
EXPORTING
|
||||
source = val
|
||||
RECEIVING
|
||||
result = result.
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(conv_out_class) = 'CL_ABAP_CONV_OUT_CE'.
|
||||
CALL METHOD (conv_out_class)=>create
|
||||
EXPORTING
|
||||
encoding = 'UTF-8'
|
||||
RECEIVING
|
||||
conv = conv.
|
||||
|
||||
CALL METHOD conv->('CONVERT')
|
||||
EXPORTING
|
||||
data = val
|
||||
IMPORTING
|
||||
buffer = result.
|
||||
ENDTRY.
|
||||
|
||||
|
||||
|
||||
* result = cl_abap_conv_codepage=>create_out( )->convert( val ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD trim_upper.
|
||||
result = to_upper( shift_left( shift_right( val ) ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
|
@ -3,9 +3,9 @@
|
|||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>Z2UI5_CL_POPUP_INPUT_DATE</CLSNAME>
|
||||
<CLSNAME>Z2UI5_CL_POPUP_PDF</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>ui - popup input date</DESCRIPT>
|
||||
<DESCRIPT>ui - popup pdf</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
|
@ -64,6 +64,7 @@ CLASS Z2UI5_CL_POPUP_TO_CONFIRM IMPLEMENTATION.
|
|||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog(
|
||||
title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
)->content(
|
||||
)->vbox( 'sapUiMediumMargin'
|
||||
)->text( question_text
|
||||
|
|
|
@ -47,6 +47,7 @@ CLASS z2ui5_cl_popup_to_inform IMPLEMENTATION.
|
|||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog(
|
||||
title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CONFIRM' )
|
||||
)->content(
|
||||
)->vbox( 'sapUiMediumMargin'
|
||||
)->text( question_text
|
||||
|
|
Loading…
Reference in New Issue
Block a user