mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-30 04:36:18 +08:00
parent
53992d94d8
commit
976658b611
|
@ -91,7 +91,7 @@ CLASS Z2UI5_CL_APP_DEMO_27 IMPLEMENTATION.
|
||||||
navbuttonpress = client->_event( 'BACK' )
|
navbuttonpress = client->_event( 'BACK' )
|
||||||
shownavbutton = abap_true
|
shownavbutton = abap_true
|
||||||
)->header_content(
|
)->header_content(
|
||||||
)->link( text = `Demo` href = `https://twitter.com/OblomovDev/status/1647889242545111043`
|
)->link( text = `Demo` target = `_blank` href = `https://twitter.com/OblomovDev/status/1647889242545111043`
|
||||||
)->link(
|
)->link(
|
||||||
text = 'Source_Code' target = '_blank'
|
text = 'Source_Code' target = '_blank'
|
||||||
href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) )
|
href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) )
|
||||||
|
|
|
@ -24,7 +24,6 @@ CLASS z2ui5_cl_app_demo_49 DEFINITION PUBLIC.
|
||||||
uuid_prev_app_stack TYPE string,
|
uuid_prev_app_stack TYPE string,
|
||||||
timestampl TYPE string,
|
timestampl TYPE string,
|
||||||
uname TYPE string,
|
uname TYPE string,
|
||||||
data TYPE string,
|
|
||||||
END OF ty_s_out.
|
END OF ty_s_out.
|
||||||
|
|
||||||
DATA:
|
DATA:
|
||||||
|
@ -32,8 +31,10 @@ CLASS z2ui5_cl_app_demo_49 DEFINITION PUBLIC.
|
||||||
headerpinned TYPE abap_bool,
|
headerpinned TYPE abap_bool,
|
||||||
headerexpanded TYPE abap_bool,
|
headerexpanded TYPE abap_bool,
|
||||||
search_val TYPE string,
|
search_val TYPE string,
|
||||||
|
title type string,
|
||||||
t_tab TYPE STANDARD TABLE OF ty_S_out WITH EMPTY KEY,
|
t_tab TYPE STANDARD TABLE OF ty_S_out WITH EMPTY KEY,
|
||||||
END OF ms_view.
|
END OF ms_view.
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_S_cols,
|
BEGIN OF ty_S_cols,
|
||||||
visible TYPE abap_bool,
|
visible TYPE abap_bool,
|
||||||
|
@ -43,8 +44,6 @@ CLASS z2ui5_cl_app_demo_49 DEFINITION PUBLIC.
|
||||||
editable TYPE abap_bool,
|
editable TYPE abap_bool,
|
||||||
END OF ty_S_cols.
|
END OF ty_S_cols.
|
||||||
|
|
||||||
DATA mt_cols TYPE STANDARD TABLE OF ty_S_cols.
|
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_S_filter,
|
BEGIN OF ty_S_filter,
|
||||||
selkz TYPE abap_bool,
|
selkz TYPE abap_bool,
|
||||||
|
@ -52,17 +51,6 @@ CLASS z2ui5_cl_app_demo_49 DEFINITION PUBLIC.
|
||||||
value TYPE string,
|
value TYPE string,
|
||||||
END OF ty_S_filter.
|
END OF ty_S_filter.
|
||||||
|
|
||||||
* DATA mt_filter TYPE STANDARD TABLE OF ty_S_filter.
|
|
||||||
|
|
||||||
|
|
||||||
* DATA:
|
|
||||||
* BEGIN OF ms_table,
|
|
||||||
* check_zebra TYPE abap_bool,
|
|
||||||
* title TYPE string,
|
|
||||||
* sticky_header TYPE string,
|
|
||||||
* selmode TYPE string,
|
|
||||||
* END OF ms_table.
|
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_S_sort,
|
BEGIN OF ty_S_sort,
|
||||||
" selkz TYPE abap_bool,
|
" selkz TYPE abap_bool,
|
||||||
|
@ -72,17 +60,15 @@ CLASS z2ui5_cl_app_demo_49 DEFINITION PUBLIC.
|
||||||
" check_descending TYPE string,
|
" check_descending TYPE string,
|
||||||
END OF ty_S_sort.
|
END OF ty_S_sort.
|
||||||
|
|
||||||
DATA mt_sort TYPE STANDARD TABLE OF ty_S_sort.
|
|
||||||
|
|
||||||
DATA:
|
DATA:
|
||||||
BEGIN OF ms_layout,
|
BEGIN OF ms_layout,
|
||||||
BEGIN OF s_table,
|
check_zebra TYPE abap_bool,
|
||||||
check_zebra TYPE abap_bool,
|
title TYPE string,
|
||||||
title TYPE string,
|
sticky_header TYPE string,
|
||||||
sticky_header TYPE string,
|
selmode TYPE string,
|
||||||
selmode TYPE string,
|
t_filter TYPE STANDARD TABLE OF ty_S_filter,
|
||||||
END OF s_table,
|
t_cols TYPE STANDARD TABLE OF ty_S_cols,
|
||||||
t_filter TYPE STANDARD TABLE OF ty_S_filter,
|
t_sort TYPE STANDARD TABLE OF ty_S_sort,
|
||||||
END OF ms_layout.
|
END OF ms_layout.
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
|
@ -99,6 +85,18 @@ CLASS z2ui5_cl_app_demo_49 DEFINITION PUBLIC.
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(result) TYPE string.
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_S_db_layout,
|
||||||
|
SELKZ TYPE ABap_bool,
|
||||||
|
name TYPE string,
|
||||||
|
user TYPE string,
|
||||||
|
default TYPE abap_bool,
|
||||||
|
data TYPE string,
|
||||||
|
END OF ty_S_db_layout.
|
||||||
|
DATA mt_db_layout TYPE STANDARD TABLE OF ty_S_db_layout.
|
||||||
|
|
||||||
|
DATA mv_layout_name TYPE string.
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
|
||||||
DATA client TYPE REF TO z2ui5_if_client.
|
DATA client TYPE REF TO z2ui5_if_client.
|
||||||
|
@ -120,9 +118,12 @@ CLASS z2ui5_cl_app_demo_49 DEFINITION PUBLIC.
|
||||||
METHODS z2ui5_on_render_detail.
|
METHODS z2ui5_on_render_detail.
|
||||||
METHODS z2ui5_on_render_pop_setup.
|
METHODS z2ui5_on_render_pop_setup.
|
||||||
METHODS z2ui5_on_render_pop_filter.
|
METHODS z2ui5_on_render_pop_filter.
|
||||||
METHODS z2ui5_download_csv
|
METHODS z2ui5_on_render_pop_layout.
|
||||||
|
METHODS z2ui5_set_download_csv
|
||||||
IMPORTING
|
IMPORTING
|
||||||
i_view TYPE REF TO z2ui5_cl_xml_view.
|
i_view TYPE REF TO z2ui5_cl_xml_view.
|
||||||
|
METHODS z2ui5_set_search.
|
||||||
|
METHODS z2ui5_set_detail.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -157,7 +158,6 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD z2ui5_on_event.
|
METHOD z2ui5_on_event.
|
||||||
|
|
||||||
|
|
||||||
CASE app-get-event.
|
CASE app-get-event.
|
||||||
|
|
||||||
WHEN 'BUTTON_DELETE'.
|
WHEN 'BUTTON_DELETE'.
|
||||||
|
@ -177,53 +177,39 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
WHEN 'BUTTON_DOWNLOAD'.
|
WHEN 'BUTTON_DOWNLOAD'.
|
||||||
mv_check_download_csv = abap_true.
|
mv_check_download_csv = abap_true.
|
||||||
|
|
||||||
|
WHEN `POPUP_LAYOUT_LOAD`.
|
||||||
|
data(ls_layout2) = mt_db_layout[ selkz = abap_true ].
|
||||||
|
z2ui5_lcl_utility=>trans_xml_2_object(
|
||||||
|
EXPORTING
|
||||||
|
xml = ls_layout2-data
|
||||||
|
IMPORTING
|
||||||
|
data = ms_layout
|
||||||
|
).
|
||||||
|
ms_view-title = ls_layout2-name.
|
||||||
|
|
||||||
|
WHEN `BUTTON_SAVE_LAYOUT`.
|
||||||
|
DATA(ls_layout) = VALUE ty_s_db_layout(
|
||||||
|
data = z2ui5_lcl_utility=>trans_data_2_xml( ms_layout )
|
||||||
|
name = mv_layout_name
|
||||||
|
).
|
||||||
|
INSERT ls_layout INTO TABLE mt_db_layout.
|
||||||
|
|
||||||
WHEN 'BUTTON_SEARCH'.
|
WHEN 'BUTTON_SEARCH'.
|
||||||
app-next-s_cursor_pos-id = 'SEARCH'.
|
app-next-s_cursor_pos-id = 'SEARCH'.
|
||||||
app-next-s_cursor_pos-cursorpos = '99'.
|
app-next-s_cursor_pos-cursorpos = '99'.
|
||||||
app-next-s_cursor_pos-selectionend = '99'.
|
app-next-s_cursor_pos-selectionend = '99'.
|
||||||
app-next-s_cursor_pos-selectionstart = '99'.
|
app-next-s_cursor_pos-selectionstart = '99'.
|
||||||
ms_view-t_tab = CORRESPONDING #( mt_table ).
|
z2ui5_set_search( ).
|
||||||
IF ms_view-search_val IS NOT INITIAL.
|
|
||||||
LOOP AT ms_view-t_tab REFERENCE INTO DATA(lr_row).
|
|
||||||
DATA(lv_row) = ``.
|
|
||||||
DATA(lv_index) = 1.
|
|
||||||
DO.
|
|
||||||
ASSIGN COMPONENT lv_index OF STRUCTURE lr_row->* TO FIELD-SYMBOL(<field>).
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
EXIT.
|
|
||||||
ENDIF.
|
|
||||||
lv_row = lv_row && <field>.
|
|
||||||
lv_index = lv_index + 1.
|
|
||||||
ENDDO.
|
|
||||||
|
|
||||||
IF lv_row NS ms_view-search_val.
|
|
||||||
DELETE ms_view-t_tab.
|
|
||||||
ENDIF.
|
|
||||||
ENDLOOP.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
WHEN 'MAIN'.
|
WHEN 'MAIN'.
|
||||||
app-view_main = 'MAIN'.
|
app-view_main = 'MAIN'.
|
||||||
|
|
||||||
WHEN 'DETAIL'.
|
WHEN 'DETAIL'.
|
||||||
|
z2ui5_set_detail( ).
|
||||||
ms_detail = mt_table[ uuid = client->get( )-event_data ].
|
|
||||||
|
|
||||||
SELECT SINGLE FROM z2ui5_t_draft
|
|
||||||
FIELDS *
|
|
||||||
WHERE uuid = @ms_detail-uuid
|
|
||||||
INTO CORRESPONDING FIELDS OF @ms_detail
|
|
||||||
.
|
|
||||||
|
|
||||||
app-view_main = 'DETAIL'.
|
app-view_main = 'DETAIL'.
|
||||||
|
|
||||||
WHEN 'BUTTON_POST'.
|
WHEN 'POPUP_LAYOUT'.
|
||||||
|
app-view_popup = 'POPUP_LAYOUT'.
|
||||||
SELECT FROM z2ui5_t_draft
|
|
||||||
FIELDS *
|
|
||||||
INTO CORRESPONDING FIELDS OF TABLE @mt_table
|
|
||||||
UP TO 100 ROWS.
|
|
||||||
|
|
||||||
|
|
||||||
WHEN 'POPUP_FILTER'.
|
WHEN 'POPUP_FILTER'.
|
||||||
app-view_popup = 'POPUP_FILTER'.
|
app-view_popup = 'POPUP_FILTER'.
|
||||||
|
@ -246,6 +232,7 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
|
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
@ -254,11 +241,14 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
app-view_main = 'MAIN'.
|
app-view_main = 'MAIN'.
|
||||||
init_table_output( ).
|
init_table_output( ).
|
||||||
|
|
||||||
ms_layout-s_table-selmode = 'MultiSelect'.
|
ms_view-title = `Standart`.
|
||||||
ms_layout-s_table-check_zebra = abap_true.
|
ms_layout-selmode = 'MultiSelect'.
|
||||||
|
ms_layout-check_zebra = abap_true.
|
||||||
ms_view-t_tab = CORRESPONDING #( mt_table ).
|
ms_view-t_tab = CORRESPONDING #( mt_table ).
|
||||||
ms_layout-s_table-sticky_header = `HeaderToolbar,InfoToolbar,ColumnHeaders`.
|
ms_layout-sticky_header = `HeaderToolbar,InfoToolbar,ColumnHeaders`.
|
||||||
ms_layout-s_table-title = `Drafts`.
|
ms_layout-title = `Drafts`.
|
||||||
|
|
||||||
|
app-next-t_scroll_pos = VALUE #( ( name = `page_main` ) ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -270,6 +260,8 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
z2ui5_on_render_pop_filter( ).
|
z2ui5_on_render_pop_filter( ).
|
||||||
WHEN `POPUP_SETUP`.
|
WHEN `POPUP_SETUP`.
|
||||||
z2ui5_on_render_pop_setup( ).
|
z2ui5_on_render_pop_setup( ).
|
||||||
|
WHEN `POPUP_LAYOUT`.
|
||||||
|
z2ui5_on_render_pop_layout( ).
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
|
||||||
CASE app-view_main.
|
CASE app-view_main.
|
||||||
|
@ -284,8 +276,8 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
METHOD init_table_output.
|
METHOD init_table_output.
|
||||||
|
|
||||||
" CLEAR ms_layout-s_table.
|
" CLEAR ms_layout-s_table.
|
||||||
CLEAR mt_cols.
|
" CLEAR mt_cols.
|
||||||
CLEAR mt_sort.
|
" CLEAR ms_layout-t_cols.
|
||||||
|
|
||||||
ms_view-headerexpanded = abap_true.
|
ms_view-headerexpanded = abap_true.
|
||||||
ms_view-headerpinned = abap_true.
|
ms_view-headerpinned = abap_true.
|
||||||
|
@ -302,13 +294,13 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
name = lr_col->*
|
name = lr_col->*
|
||||||
" length = `10px`
|
" length = `10px`
|
||||||
title = lr_col->*
|
title = lr_col->*
|
||||||
) INTO TABLE mt_cols.
|
) INTO TABLE ms_layout-t_cols.
|
||||||
|
|
||||||
INSERT VALUE #(
|
INSERT VALUE #(
|
||||||
" selkz = abap_true
|
" selkz = abap_true
|
||||||
name = lr_col->*
|
name = lr_col->*
|
||||||
" length = `10px`
|
" length = `10px`
|
||||||
) INTO TABLE mt_sort.
|
) INTO TABLE ms_layout-t_cols.
|
||||||
|
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
|
@ -320,7 +312,7 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
" DATA(view) = z2ui5_cl_xml_view=>factory( )->shell( ).
|
" DATA(view) = z2ui5_cl_xml_view=>factory( )->shell( ).
|
||||||
|
|
||||||
DATA(view) = z2ui5_cl_xml_view=>factory(
|
DATA(view) = z2ui5_cl_xml_view=>factory(
|
||||||
)->page(
|
)->page( id = `page_main`
|
||||||
title = 'abap2UI5 - List Report'
|
title = 'abap2UI5 - List Report'
|
||||||
navbuttonpress = client->_event( 'BACK' )
|
navbuttonpress = client->_event( 'BACK' )
|
||||||
shownavbutton = abap_true
|
shownavbutton = abap_true
|
||||||
|
@ -333,7 +325,7 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
)->get_parent( ).
|
)->get_parent( ).
|
||||||
|
|
||||||
IF mv_check_download_csv = abap_true.
|
IF mv_check_download_csv = abap_true.
|
||||||
z2ui5_download_csv( view ).
|
z2ui5_set_download_csv( view ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
DATA(page) = view->dynamic_page(
|
DATA(page) = view->dynamic_page(
|
||||||
|
@ -343,7 +335,7 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
DATA(header_title) = page->title( ns = 'f'
|
DATA(header_title) = page->title( ns = 'f'
|
||||||
)->get( )->dynamic_page_title( ).
|
)->get( )->dynamic_page_title( ).
|
||||||
|
|
||||||
header_title->heading( ns = 'f' )->title( 'Standart' ).
|
header_title->heading( ns = 'f' )->title( ms_view-title ).
|
||||||
|
|
||||||
header_title->expanded_content( 'f'
|
header_title->expanded_content( 'f'
|
||||||
)->label( text = 'Drafts of abap2UI5' ).
|
)->label( text = 'Drafts of abap2UI5' ).
|
||||||
|
@ -352,7 +344,7 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
)->label( text = 'Drafts of abap2UI5' ).
|
)->label( text = 'Drafts of abap2UI5' ).
|
||||||
|
|
||||||
header_title->actions( ns = 'f' )->overflow_toolbar(
|
header_title->actions( ns = 'f' )->overflow_toolbar(
|
||||||
)->button( text = `Layout` type = `Emphasized`
|
)->button( text = `Layout` type = `Emphasized` press = client->_event( `POPUP_LAYOUT` )
|
||||||
)->button( text = `Start` press = client->_event( `BUTTON_START` ) type = `Emphasized`
|
)->button( text = `Start` press = client->_event( `BUTTON_START` ) type = `Emphasized`
|
||||||
).
|
).
|
||||||
|
|
||||||
|
@ -377,13 +369,13 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
|
|
||||||
DATA(tab) = cont->table(
|
DATA(tab) = cont->table(
|
||||||
items = client->_bind( val = ms_view-t_tab )
|
items = client->_bind( val = ms_view-t_tab )
|
||||||
alternaterowcolors = ms_layout-s_table-check_zebra
|
alternaterowcolors = ms_layout-check_zebra
|
||||||
sticky = ms_layout-s_table-sticky_header
|
sticky = ms_layout-sticky_header
|
||||||
mode = ms_layout-s_table-selmode ).
|
mode = ms_layout-selmode ).
|
||||||
|
|
||||||
tab->header_toolbar(
|
tab->header_toolbar(
|
||||||
)->toolbar(
|
)->toolbar(
|
||||||
)->title( text = ms_layout-s_table-title && ` (` && shift_right( CONV string( lines( ms_view-t_tab ) ) ) && `)` level = `H2`
|
)->title( text = ms_layout-title && ` (` && shift_right( CONV string( lines( ms_view-t_tab ) ) ) && `)` level = `H2`
|
||||||
)->toolbar_spacer(
|
)->toolbar_spacer(
|
||||||
)->button(
|
)->button(
|
||||||
icon = 'sap-icon://refresh'
|
icon = 'sap-icon://refresh'
|
||||||
|
@ -392,10 +384,8 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
value = client->_bind( ms_view-search_val )
|
value = client->_bind( ms_view-search_val )
|
||||||
search = client->_event( 'BUTTON_SEARCH' )
|
search = client->_event( 'BUTTON_SEARCH' )
|
||||||
change = client->_event( 'BUTTON_SEARCH' )
|
change = client->_event( 'BUTTON_SEARCH' )
|
||||||
* liveChange = client->_event( 'BUTTON_SEARCH' )
|
|
||||||
width = `17.5rem`
|
width = `17.5rem`
|
||||||
id = `SEARCH`
|
id = `SEARCH`
|
||||||
|
|
||||||
)->toolbar_spacer(
|
)->toolbar_spacer(
|
||||||
)->button(
|
)->button(
|
||||||
text = `Custom Action`
|
text = `Custom Action`
|
||||||
|
@ -418,7 +408,7 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
DATA(lo_columns) = tab->columns( ).
|
DATA(lo_columns) = tab->columns( ).
|
||||||
LOOP AT mt_cols REFERENCE INTO DATA(lr_field)
|
LOOP AT ms_layout-t_cols REFERENCE INTO DATA(lr_field)
|
||||||
WHERE visible = abap_true.
|
WHERE visible = abap_true.
|
||||||
lo_columns->column( width = lr_field->length )->text( text = CONV char10( lr_field->title )
|
lo_columns->column( width = lr_field->length )->text( text = CONV char10( lr_field->title )
|
||||||
)->footer(
|
)->footer(
|
||||||
|
@ -429,7 +419,7 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
press = client->_event( val = 'DETAIL' data = `${UUID}` )
|
press = client->_event( val = 'DETAIL' data = `${UUID}` )
|
||||||
selected = `{SELKZ}`
|
selected = `{SELKZ}`
|
||||||
type = `Navigation` )->cells( ).
|
type = `Navigation` )->cells( ).
|
||||||
LOOP AT mt_cols REFERENCE INTO lr_field
|
LOOP AT ms_layout-t_cols REFERENCE INTO lr_field
|
||||||
WHERE visible = abap_true.
|
WHERE visible = abap_true.
|
||||||
IF lr_field->editable = abap_true.
|
IF lr_field->editable = abap_true.
|
||||||
lo_cells->input( `{` && lr_field->name && `}` ).
|
lo_cells->input( `{` && lr_field->name && `}` ).
|
||||||
|
@ -543,14 +533,14 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
)->simple_form( editable = abap_true
|
)->simple_form( editable = abap_true
|
||||||
)->content( 'form'
|
)->content( 'form'
|
||||||
)->label( 'zebra mode'
|
)->label( 'zebra mode'
|
||||||
)->checkbox( client->_bind( ms_layout-s_table-check_zebra )
|
)->checkbox( client->_bind( ms_layout-check_zebra )
|
||||||
)->label( 'sticky header'
|
)->label( 'sticky header'
|
||||||
)->input( client->_bind( ms_layout-s_table-sticky_header )
|
)->input( client->_bind( ms_layout-sticky_header )
|
||||||
)->label( text = `Title`
|
)->label( text = `Title`
|
||||||
)->Input( value = client->_bind( ms_layout-s_table-title )
|
)->Input( value = client->_bind( ms_layout-title )
|
||||||
)->label( 'sel mode'
|
)->label( 'sel mode'
|
||||||
)->combobox(
|
)->combobox(
|
||||||
selectedkey = client->_bind( ms_layout-s_table-selmode )
|
selectedkey = client->_bind( ms_layout-selmode )
|
||||||
items = client->_bind_one( VALUE ty_t_combo(
|
items = client->_bind_one( VALUE ty_t_combo(
|
||||||
( key = 'None' text = 'None' )
|
( key = 'None' text = 'None' )
|
||||||
( key = 'SingleSelect' text = 'SingleSelect' )
|
( key = 'SingleSelect' text = 'SingleSelect' )
|
||||||
|
@ -567,7 +557,7 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
selected = client->_bind( mv_check_columns )
|
selected = client->_bind( mv_check_columns )
|
||||||
)->table(
|
)->table(
|
||||||
" mode = 'MultiSelect'
|
" mode = 'MultiSelect'
|
||||||
items = client->_bind( mt_cols )
|
items = client->_bind( ms_layout-t_cols )
|
||||||
)->columns(
|
)->columns(
|
||||||
)->column( )->text( 'Visible' )->get_parent(
|
)->column( )->text( 'Visible' )->get_parent(
|
||||||
)->column( )->text( 'Name' )->get_parent(
|
)->column( )->text( 'Name' )->get_parent(
|
||||||
|
@ -590,14 +580,14 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
selected = client->_bind( mv_check_sort )
|
selected = client->_bind( mv_check_sort )
|
||||||
|
|
||||||
)->list(
|
)->list(
|
||||||
items = client->_bind( mt_sort )
|
items = client->_bind( ms_layout-t_cols )
|
||||||
selectionchange = client->_event( 'SELCHANGE' )
|
selectionchange = client->_event( 'SELCHANGE' )
|
||||||
)->custom_list_item(
|
)->custom_list_item(
|
||||||
)->hbox( ).
|
)->hbox( ).
|
||||||
|
|
||||||
lo_hbox->combobox(
|
lo_hbox->combobox(
|
||||||
selectedkey = `{NAME}`
|
selectedkey = `{NAME}`
|
||||||
items = client->_bind( mt_cols )
|
items = client->_bind( ms_layout-t_cols )
|
||||||
* ( key = 'BLUE' text = 'green' )
|
* ( key = 'BLUE' text = 'green' )
|
||||||
* ( key = 'GREEN' text = 'blue' )
|
* ( key = 'GREEN' text = 'blue' )
|
||||||
* ( key = 'BLACK' text = 'red' )
|
* ( key = 'BLACK' text = 'red' )
|
||||||
|
@ -679,8 +669,46 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD z2ui5_on_render_pop_layout.
|
||||||
|
|
||||||
METHOD z2ui5_download_csv.
|
DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||||
|
|
||||||
|
lo_popup->dialog( title = 'abap2UI5 - Layout' contentwidth = `50%`
|
||||||
|
)->input( description = `Name` value = client->_bind( mv_layout_name )
|
||||||
|
)->button( text = `Save` press = client->_event( `BUTTON_SAVE_LAYOUT` )
|
||||||
|
)->table(
|
||||||
|
mode = 'SingleSelectLeft'
|
||||||
|
items = client->_bind( mt_db_layout )
|
||||||
|
)->columns(
|
||||||
|
)->column( )->text( 'Name' )->get_parent(
|
||||||
|
)->column( )->text( 'User' )->get_parent(
|
||||||
|
)->column( )->text( 'Default' )->get_parent(
|
||||||
|
" )->column( )->text( 'Description' )->get_parent(
|
||||||
|
)->get_parent(
|
||||||
|
)->items( )->column_list_item( selected = '{SELKZ}'
|
||||||
|
)->cells(
|
||||||
|
" )->checkbox( '{SELKZ}'
|
||||||
|
)->text( '{NAME}'
|
||||||
|
)->text( '{USER}'
|
||||||
|
)->text( '{DEFAULT}'
|
||||||
|
" )->text( '{DESCR}'
|
||||||
|
)->get_parent( )->get_parent( )->get_parent( )->get_parent(
|
||||||
|
)->footer( )->overflow_toolbar(
|
||||||
|
)->toolbar_spacer(
|
||||||
|
)->button(
|
||||||
|
text = 'load'
|
||||||
|
press = client->_event( 'POPUP_LAYOUT_LOAD' )
|
||||||
|
type = 'Emphasized'
|
||||||
|
)->button(
|
||||||
|
text = 'close'
|
||||||
|
press = client->_event( 'POPUP_LAYOUT_CONTINUE' )
|
||||||
|
type = 'Emphasized' ).
|
||||||
|
|
||||||
|
app-next-xml_popup = lo_popup->get_root( )->xml_get( ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD z2ui5_set_download_csv.
|
||||||
|
|
||||||
DATA(lo_struc) = CAST cl_abap_structdescr( cl_abap_structdescr=>describe_by_data( ms_view-t_tab[ 1 ] ) ).
|
DATA(lo_struc) = CAST cl_abap_structdescr( cl_abap_structdescr=>describe_by_data( ms_view-t_tab[ 1 ] ) ).
|
||||||
DATA(lt_components) = lo_struc->get_components( ).
|
DATA(lt_components) = lo_struc->get_components( ).
|
||||||
|
@ -741,4 +769,42 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD z2ui5_set_search.
|
||||||
|
|
||||||
|
ms_view-t_tab = CORRESPONDING #( mt_table ).
|
||||||
|
IF ms_view-search_val IS NOT INITIAL.
|
||||||
|
LOOP AT ms_view-t_tab REFERENCE INTO DATA(lr_row).
|
||||||
|
DATA(lv_row) = ``.
|
||||||
|
DATA(lv_index) = 1.
|
||||||
|
DO.
|
||||||
|
ASSIGN COMPONENT lv_index OF STRUCTURE lr_row->* TO FIELD-SYMBOL(<field>).
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
EXIT.
|
||||||
|
ENDIF.
|
||||||
|
lv_row = lv_row && <field>.
|
||||||
|
lv_index = lv_index + 1.
|
||||||
|
ENDDO.
|
||||||
|
|
||||||
|
IF lv_row NS ms_view-search_val.
|
||||||
|
DELETE ms_view-t_tab.
|
||||||
|
ENDIF.
|
||||||
|
ENDLOOP.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD z2ui5_set_detail.
|
||||||
|
|
||||||
|
ms_detail = mt_table[ uuid = client->get( )-event_data ].
|
||||||
|
|
||||||
|
SELECT SINGLE FROM z2ui5_t_draft
|
||||||
|
FIELDS *
|
||||||
|
WHERE uuid = @ms_detail-uuid
|
||||||
|
INTO CORRESPONDING FIELDS OF @ms_detail
|
||||||
|
.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -310,3 +310,438 @@ CLASS lcl_db IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS z2ui5_lcl_utility DEFINITION INHERITING FROM cx_no_check.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_attri,
|
||||||
|
name TYPE string,
|
||||||
|
type_kind TYPE string,
|
||||||
|
type TYPE string,
|
||||||
|
bind_type TYPE string,
|
||||||
|
data_stringify TYPE string,
|
||||||
|
gen_type_kind TYPE string,
|
||||||
|
gen_type TYPE string,
|
||||||
|
gen_kind TYPE string,
|
||||||
|
END OF ty_attri.
|
||||||
|
TYPES ty_T_attri TYPE STANDARD TABLE OF ty_attri WITH EMPTY KEY.
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
BEGIN OF ms_error,
|
||||||
|
x_root TYPE REF TO cx_root,
|
||||||
|
uuid TYPE string,
|
||||||
|
s_msg TYPE LINE OF bapirettab,
|
||||||
|
END OF ms_error.
|
||||||
|
|
||||||
|
METHODS constructor
|
||||||
|
IMPORTING
|
||||||
|
val TYPE any OPTIONAL
|
||||||
|
previous TYPE REF TO cx_root OPTIONAL
|
||||||
|
PREFERRED PARAMETER val.
|
||||||
|
|
||||||
|
METHODS get_text REDEFINITION.
|
||||||
|
|
||||||
|
CLASS-METHODS raise
|
||||||
|
IMPORTING
|
||||||
|
v TYPE clike DEFAULT `CX_SY_SUBRC`
|
||||||
|
when TYPE abap_bool DEFAULT abap_true
|
||||||
|
PREFERRED PARAMETER v.
|
||||||
|
|
||||||
|
CLASS-METHODS get_header_val
|
||||||
|
IMPORTING
|
||||||
|
v TYPE clike
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE z2ui5_if_client=>ty_s_name_value-value.
|
||||||
|
|
||||||
|
CLASS-METHODS get_param_val
|
||||||
|
IMPORTING
|
||||||
|
v TYPE clike
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE z2ui5_if_client=>ty_s_name_value-value.
|
||||||
|
|
||||||
|
CLASS-METHODS get_uuid
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
CLASS-METHODS get_uuid_session
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
CLASS-METHODS get_user_tech
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
CLASS-METHODS get_timestampl
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE timestampl.
|
||||||
|
|
||||||
|
CLASS-METHODS trans_any_2_json
|
||||||
|
IMPORTING
|
||||||
|
any TYPE any
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
CLASS-METHODS trans_xml_2_object
|
||||||
|
IMPORTING
|
||||||
|
xml TYPE clike
|
||||||
|
EXPORTING
|
||||||
|
data TYPE data.
|
||||||
|
|
||||||
|
CLASS-METHODS get_t_attri_by_ref
|
||||||
|
IMPORTING
|
||||||
|
io_app TYPE REF TO object
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE ty_t_attri ##NEEDED.
|
||||||
|
|
||||||
|
CLASS-METHODS trans_data_2_xml
|
||||||
|
IMPORTING
|
||||||
|
data TYPE data
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
CLASS-METHODS get_abap_2_json
|
||||||
|
IMPORTING
|
||||||
|
val TYPE any
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
CLASS-METHODS check_is_boolean
|
||||||
|
IMPORTING
|
||||||
|
val TYPE any
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE abap_bool.
|
||||||
|
|
||||||
|
CLASS-METHODS get_json_boolean
|
||||||
|
IMPORTING
|
||||||
|
val TYPE any
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
CLASS-METHODS trans_ref_tab_2_tab
|
||||||
|
IMPORTING
|
||||||
|
ir_tab_from TYPE REF TO data
|
||||||
|
EXPORTING
|
||||||
|
t_result TYPE STANDARD TABLE.
|
||||||
|
|
||||||
|
CLASS-METHODS get_trim_upper
|
||||||
|
IMPORTING
|
||||||
|
val TYPE any
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
|
|
||||||
|
CLASS-DATA mv_counter TYPE i.
|
||||||
|
|
||||||
|
CLASS-METHODS _get_t_attri
|
||||||
|
IMPORTING
|
||||||
|
io_app TYPE REF TO object
|
||||||
|
iv_attri TYPE csequence
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE abap_attrdescr_tab.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
CLASS z2ui5_lcl_utility IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD get_trim_upper.
|
||||||
|
result = CONV #( val ).
|
||||||
|
result = to_upper( shift_left( shift_right( result ) ) ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD constructor.
|
||||||
|
|
||||||
|
super->constructor( previous = previous ).
|
||||||
|
CLEAR textid.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
ms_error-x_root ?= val.
|
||||||
|
CATCH cx_root ##CATCH_ALL.
|
||||||
|
ms_error-s_msg-message = val.
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
ms_error-uuid = get_uuid( ).
|
||||||
|
CATCH cx_root ##CATCH_ALL.
|
||||||
|
ENDTRY.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_abap_2_json.
|
||||||
|
|
||||||
|
IF check_is_boolean( val ).
|
||||||
|
result = COND #( WHEN val = abap_true THEN `true` ELSE `false` ).
|
||||||
|
ELSE.
|
||||||
|
result = |"{ escape( val = val format = cl_abap_format=>e_json_string ) }"|.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD check_is_boolean.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
DATA(lo_ele) = CAST cl_abap_elemdescr( cl_abap_elemdescr=>describe_by_data( val ) ).
|
||||||
|
CASE lo_ele->get_relative_name( ).
|
||||||
|
WHEN `ABAP_BOOL` OR `ABAP_BOOLEAN` OR `XSDBOOLEAN`.
|
||||||
|
result = abap_true.
|
||||||
|
ENDCASE.
|
||||||
|
CATCH cx_root.
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_json_boolean.
|
||||||
|
|
||||||
|
IF check_is_boolean( val ).
|
||||||
|
result = COND #( WHEN val = abap_true THEN `true` ELSE `false` ).
|
||||||
|
ELSE.
|
||||||
|
result = val.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_timestampl.
|
||||||
|
|
||||||
|
GET TIME STAMP FIELD result.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_user_tech.
|
||||||
|
|
||||||
|
result = sy-uname.
|
||||||
|
|
||||||
|
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_uuid_session.
|
||||||
|
|
||||||
|
mv_counter = mv_counter + 1.
|
||||||
|
result = get_trim_upper( mv_counter ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_header_val.
|
||||||
|
|
||||||
|
result = z2ui5_cl_http_handler=>client-t_header[ name = v ]-value.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_param_val.
|
||||||
|
|
||||||
|
DATA(lt_param) = VALUE z2ui5_if_client=>ty_t_name_value( LET tab = z2ui5_cl_http_handler=>client-t_param IN FOR row IN tab
|
||||||
|
( name = to_upper( row-name ) value = to_upper( row-value ) ) ).
|
||||||
|
TRY.
|
||||||
|
result = lt_param[ name = get_trim_upper( v ) ]-value.
|
||||||
|
CATCH cx_root.
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_t_attri_by_ref.
|
||||||
|
|
||||||
|
DATA(lt_attri) = CAST cl_abap_classdescr( cl_abap_objectdescr=>describe_by_object_ref( io_app ) )->attributes.
|
||||||
|
|
||||||
|
DELETE lt_attri WHERE visibility <> cl_abap_classdescr=>public.
|
||||||
|
|
||||||
|
LOOP AT lt_attri INTO DATA(ls_attri)
|
||||||
|
WHERE type_kind = cl_abap_classdescr=>typekind_struct2
|
||||||
|
OR type_kind = cl_abap_classdescr=>typekind_struct1.
|
||||||
|
|
||||||
|
DELETE lt_attri INDEX sy-tabix.
|
||||||
|
|
||||||
|
INSERT LINES OF _get_t_attri(
|
||||||
|
io_app = io_app
|
||||||
|
iv_attri = ls_attri-name ) INTO TABLE lt_attri.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
LOOP AT lt_attri INTO ls_attri.
|
||||||
|
|
||||||
|
DATA(ls_attri2) = VALUE ty_attri( ).
|
||||||
|
ls_attri2 = CORRESPONDING #( ls_attri ).
|
||||||
|
|
||||||
|
FIELD-SYMBOLS <any> TYPE any.
|
||||||
|
UNASSIGN <any>.
|
||||||
|
DATA(lv_assign) = `IO_APP->` && ls_attri-name.
|
||||||
|
ASSIGN (lv_assign) TO <any>.
|
||||||
|
DATA(lo_descr) = cl_abap_datadescr=>describe_by_data( <any> ).
|
||||||
|
CASE lo_descr->kind.
|
||||||
|
WHEN lo_descr->kind_elem.
|
||||||
|
ls_attri2-type = CAST cl_abap_elemdescr( lo_descr )->get_relative_name( ).
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
APPEND ls_attri2 TO result.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD _get_t_attri.
|
||||||
|
|
||||||
|
CONSTANTS c_prefix TYPE string VALUE `IO_APP->`.
|
||||||
|
FIELD-SYMBOLS <attribute> TYPE any.
|
||||||
|
|
||||||
|
DATA(lv_name) = c_prefix && to_upper( iv_attri ).
|
||||||
|
ASSIGN (lv_name) TO <attribute>.
|
||||||
|
raise( when = xsdbool( sy-subrc <> 0 ) ).
|
||||||
|
|
||||||
|
DATA(lo_type) = cl_abap_structdescr=>describe_by_data( <attribute> ).
|
||||||
|
DATA(lo_struct) = CAST cl_abap_structdescr( lo_type ).
|
||||||
|
|
||||||
|
LOOP AT lo_struct->get_components( ) REFERENCE INTO DATA(lr_comp).
|
||||||
|
|
||||||
|
DATA(lv_element) = iv_attri && `-` && lr_comp->name.
|
||||||
|
|
||||||
|
IF lr_comp->as_include = abap_true.
|
||||||
|
INSERT LINES OF _get_t_attri( io_app = io_app
|
||||||
|
iv_attri = lv_element ) INTO TABLE result.
|
||||||
|
|
||||||
|
ELSE.
|
||||||
|
INSERT VALUE #( name = lv_element
|
||||||
|
type_kind = lr_comp->type->type_kind ) INTO TABLE result.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD trans_any_2_json.
|
||||||
|
|
||||||
|
result = /ui2/cl_json=>serialize( any ).
|
||||||
|
|
||||||
|
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_ref_tab_2_tab.
|
||||||
|
|
||||||
|
TYPES ty_t_ref TYPE STANDARD TABLE OF REF TO data.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS <lt_from> TYPE ty_t_ref.
|
||||||
|
ASSIGN ir_tab_from->* TO <lt_from>.
|
||||||
|
raise( when = xsdbool( sy-subrc <> 0 ) ).
|
||||||
|
|
||||||
|
CLEAR t_result.
|
||||||
|
|
||||||
|
DATA(lo_tab) = CAST cl_abap_tabledescr( cl_abap_datadescr=>describe_by_data( t_result ) ).
|
||||||
|
DATA(lo_struc) = CAST cl_abap_structdescr( lo_tab->get_table_line_type( ) ).
|
||||||
|
DATA(lt_components) = lo_struc->get_components( ).
|
||||||
|
|
||||||
|
LOOP AT <lt_from> INTO DATA(lr_from).
|
||||||
|
|
||||||
|
DATA lr_row TYPE REF TO data.
|
||||||
|
CREATE DATA lr_row LIKE LINE OF t_result.
|
||||||
|
ASSIGN lr_row->* TO FIELD-SYMBOL(<row>).
|
||||||
|
|
||||||
|
ASSIGN lr_from->* TO FIELD-SYMBOL(<row_ui5>).
|
||||||
|
raise( when = xsdbool( sy-subrc <> 0 ) ).
|
||||||
|
|
||||||
|
LOOP AT lt_components INTO DATA(ls_comp).
|
||||||
|
|
||||||
|
FIELD-SYMBOLS <comp> TYPE data.
|
||||||
|
ASSIGN COMPONENT ls_comp-name OF STRUCTURE <row> TO <comp>.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
EXIT.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS <comp_ui5> TYPE data.
|
||||||
|
ASSIGN COMPONENT ls_comp-name OF STRUCTURE <row_ui5> TO <comp_ui5>.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
EXIT.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ASSIGN <comp_ui5>->* TO FIELD-SYMBOL(<ls_data_ui5>).
|
||||||
|
IF sy-subrc = 0.
|
||||||
|
<comp> = <ls_data_ui5>.
|
||||||
|
ENDIF.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
INSERT <row> INTO TABLE t_result.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD trans_xml_2_object.
|
||||||
|
|
||||||
|
CALL TRANSFORMATION id
|
||||||
|
SOURCE XML xml
|
||||||
|
RESULT data = data.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD get_text.
|
||||||
|
|
||||||
|
IF ms_error-x_root IS NOT INITIAL.
|
||||||
|
result = ms_error-x_root->get_text( ).
|
||||||
|
DATA(error) = abap_true.
|
||||||
|
ELSEIF ms_error-s_msg-message IS NOT INITIAL.
|
||||||
|
result = ms_error-s_msg-message.
|
||||||
|
error = abap_true.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
IF error = abap_true AND result IS INITIAL.
|
||||||
|
result = `unknown error`.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD raise.
|
||||||
|
|
||||||
|
IF when = abap_false.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
RAISE EXCEPTION TYPE z2ui5_lcl_utility EXPORTING val = v.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
ENDCLASS.
|
||||||
|
|
|
@ -678,6 +678,7 @@ CLASS z2ui5_lcl_utility_tree_json IMPLEMENTATION.
|
||||||
|
|
||||||
FIELD-SYMBOLS <attribute> TYPE any.
|
FIELD-SYMBOLS <attribute> TYPE any.
|
||||||
DATA(lv_name) = c_prefix && replace( val = name sub = `-` with = `_` occ = 0 ).
|
DATA(lv_name) = c_prefix && replace( val = name sub = `-` with = `_` occ = 0 ).
|
||||||
|
" DATA(lv_name) = c_prefix && replace( val = name sub = `-` with = `_` occ = 0 ).
|
||||||
ASSIGN (lv_name) TO <attribute>.
|
ASSIGN (lv_name) TO <attribute>.
|
||||||
z2ui5_lcl_utility=>raise( when = xsdbool( sy-subrc <> 0 ) ).
|
z2ui5_lcl_utility=>raise( when = xsdbool( sy-subrc <> 0 ) ).
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user