* demos

* demos

* demos

* demos

* demos

* demos

* demos

* demos

* demos
This commit is contained in:
oblomov 2023-05-11 22:53:38 +02:00
parent 12493b53fd
commit 8309642e55
9 changed files with 877 additions and 355 deletions

View File

@ -113,12 +113,13 @@ CLASS Z2UI5_CL_APP_DEMO_00 IMPLEMENTATION.
grid->simple_form( title = 'HowTo - More I' layout = 'ResponsiveGridLayout' )->content( 'form' grid->simple_form( title = 'HowTo - More I' layout = 'ResponsiveGridLayout' )->content( 'form'
)->button( text = 'Side Effects' press = client->_event( 'z2ui5_cl_app_demo_27' ) )->button( text = 'Side Effects' press = client->_event( 'z2ui5_cl_app_demo_27' )
)->button( text = 'Integer and Decimals' press = client->_event( 'z2ui5_cl_app_demo_47' ) )->button( text = 'Integer, Decimals, Dates, Time' press = client->_event( 'z2ui5_cl_app_demo_47' )
)->button( text = 'FE Table' press = client->_event( 'z2ui5_cl_app_demo_49' ) " )->button( text = 'FE Table' press = client->_event( 'z2ui5_cl_app_demo_49' )
). ).
grid->simple_form( title = 'HowTo - More II' layout = 'ResponsiveGridLayout' )->content( 'form' grid->simple_form( title = 'HowTo - More II' layout = 'ResponsiveGridLayout' )->content( 'form'
)->button( text = 'Change CSS' press = client->_event( 'z2ui5_cl_app_demo_50' ) )->button( text = 'Change CSS' press = client->_event( 'z2ui5_cl_app_demo_50' )
)->button( text = 'Change Model at Runtime' press = client->_event( 'z2ui5_cl_app_demo_35' )
). ).
DATA(form) = page->grid( 'L9 M12 S12' DATA(form) = page->grid( 'L9 M12 S12'
@ -201,7 +202,22 @@ CLASS Z2UI5_CL_APP_DEMO_00 IMPLEMENTATION.
growfactor = '1' growfactor = '1'
styleclass = 'sapUiTinyMargin' styleclass = 'sapUiTinyMargin'
)->get_parent( )->get_parent( )->get_parent( )->get_parent(
)->text( `Use the sap.uxap.ObjectPageLayout to easily display information related to a business object. It is composed of a header and content wrapping in sections and subestions.` )->get( )->text( `Use the sap.uxap.ObjectPageLayout to easily display information related to a business object. It is composed of a header and content wrapping in sections and subestions` )->get(
)->layout_data(
)->flex_item_data(
growfactor = '3'
styleclass = 'sapUiTinyMargin' ).
form->flex_box( class = 'columns'
)->button(
text = 'List Report'
press = client->_event( 'z2ui5_cl_app_demo_49' ) )->get(
)->layout_data(
)->flex_item_data(
growfactor = '1'
styleclass = 'sapUiTinyMargin'
)->get_parent( )->get_parent(
)->text( `Similar functionality to a Fiori Elements List Report - Display Table with Sorting, Filtering, Navigation, Layouts and Custom Functions` )->get(
)->layout_data( )->layout_data(
)->flex_item_data( )->flex_item_data(
growfactor = '3' growfactor = '3'

View File

@ -51,10 +51,6 @@ CLASS z2ui5_cl_app_demo_07 DEFINITION PUBLIC.
RETURNING RETURNING
VALUE(r_result) TYPE string. VALUE(r_result) TYPE string.
METHODS ui5_get_ccontrol_file_upload
RETURNING
VALUE(result) TYPE string.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
@ -62,118 +58,6 @@ ENDCLASS.
CLASS Z2UI5_CL_APP_DEMO_07 IMPLEMENTATION. CLASS Z2UI5_CL_APP_DEMO_07 IMPLEMENTATION.
METHOD ui5_get_ccontrol_file_upload.
result = ` jQuery.sap.declare("z2ui5.FileUploader");` && |\n| &&
|\n| &&
` sap.ui.define([` && |\n| &&
` "sap/ui/core/Control",` && |\n| &&
` "sap/m/Button",` && |\n| &&
` "sap/ui/unified/FileUploader"` && |\n| &&
` ], function (Control, Button, FileUploader) {` && |\n| &&
` "use strict";` && |\n| &&
|\n| &&
` return Control.extend("z2ui5.FileUploader", {` && |\n| &&
|\n| &&
` metadata: {` && |\n| &&
` properties: {` && |\n| &&
` value: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` path: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` tooltip: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` fileType: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` placeholder: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` buttonText: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: "Upload"` && |\n| &&
` },` && |\n| &&
` enabled: {` && |\n| &&
` type: "boolean",` && |\n| &&
` defaultValue: true` && |\n| &&
` },` && |\n| &&
` multiple: {` && |\n| &&
` type: "boolean",` && |\n| &&
` defaultValue: false` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
|\n| &&
|\n| &&
` aggregations: {` && |\n| &&
` },` && |\n| &&
` events: {` && |\n| &&
` "upload": {` && |\n| &&
` allowPreventDefault: true,` && |\n| &&
` parameters: {}` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` renderer: null` && |\n| &&
` },` && |\n| &&
|\n| &&
` renderer: function (oRm, oControl) {` && |\n| &&
|\n| &&
` oControl.oUploadButton = new Button({` && |\n| &&
` text: oControl.getProperty("buttonText"),` && |\n| &&
` enabled: oControl.getProperty("path") !== "",` && |\n| &&
` press: function (oEvent) {` && |\n| &&
|\n| &&
` this.setProperty("path", this.oFileUploader.getProperty("value"));` && |\n| &&
|\n| &&
` var file = this.oFileUploader.oFileUpload.files[0];` && |\n| &&
` var reader = new FileReader();` && |\n| &&
|\n| &&
` reader.onload = function (evt) {` && |\n| &&
` var vContent = evt.currentTarget.result;` && |\n| &&
` this.setProperty("value", vContent);` && |\n| &&
` this.fireUpload();` && |\n| &&
` //this.getView().byId('picture' ).getDomRef().src = vContent;` && |\n| &&
` }.bind(this)` && |\n| &&
|\n| &&
` reader.readAsDataURL(file);` && |\n| &&
` }.bind(oControl)` && |\n| &&
` });` && |\n| &&
|\n| &&
` oControl.oFileUploader = new FileUploader({` && |\n| &&
` icon: "sap-icon://browse-folder",` && |\n| &&
` iconOnly: true,` && |\n| &&
` value: oControl.getProperty("path"),` && |\n| &&
` placeholder: oControl.getProperty("placeholder"),` && |\n| &&
` change: function (oEvent) {` && |\n| &&
` var value = oEvent.getSource().getProperty("value");` && |\n| &&
` this.setProperty("path", value);` && |\n| &&
` if (value) {` && |\n| &&
` this.oUploadButton.setEnabled();` && |\n| &&
` } else {` && |\n| &&
` this.oUploadButton.setEnabled(false);` && |\n| &&
` }` && |\n| &&
` this.oUploadButton.rerender();` && |\n| &&
` }.bind(oControl)` && |\n| &&
` });` && |\n| &&
|\n| &&
` var hbox = new sap.m.HBox();` && |\n| &&
` hbox.addItem(oControl.oFileUploader);` && |\n| &&
` hbox.addItem(oControl.oUploadButton);` && |\n| &&
` oRm.renderControl(hbox);` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
` });`.
ENDMETHOD.
METHOD ui5_on_event. METHOD ui5_on_event.
CASE client->get( )-event. CASE client->get( )-event.
@ -299,7 +183,7 @@ CLASS Z2UI5_CL_APP_DEMO_07 IMPLEMENTATION.
page->text( ns = 'm' text = 'Custom Control for File Upload is now loaded.' page->text( ns = 'm' text = 'Custom Control for File Upload is now loaded.'
)->button( ns = 'm' text = 'continue' press = client->_event( 'START' ) )->button( ns = 'm' text = 'continue' press = client->_event( 'START' )
)->zz_plain( ` <script> ` && ui5_get_ccontrol_file_upload( ) && ` </script>` )->zz_plain( ` <script> ` && z2ui5_cl_xml_view=>cc_file_uploader_get_js( ) && ` </script>`
). ).
r_result = lo_view->get_root( )->xml_get( ). r_result = lo_view->get_root( )->xml_get( ).
@ -319,7 +203,7 @@ CLASS Z2UI5_CL_APP_DEMO_07 IMPLEMENTATION.
)->link( text = 'Source_Code' href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) ) )->link( text = 'Source_Code' href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) )
)->get_parent( ). )->get_parent( ).
page->zz_file_uploader( page->cc_file_uploader(
value = client->_bind( mv_value ) value = client->_bind( mv_value )
path = client->_bind( mv_path ) path = client->_bind( mv_path )
placeholder = 'filepath here...' placeholder = 'filepath here...'

View File

@ -7,7 +7,6 @@ CLASS z2ui5_cl_app_demo_35 DEFINITION PUBLIC.
DATA mt_table TYPE REF TO data. DATA mt_table TYPE REF TO data.
DATA mt_cols TYPE string_table. DATA mt_cols TYPE string_table.
DATA mv_name TYPE string. DATA mv_name TYPE string.
DATA mv_input TYPE string.
PROTECTED SECTION. PROTECTED SECTION.
@ -21,7 +20,6 @@ CLASS z2ui5_cl_app_demo_35 DEFINITION PUBLIC.
next TYPE z2ui5_if_client=>ty_s_next, next TYPE z2ui5_if_client=>ty_s_next,
END OF app. END OF app.
METHODS z2ui5_on_init. METHODS z2ui5_on_init.
METHODS z2ui5_on_event. METHODS z2ui5_on_event.
METHODS z2ui5_on_render. METHODS z2ui5_on_render.
@ -116,7 +114,7 @@ CLASS z2ui5_cl_app_demo_35 IMPLEMENTATION.
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( ) )
)->get_parent( )->get_parent(
)->simple_form( title = 'SE16' editable = abap_true )->simple_form( editable = abap_true
)->content( `form` )->content( `form`
)->title( 'Table' )->title( 'Table'
)->label( 'Name' ). )->label( 'Name' ).
@ -124,19 +122,7 @@ CLASS z2ui5_cl_app_demo_35 IMPLEMENTATION.
lo_view->input( client->_bind( mv_name ) ). lo_view->input( client->_bind( mv_name ) ).
lo_view->button( lo_view->button(
text = 'search' text = 'read'
press = client->_event( 'BUTTON_TABLE' )
).
lo_view = lo_view->get_parent( )->get_parent( )->simple_form( title = 'cols' editable = abap_true
)->content( 'form' ).
LOOP AT mt_cols REFERENCE INTO DATA(lr_col).
lo_view->label( lr_col->* ).
lo_view->input( value = mv_input ).
ENDLOOP.
lo_view->button(
text = 'search'
press = client->_event( 'BUTTON_POST' ) press = client->_event( 'BUTTON_POST' )
). ).
@ -144,14 +130,14 @@ CLASS z2ui5_cl_app_demo_35 IMPLEMENTATION.
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE. FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
ASSIGN mt_table->* TO <tab>. ASSIGN mt_table->* TO <tab>.
DATA(tab) = lo_view->get_parent( )->get_parent( )->simple_form( title = 'Table' editable = abap_true DATA(tab) = lo_view->get_parent( )->get_parent( )->simple_form( editable = abap_true
)->content( 'form' )->table( )->content( 'form' )->table(
items = client->_bind( val = <tab> check_gen_data = abap_true ) items = client->_bind( val = <tab> check_gen_data = abap_true )
). ).
" DATA(lt_fields) = lcl_db=>get_fieldlist_by_table( <tab> ).
DATA(lo_columns) = tab->columns( ). DATA(lo_columns) = tab->columns( ).
mt_cols = lcl_db=>get_fieldlist_by_table( <tab> ).
LOOP AT mt_cols INTO DATA(lv_field) FROM 2. LOOP AT mt_cols INTO DATA(lv_field) FROM 2.
lo_columns->column( )->text( lv_field ). lo_columns->column( )->text( lv_field ).
ENDLOOP. ENDLOOP.

View File

@ -5,7 +5,7 @@
<VSEOCLASS> <VSEOCLASS>
<CLSNAME>Z2UI5_CL_APP_DEMO_35</CLSNAME> <CLSNAME>Z2UI5_CL_APP_DEMO_35</CLSNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>test - table maintenance 2</DESCRIPT> <DESCRIPT>more - dynamic model</DESCRIPT>
<STATE>1</STATE> <STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL> <CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT> <FIXPT>X</FIXPT>

View File

@ -12,7 +12,6 @@ CLASS z2ui5_cl_app_demo_47 DEFINITION PUBLIC.
DATA dec2 TYPE p LENGTH 10 DECIMALS 4. DATA dec2 TYPE p LENGTH 10 DECIMALS 4.
DATA dec_sum TYPE p LENGTH 10 DECIMALS 4. DATA dec_sum TYPE p LENGTH 10 DECIMALS 4.
DATA boolean TYPE abap_bool.
DATA date TYPE d. DATA date TYPE d.
DATA time TYPE t. DATA time TYPE t.
@ -74,8 +73,6 @@ CLASS z2ui5_cl_app_demo_47 IMPLEMENTATION.
)->input( client->_bind( date ) )->input( client->_bind( date )
)->label( 'time' )->label( 'time'
)->input( client->_bind( time ) )->input( client->_bind( time )
)->label( 'boolean'
)->input( client->_bind( boolean )
)->get_root( )->xml_get( ) ) ). )->get_root( )->xml_get( ) ) ).

View File

@ -4,12 +4,47 @@ CLASS z2ui5_cl_app_demo_49 DEFINITION PUBLIC.
INTERFACES z2ui5_if_app. INTERFACES z2ui5_if_app.
" DATA mt_table TYPE REF TO data.
DATA mt_table TYPE STANDARD TABLE OF z2ui5_t_draft. DATA mt_table TYPE STANDARD TABLE OF z2ui5_t_draft.
" DATA mt_cols TYPE string_table. DATA ms_detail TYPE z2ui5_t_draft.
data mv_check_columns type abap_bool. DATA mv_check_columns TYPE abap_bool.
data mv_check_sort type abap_bool. DATA mv_check_sort TYPE abap_bool.
data mv_check_group type abap_bool. DATA mv_check_table TYPE abap_bool.
DATA mv_contentheight TYPE string VALUE `70%`.
DATA mv_contentwidth TYPE string VALUE `70%`.
DATA mv_check_download_csv TYPE abap_bool.
TYPES:
BEGIN OF ty_S_out,
selkz TYPE abap_bool,
uuid TYPE string,
uuid_prev TYPE string,
uuid_prev_app TYPE string,
uuid_prev_app_stack TYPE string,
timestampl TYPE string,
uname TYPE string,
data TYPE string,
END OF ty_s_out.
DATA:
BEGIN OF ms_view,
headerpinned TYPE abap_bool,
headerexpanded TYPE abap_bool,
search_val TYPE string,
t_tab TYPE STANDARD TABLE OF ty_S_out WITH EMPTY KEY,
END OF ms_view.
TYPES:
BEGIN OF ty_S_cols,
visible TYPE abap_bool,
name TYPE string,
length TYPE string,
title TYPE string,
editable TYPE abap_bool,
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,
@ -17,19 +52,46 @@ 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 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_cols, BEGIN OF ty_S_sort,
selkz TYPE abap_bool, " selkz TYPE abap_bool,
name TYPE string, name TYPE string,
length TYPE string, type TYPE string,
END OF ty_S_cols. " descr TYPE string,
" check_descending TYPE string,
END OF ty_S_sort.
DATA mt_cols TYPE STANDARD TABLE OF ty_S_cols. DATA mt_sort TYPE STANDARD TABLE OF ty_S_sort.
" DATA mv_name TYPE string. data:
* DATA mv_input TYPE string. begin of ms_layout,
BEGIN OF s_table,
check_zebra TYPE abap_bool,
title TYPE string,
sticky_header TYPE string,
selmode TYPE string,
END OF s_table,
t_filter TYPE STANDARD TABLE OF ty_S_filter,
end of ms_layout.
TYPES:
BEGIN OF s_combobox,
key TYPE string,
text TYPE string,
END OF s_combobox.
TYPES ty_t_combo TYPE STANDARD TABLE OF s_combobox WITH EMPTY KEY.
PROTECTED SECTION. PROTECTED SECTION.
@ -47,8 +109,15 @@ CLASS z2ui5_cl_app_demo_49 DEFINITION PUBLIC.
METHODS z2ui5_on_init. METHODS z2ui5_on_init.
METHODS z2ui5_on_event. METHODS z2ui5_on_event.
METHODS z2ui5_on_render. METHODS z2ui5_on_render.
METHODS init_table_output.
METHODS z2ui5_on_render_main.
METHODS z2ui5_on_render_detail.
METHODS z2ui5_on_render_pop_setup.
METHODS z2ui5_on_render_pop_filter.
METHODS z2ui5_download_csv
IMPORTING
i_view TYPE REF TO z2ui5_cl_xml_view.
PRIVATE SECTION.
ENDCLASS. ENDCLASS.
@ -85,19 +154,65 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
CASE app-get-event. CASE app-get-event.
WHEN 'BUTTON_TABLE'. WHEN 'BUTTON_DELETE'.
* FIELD-SYMBOLS <tab> TYPE STANDARD TABLE. DELETE ms_view-t_tab WHERE selkz = abap_true.
* CREATE DATA mt_table TYPE STANDARD TABLE OF (mv_name).
* ASSIGN mt_table->* TO <tab>.
WHEN 'BUTTON_CUSTOM'.
client->popup_message_box( `custom action called` ).
when 'BUTTON_START'.
SELECT FROM z2ui5_t_draft
FIELDS uuid, uuid_prev, timestampl, uname
INTO CORRESPONDING FIELDS OF TABLE @mt_table
UP TO 50 ROWS.
ms_view-t_tab = CORRESPONDING #( mt_table ).
WHEN 'BUTTON_DOWNLOAD'.
mv_check_download_csv = abap_true.
WHEN 'BUTTON_SEARCH'.
app-next-s_cursor_pos-id = 'SEARCH'.
app-next-s_cursor_pos-cursorpos = '99'.
app-next-s_cursor_pos-selectionend = '99'.
app-next-s_cursor_pos-selectionstart = '99'.
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.
WHEN 'MAIN'.
app-view_main = 'MAIN'.
WHEN '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'.
WHEN 'BUTTON_POST'. WHEN 'BUTTON_POST'.
* CREATE DATA mt_table TYPE STANDARD TABLE OF (mv_name).
* "FIELD-SYMBOLS <tab> TYPE table.
* ASSIGN mt_table->* TO <tab>.
SELECT FROM z2ui5_t_draft SELECT FROM z2ui5_t_draft
FIELDS * FIELDS *
INTO CORRESPONDING FIELDS OF TABLE @mt_table INTO CORRESPONDING FIELDS OF TABLE @mt_table
@ -113,6 +228,9 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
WHEN 'POPUP_FILTER_CONTINUE'. WHEN 'POPUP_FILTER_CONTINUE'.
" app-view_popup = 'POPUP_FILTER'. " app-view_popup = 'POPUP_FILTER'.
WHEN 'BUTTON_INIT'.
init_table_output( ).
WHEN 'BUTTON_CANCEL'. WHEN 'BUTTON_CANCEL'.
client->popup_message_toast( |cancel| ). client->popup_message_toast( |cancel| ).
app-view_popup = ''. app-view_popup = ''.
@ -127,39 +245,410 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
METHOD z2ui5_on_init. METHOD z2ui5_on_init.
app-view_main = 'VIEW_MAIN'. app-view_main = 'MAIN'.
" mv_name = `Z2UI5_T_DRAFT`. init_table_output( ).
DATA(lt_cols) = lcl_db=>get_fieldlist_by_table( mt_table ). ms_layout-s_table-selmode = 'MultiSelect'.
LOOP AT lt_cols REFERENCE INTO DATA(lr_col) FROM 2. ms_layout-s_table-check_zebra = abap_true.
ms_view-t_tab = CORRESPONDING #( mt_table ).
INSERT VALUE #( ms_layout-s_table-sticky_header = `HeaderToolbar,InfoToolbar,ColumnHeaders`.
name = lr_col->* ms_layout-s_table-title = `Drafts`.
) INTO TABLE mt_filter.
INSERT VALUE #(
selkz = abap_true
name = lr_col->*
length = `10px`
) INTO TABLE mt_cols.
ENDLOOP.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_on_render. METHOD z2ui5_on_render.
DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ).
CASE app-view_popup. CASE app-view_popup.
WHEN `POPUP_FILTER`. WHEN `POPUP_FILTER`.
z2ui5_on_render_pop_filter( ).
WHEN `POPUP_SETUP`.
z2ui5_on_render_pop_setup( ).
ENDCASE.
CASE app-view_main.
WHEN 'MAIN'.
z2ui5_on_render_main( ).
WHEN 'DETAIL'.
z2ui5_on_render_detail( ).
ENDCASE.
ENDMETHOD.
METHOD init_table_output.
" CLEAR ms_layout-s_table.
CLEAR mt_cols.
CLEAR mt_sort.
ms_view-headerexpanded = abap_true.
ms_view-headerpinned = abap_true.
DATA(lt_cols) = lcl_db=>get_fieldlist_by_table( mt_table ).
LOOP AT lt_cols REFERENCE INTO DATA(lr_col) FROM 2.
INSERT VALUE #(
name = lr_col->*
) INTO TABLE ms_layout-t_filter.
INSERT VALUE #(
visible = abap_true
name = lr_col->*
" length = `10px`
title = lr_col->*
) INTO TABLE mt_cols.
INSERT VALUE #(
" selkz = abap_true
name = lr_col->*
" length = `10px`
) INTO TABLE mt_sort.
ENDLOOP.
ENDMETHOD.
METHOD z2ui5_on_render_main.
" DATA(view) = z2ui5_cl_xml_view=>factory( )->shell( ).
DATA(view) = z2ui5_cl_xml_view=>factory(
)->page(
title = 'abap2UI5 - List Report'
navbuttonpress = client->_event( 'BACK' )
shownavbutton = abap_true
)->header_content(
)->link(
text = 'Demo' target = '_blank'
href = 'https://twitter.com/OblomovDev/status/1637163852264624139'
)->link(
text = 'Source_Code' target = '_blank' href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
)->get_parent( ).
IF mv_check_download_csv = abap_true.
z2ui5_download_csv( view ).
ENDIF.
DATA(page) = view->dynamic_page(
headerexpanded = client->_bind( ms_view-headerexpanded )
headerpinned = client->_bind( ms_view-headerpinned ) ).
DATA(header_title) = page->title( ns = 'f'
)->get( )->dynamic_page_title( ).
header_title->heading( ns = 'f' )->title( 'Standart' ).
header_title->expanded_content( 'f'
)->label( text = 'Drafts of abap2UI5' ).
header_title->snapped_content( ns = 'f'
)->label( text = 'Drafts of abap2UI5' ).
header_title->actions( ns = 'f' )->overflow_toolbar(
)->button( text = `Layout` type = `Emphasized`
)->button( text = `Start` press = client->_event( `BUTTON_START` ) type = `Emphasized`
).
data(lo_box) = page->header( )->dynamic_page_header( pinnable = abap_true
)->flex_box( alignItems = `Start` justifyContent = `SpaceBetween` ).
data(lt_filter) = ms_layout-t_filter.
DELETE lt_filter where selkz = abap_false.
loop at lt_filter REFERENCE INTO data(lr_filter)
where selkz = abap_true.
lo_box->input( description = lr_filter->name ).
endloop.
lo_box->button( text = `Change Filter (` && shift_right( conv string( lines( lt_filter ) ) ) && `)` press = client->_event( `POPUP_FILTER` ) ).
DATA(cont) = page->content( ns = 'f' ).
DATA(tab) = cont->table(
items = client->_bind( val = ms_view-t_tab )
alternaterowcolors = ms_layout-s_table-check_zebra
sticky = ms_layout-s_table-sticky_header
mode = ms_layout-s_table-selmode ).
tab->header_toolbar(
)->toolbar(
)->title( text = ms_layout-s_table-title && ` (` && shift_right( CONV string( lines( ms_view-t_tab ) ) ) && `)` level = `H2`
)->toolbar_spacer(
)->button(
icon = 'sap-icon://refresh'
press = client->_event( 'BUTTON_REFRESH' )
)->search_field(
value = client->_bind( ms_view-search_val )
search = client->_event( 'BUTTON_SEARCH' )
change = client->_event( 'BUTTON_SEARCH' )
* liveChange = client->_event( 'BUTTON_SEARCH' )
width = `17.5rem`
id = `SEARCH`
)->toolbar_spacer(
)->button(
text = `Custom Action`
press = client->_event( 'BUTTON_CUSTOM' )
)->button(
text = `Anlegen`
enabled = abap_false
press = client->_event( 'BUTTON_CREATE' )
)->button(
text = `Löschen`
press = client->_event( 'BUTTON_DELETE' )
)->button(
icon = 'sap-icon://action-settings'
press = client->_event( 'BUTTON_SETUP' )
)->button(
icon = 'sap-icon://download'
press = client->_event( 'BUTTON_DOWNLOAD' )
).
DATA(lo_columns) = tab->columns( ).
LOOP AT mt_cols REFERENCE INTO DATA(lr_field)
WHERE visible = abap_true.
lo_columns->column( width = lr_field->length )->text( text = CONV char10( lr_field->title )
)->footer(
)->object_number( number = `10` unit = 'ST' state = `Warning` ).
ENDLOOP.
DATA(lo_cells) = tab->items( )->column_list_item(
press = client->_event( val = 'DETAIL' data = `${UUID}` )
selected = `{SELKZ}`
type = `Navigation` )->cells( ).
LOOP AT mt_cols REFERENCE INTO lr_field
WHERE visible = abap_true.
IF lr_field->editable = abap_true.
lo_cells->input( `{` && lr_field->name && `}` ).
ELSE.
lo_cells->text( `{` && lr_field->name && `}` ).
ENDIF.
ENDLOOP.
app-next-xml_main = page->get_root( )->xml_get( ).
ENDMETHOD.
METHOD z2ui5_on_render_detail.
DATA(view) = z2ui5_cl_xml_view=>factory(
)->page(
title = 'abap2UI5 - List Report'
navbuttonpress = client->_event( 'MAIN' )
shownavbutton = abap_true
)->header_content(
)->link(
text = 'Demo' target = '_blank'
href = 'https://twitter.com/OblomovDev/status/1637163852264624139'
)->link(
text = 'Source_Code' target = '_blank' href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
)->get_parent( ).
DATA(page) = view->object_page_layout(
showtitleinheadercontent = abap_true
showeditheaderbutton = abap_true
editheaderbuttonpress = client->_event( 'EDIT_HEADER_PRESS' )
uppercaseanchorbar = abap_false
).
DATA(header_title) = page->header_title( )->object_page_dyn_header_title( ).
header_title->expanded_heading(
)->hbox(
)->title( text = 'Draft' wrapping = abap_true ).
header_title->snapped_heading(
)->flex_box( alignitems = `Center`
)->avatar( src = `` class = 'sapUiTinyMarginEnd'
)->title( text = 'Draft' wrapping = abap_true ).
header_title->expanded_content( ns = `uxap` )->text( `Details` ).
header_title->snapped_Content( ns = `uxap` )->text( `Details` ).
header_title->snapped_Title_On_Mobile( )->title( `Details` ).
DATA(header_content) = page->header_Content( ns = 'uxap' ).
header_content->flex_box( wrap = 'Wrap'
)->avatar( src = `` class = 'sapUiSmallMarginEnd' displaySize = 'layout'
)->vertical_layout( class = 'sapUiSmallMarginBeginEnd'
)->label( text = `UUID`
)->label( text = ms_detail-uuid
)->get_parent(
)->horizontal_layout( class = 'sapUiSmallMarginBeginEnd'
)->vertical_layout(
)->label( text = 'UUID PRevious'
)->label( text = ms_detail-uuid_prev
)->get_parent(
)->get_parent(
)->vertical_layout( class = 'sapUiSmallMarginBeginEnd'
)->label( text = 'Info'
)->vbox(
)->label( 'Timestampl'
)->label( CONV #( ms_detail-timestampl )
)->get_parent( )->get_parent(
)->vertical_layout( class = 'sapUiSmallMarginBeginEnd'
)->label( text = 'User'
)->label( text = ms_detail-uname
)->get_parent(
).
DATA(sections) = page->sections( ).
sections->object_page_section( titleuppercase = abap_false id = 'goalsSectionSS1' title = '2014 Goals Plan'
)->heading( ns = `uxap`
)->get_parent(
)->sub_sections(
)->object_page_sub_section( id = 'goalssubSectionSS1' title = 'XML'
)->blocks(
)->code_editor(
type = `XML`
" editable = mv_check_editable
value = client->_bind_one( ms_detail-data ) ).
app-next-xml_main = view->get_root( )->xml_get( ).
ENDMETHOD.
METHOD z2ui5_on_render_pop_setup.
DATA(ro_popup) = z2ui5_cl_xml_view=>factory_popup( ).
ro_popup = ro_popup->dialog( title = 'View Setup' resizable = abap_true
contentheight = client->_bind( mv_contentheight ) contentwidth = client->_bind( mv_contentwidth ) ).
ro_popup->custom_header(
)->bar(
)->content_right(
)->button( text = `zurücksetzten` press = client->_event( 'BUTTON_INIT' ) ).
DATA(lo_tab) = ro_popup->tab_container( ).
lo_tab->tab( text = 'Table' selected = client->_bind( mv_check_table )
)->simple_form( editable = abap_true
)->content( 'form'
)->label( 'zebra mode'
)->checkbox( client->_bind( ms_layout-s_table-check_zebra )
)->label( 'sticky header'
)->input( client->_bind( ms_layout-s_table-sticky_header )
)->label( text = `Title`
)->Input( value = client->_bind( ms_layout-s_table-title )
)->label( 'sel mode'
)->combobox(
selectedkey = client->_bind( ms_layout-s_table-selmode )
items = client->_bind_one( VALUE ty_t_combo(
( key = 'None' text = 'None' )
( key = 'SingleSelect' text = 'SingleSelect' )
( key = 'SingleSelectLeft' text = 'SingleSelectLeft' )
( key = 'MultiSelect' text = 'MultiSelect' ) ) )
)->item(
key = '{KEY}'
text = '{TEXT}' ).
lo_tab->tab(
text = 'Columns'
selected = client->_bind( mv_check_columns )
)->table(
" mode = 'MultiSelect'
items = client->_bind( mt_cols )
)->columns(
)->column( )->text( 'Visible' )->get_parent(
)->column( )->text( 'Name' )->get_parent(
)->column( )->text( 'Title' )->get_parent(
)->column( )->text( 'Editable' )->get_parent(
)->column( )->text( 'Length' )->get_parent(
)->get_parent(
)->items( )->column_list_item(
)->cells(
)->checkbox( '{VISIBLE}'
)->text( '{NAME}'
)->Input( '{TITLE}'
)->checkbox( '{EDITABLE}'
)->Input( '{LENGTH}'
" )->text( '{DESCR}'
)->get_parent( )->get_parent( )->get_parent( )->get_parent( )->get_parent( ).
DATA(lo_hbox) = lo_tab->tab(
text = 'Sort'
selected = client->_bind( mv_check_sort )
)->list(
items = client->_bind( mt_sort )
selectionchange = client->_event( 'SELCHANGE' )
)->custom_list_item(
)->hbox( ).
lo_hbox->combobox(
selectedkey = `{NAME}`
items = client->_bind( mt_cols )
* ( key = 'BLUE' text = 'green' )
* ( key = 'GREEN' text = 'blue' )
* ( key = 'BLACK' text = 'red' )
* ( key = 'GRAY' text = 'gray' ) ) )
)->item(
key = '{NAME}'
text = '{NAME}'
)->get_parent(
)->segmented_button( `{TYPE}`
)->items(
)->segmented_button_item(
key = 'DESCENDING'
icon = 'sap-icon://sort-descending'
)->segmented_button_item(
key = 'ASCENDING'
icon = 'sap-icon://sort-ascending'
)->get_parent( )->get_parent(
)->text( text = `{TYPE}`
)->button( text = 'close' ).
* )->get_parent( )->get_parent( )->get_parent(
* )->button(
* text = 'counter descending'
* icon = 'sap-icon://sort-descending'
* press = client->_event( 'SORT_DESCENDING' )
* )->button(
* text = 'counter ascending'
* icon = 'sap-icon://sort-ascending'
* press = client->_event( 'SORT_ASCENDING' )
* )->get_parent( ).
* lo_tab->tab(
* text = 'Group'
* selected = client->_bind( mv_check_group )
* )->get_parent( )->get_parent( ).
ro_popup->footer( )->overflow_toolbar(
)->toolbar_spacer(
)->button(
text = 'continue'
press = client->_event( 'POPUP_FILTER_CONTINUE' )
type = 'Emphasized' ).
app-next-xml_popup = ro_popup->get_root( )->xml_get( ).
ENDMETHOD.
METHOD z2ui5_on_render_pop_filter.
DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ).
lo_popup->dialog( 'abap2UI5 - Popup to select entry' lo_popup->dialog( 'abap2UI5 - Popup to select entry'
)->table( )->table(
mode = 'MultiSelect' mode = 'MultiSelect'
items = client->_bind( mt_filter ) items = client->_bind( ms_layout-t_filter )
)->columns( )->columns(
)->column( )->text( 'Title' )->get_parent( )->column( )->text( 'Title' )->get_parent(
)->column( )->text( 'Color' )->get_parent( )->column( )->text( 'Color' )->get_parent(
@ -180,151 +669,45 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
press = client->_event( 'POPUP_FILTER_CONTINUE' ) press = client->_event( 'POPUP_FILTER_CONTINUE' )
type = 'Emphasized' ). type = 'Emphasized' ).
WHEN `POPUP_SETUP`.
lo_popup->dialog( title = 'View Setup' contentheight = `70%` contentwidth = `70%`
)->tab_container(
)->tab(
text = 'Columns'
selected = client->_bind( mv_check_columns )
)->table(
mode = 'MultiSelect'
items = client->_bind( mt_cols )
)->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(
" )->checkbox( '{SELKZ}'
)->text( '{NAME}'
)->text( '{VALUE}'
" )->text( '{DESCR}'
)->get_parent( )->get_parent( )->get_parent( )->get_parent( )->get_parent(
)->tab(
text = 'Sort'
selected = client->_bind( mv_check_sort )
)->button(
text = 'counter descending'
icon = 'sap-icon://sort-descending'
press = client->_event( 'SORT_DESCENDING' )
)->button(
text = 'counter ascending'
icon = 'sap-icon://sort-ascending'
press = client->_event( 'SORT_ASCENDING' )
)->get_parent(
)->tab(
text = 'Group'
selected = client->_bind( mv_check_group )
)->get_parent( )->get_parent(
)->footer( )->overflow_toolbar(
)->toolbar_spacer(
)->button(
text = 'continue'
press = client->_event( 'POPUP_FILTER_CONTINUE' )
type = 'Emphasized' ).
ENDCASE.
DATA(lo_view) = z2ui5_cl_xml_view=>factory( )->shell( )->page(
title = 'abap2UI5 - Change the table type with RTTI'
navbuttonpress = client->_event( 'BACK' )
shownavbutton = abap_true
)->header_content(
)->link(
text = 'Source_Code' target = '_blank'
href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
)->get_parent(
)->simple_form(
title = 'SE16'
editable = abap_true
columnsm = `1`
columnsl = `1`
columnsxl = `1`
layout = `ResponsiveGridLayout`
)->content( `form` ).
* )->title( ns = `core` text = `Table`
* )->label( 'Name' ).
" lo_view->input( client->_bind( mv_name ) ).
* lo_view->button(
* text = 'search'
* press = client->_event( 'BUTTON_TABLE' )
* ).
* lo_view = lo_view->get_parent( )->get_parent( )->simple_form( title = 'cols' editable = abap_true
* )->content( 'form' ).
lo_view->title( ns = `core` text = 'Filter' ).
lo_view->button(
text = 'filter'
press = client->_event( 'POPUP_FILTER' )
).
LOOP AT mt_filter REFERENCE INTO DATA(lr_col)
WHERE selkz = abap_true.
lo_view->label( lr_col->name ).
lo_view->input( lr_col->value ).
ENDLOOP.
* lo_view->button(
* text = 'search'
* press = client->_event( 'BUTTON_POST' )
* ).
* IF mt_table IS not INITIAL.
SELECT FROM z2ui5_t_draft
FIELDS *
INTO CORRESPONDING FIELDS OF TABLE @mt_table
UP TO 5 ROWS.
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
ASSIGN mt_table TO <tab>.
* DATA(tab) = lo_view->get_parent( )->get_parent( )->simple_form( title = 'Table' editable = abap_true
* )->content( 'form' )->table(
* items = client->_bind( val = <tab> ) " check_gen_data = abap_true )
* ).
data(tab) = lo_view->title( ns = `core` text = 'Content - Tablename' )->table(
items = client->_bind( val = <tab> )
).
tab->header_toolbar(
)->overflow_toolbar(
" )->title( 'title of the table'
)->toolbar_spacer(
)->button(
icon = 'sap-icon://action-settings'
press = client->_event( 'BUTTON_SETUP' )
).
DATA(lo_columns) = tab->columns( ).
LOOP AT mt_cols REFERENCE INTO DATA(lr_field)
where selkz = abap_true.
lo_columns->column( width = lr_field->length )->button( text = lr_field->name ).
ENDLOOP.
DATA(lo_cells) = tab->items( )->column_list_item( )->cells( ).
LOOP AT mt_cols REFERENCE INTO lr_field
where selkz = abap_true.
lo_cells->input( `{` && lr_field->name && `}` ).
ENDLOOP.
*
* ENDIF.
app-next-xml_main = lo_view->get_root( )->xml_get( ).
app-next-xml_popup = lo_popup->get_root( )->xml_get( ). app-next-xml_popup = lo_popup->get_root( )->xml_get( ).
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_download_csv.
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(lv_row) = ``.
LOOP AT lt_components INTO DATA(lv_name).
lv_row = lv_row && lv_name-name && `;`.
ENDLOOP.
lv_row = lv_row && cl_abap_char_utilities=>cr_lf.
LOOP AT ms_view-t_tab REFERENCE INTO DATA(lr_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.
lv_row = lv_row && `;`.
ENDDO.
lv_row = lv_row && cl_abap_char_utilities=>cr_lf.
ENDLOOP.
data(lv_bas64enc) = cl_web_http_utility=>encode_base64( lv_row ).
i_view->zz_plain( `<html:iframe src="data:text/csv;base64,` && lv_bas64enc && `" hidden="hidden" />`).
mv_check_download_csv = abap_false.
ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -5,7 +5,7 @@
<VSEOCLASS> <VSEOCLASS>
<CLSNAME>Z2UI5_CL_APP_DEMO_49</CLSNAME> <CLSNAME>Z2UI5_CL_APP_DEMO_49</CLSNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>more - FE table</DESCRIPT> <DESCRIPT>demo - list report</DESCRIPT>
<STATE>1</STATE> <STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL> <CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT> <FIXPT>X</FIXPT>

View File

@ -58,6 +58,7 @@ CLASS z2ui5_cl_xml_view DEFINITION
METHODS Dynamic_Page METHODS Dynamic_Page
IMPORTING IMPORTING
headerExpanded TYPE clike OPTIONAL headerExpanded TYPE clike OPTIONAL
headerPinned TYPE clike OPTIONAL
toggleHeaderOnTitleClick TYPE clike OPTIONAL toggleHeaderOnTitleClick TYPE clike OPTIONAL
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view. VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
@ -125,6 +126,7 @@ CLASS z2ui5_cl_xml_view DEFINITION
mode TYPE clike OPTIONAL mode TYPE clike OPTIONAL
width TYPE clike OPTIONAL width TYPE clike OPTIONAL
selectionchange TYPE clike OPTIONAL selectionchange TYPE clike OPTIONAL
alternateRowColors TYPE clike OPTIONAL
PREFERRED PARAMETER items PREFERRED PARAMETER items
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view. VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
@ -203,6 +205,8 @@ CLASS z2ui5_cl_xml_view DEFINITION
VALUE(result) TYPE REF TO z2ui5_cl_xml_view. VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
METHODS header METHODS header
importing
ns type clike default `f`
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view. VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
@ -343,6 +347,7 @@ CLASS z2ui5_cl_xml_view DEFINITION
stretch TYPE clike OPTIONAL stretch TYPE clike OPTIONAL
contentheight TYPE clike OPTIONAL contentheight TYPE clike OPTIONAL
contentwidth TYPE clike OPTIONAL contentwidth TYPE clike OPTIONAL
resizable TYPE clike OPTIONAL
PREFERRED PARAMETER title PREFERRED PARAMETER title
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view. VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
@ -470,6 +475,8 @@ CLASS z2ui5_cl_xml_view DEFINITION
IMPORTING IMPORTING
valign TYPE clike OPTIONAL valign TYPE clike OPTIONAL
selected TYPE clike OPTIONAL selected TYPE clike OPTIONAL
type TYPE clike OPTIONAL
press TYPE clike OPTIONAL
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view. VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
@ -477,6 +484,26 @@ CLASS z2ui5_cl_xml_view DEFINITION
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view. VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
METHODS bar
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
METHODS content_left
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
METHODS content_middle
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
METHODS content_right
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
METHODS custom_header
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
METHODS header_content METHODS header_content
IMPORTING IMPORTING
ns TYPE clike OPTIONAL ns TYPE clike OPTIONAL
@ -523,6 +550,17 @@ CLASS z2ui5_cl_xml_view DEFINITION
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view. VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
METHODS search_field
IMPORTING
search TYPE clike OPTIONAL
width TYPE clike OPTIONAL
value TYPE clike OPTIONAL
id TYPE clike OPTIONAL
change TYPE clike OPTIONAL
liveChange TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
METHODS message_view METHODS message_view
IMPORTING IMPORTING
items TYPE clike OPTIONAL items TYPE clike OPTIONAL
@ -613,6 +651,7 @@ CLASS z2ui5_cl_xml_view DEFINITION
ns TYPE clike OPTIONAL ns TYPE clike OPTIONAL
text TYPE clike OPTIONAL text TYPE clike OPTIONAL
wrapping TYPE clike OPTIONAL wrapping TYPE clike OPTIONAL
level type clike optional
PREFERRED PARAMETER text PREFERRED PARAMETER text
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view. VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
@ -652,6 +691,8 @@ CLASS z2ui5_cl_xml_view DEFINITION
METHODS label METHODS label
IMPORTING IMPORTING
text TYPE clike OPTIONAL text TYPE clike OPTIONAL
labelfor TYPE clike OPTIONAL
PREFERRED PARAMETER text
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view. VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
@ -700,7 +741,17 @@ CLASS z2ui5_cl_xml_view DEFINITION
headertext TYPE clike OPTIONAL headertext TYPE clike OPTIONAL
items TYPE clike OPTIONAL items TYPE clike OPTIONAL
mode TYPE clike OPTIONAL mode TYPE clike OPTIONAL
selectionChange type clike optional selectionChange TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
METHODS custom_list_item
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
METHODS input_list_item
IMPORTING
label TYPE clike OPTIONAL
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view. VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
@ -859,6 +910,10 @@ CLASS z2ui5_cl_xml_view DEFINITION
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view. VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
METHODS toolbar
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
METHODS text METHODS text
IMPORTING IMPORTING
text TYPE clike OPTIONAL text TYPE clike OPTIONAL
@ -882,7 +937,7 @@ CLASS z2ui5_cl_xml_view DEFINITION
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view. VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
METHODS zz_file_uploader METHODS cc_file_uploader
IMPORTING IMPORTING
value TYPE clike OPTIONAL value TYPE clike OPTIONAL
path TYPE clike OPTIONAL path TYPE clike OPTIONAL
@ -891,6 +946,10 @@ CLASS z2ui5_cl_xml_view DEFINITION
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view. VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
class-METHODS cc_file_uploader_get_js
RETURNING
VALUE(result) TYPE string.
METHODS xml_get METHODS xml_get
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
@ -951,7 +1010,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
result = _generic( result = _generic(
name = `header` name = `header`
ns = `f` ns = ns
). ).
ENDMETHOD. ENDMETHOD.
@ -1110,6 +1169,8 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
name = `ColumnListItem` name = `ColumnListItem`
t_prop = VALUE #( ( n = `vAlign` v = valign ) t_prop = VALUE #( ( n = `vAlign` v = valign )
( n = `selected` v = selected ) ( n = `selected` v = selected )
( n = `type` v = type )
( n = `press` v = press )
) ). ) ).
ENDMETHOD. ENDMETHOD.
@ -1182,6 +1243,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
( n = `showHeader` v = showheader ) ( n = `showHeader` v = showheader )
( n = `contentWidth` v = contentwidth ) ( n = `contentWidth` v = contentwidth )
( n = `contentHeight` v = contentheight ) ( n = `contentHeight` v = contentheight )
( n = `resizable` v = lcl_utility=>get_json_boolean( resizable ) )
) ). ) ).
ENDMETHOD. ENDMETHOD.
@ -1338,6 +1400,45 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD bar.
result = _generic(
name = `Bar`
).
ENDMETHOD.
METHOD content_left.
result = _generic(
name = `contentLeft`
).
ENDMETHOD.
METHOD content_middle.
result = _generic(
name = `contentMiddle`
).
ENDMETHOD.
METHOD content_right.
result = _generic(
name = `contentRight`
).
ENDMETHOD.
METHOD custom_Header.
result = _generic(
name = `customHeader`
).
ENDMETHOD.
METHOD header_content. METHOD header_content.
@ -1358,6 +1459,11 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD toolbar.
result = _generic( `Toolbar` ).
ENDMETHOD.
METHOD header_toolbar. METHOD header_toolbar.
@ -1554,6 +1660,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
name = `Label` name = `Label`
t_prop = VALUE #( t_prop = VALUE #(
( n = `text` v = text ) ( n = `text` v = text )
( n = `labelFor` v = labelfor )
) ). ) ).
ENDMETHOD. ENDMETHOD.
@ -1951,6 +2058,25 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD custom_list_item.
result = _generic(
name = `CustomListItem`
).
ENDMETHOD.
METHOD input_list_item.
result = _generic(
name = `InputListItem`
t_prop = VALUE #(
( n = `label` v = label )
) ).
ENDMETHOD.
METHOD standard_list_item. METHOD standard_list_item.
result = me. result = me.
@ -2052,6 +2178,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
( n = `mode` v = mode ) ( n = `mode` v = mode )
( n = `width` v = width ) ( n = `width` v = width )
( n = `selectionChange` v = selectionchange ) ( n = `selectionChange` v = selectionchange )
( n = `alternateRowColors` v = lcl_utility=>get_json_boolean( alternateRowColors ) )
) ). ) ).
ENDMETHOD. ENDMETHOD.
@ -2123,6 +2250,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
t_prop = VALUE #( t_prop = VALUE #(
( n = `text` v = text ) ( n = `text` v = text )
( n = `wrapping` v = lcl_utility=>get_json_boolean( wrapping ) ) ( n = `wrapping` v = lcl_utility=>get_json_boolean( wrapping ) )
( n = `level` v = level )
) ). ) ).
ENDMETHOD. ENDMETHOD.
@ -2234,7 +2362,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD zz_file_uploader. METHOD cc_file_uploader.
result = me. result = me.
_generic( _generic(
@ -2271,6 +2399,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
ns = `f` ns = `f`
t_prop = VALUE #( t_prop = VALUE #(
( n = `headerExpanded` v = lcl_utility=>get_json_boolean( headerexpanded ) ) ( n = `headerExpanded` v = lcl_utility=>get_json_boolean( headerexpanded ) )
( n = `headerPinned` v = lcl_utility=>get_json_boolean( headerPinned ) )
( n = `toggleHeaderOnTitleClick` v = toggleHeaderOnTitleClick ) ( n = `toggleHeaderOnTitleClick` v = toggleHeaderOnTitleClick )
) ). ) ).
@ -2396,6 +2525,22 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD search_field.
result = me.
_generic(
name = `SearchField`
t_prop = VALUE #(
( n = `width` v = width )
( n = `search` v = search )
( n = `value` v = value )
( n = `id` v = id )
( n = `change` v = change )
( n = `liveChange` v = liveChange )
) ).
ENDMETHOD.
METHOD message_view. METHOD message_view.
result = _generic( result = _generic(
@ -2414,4 +2559,115 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD cc_file_uploader_get_js.
result = ` jQuery.sap.declare("z2ui5.FileUploader");` && |\n| &&
|\n| &&
` sap.ui.define([` && |\n| &&
` "sap/ui/core/Control",` && |\n| &&
` "sap/m/Button",` && |\n| &&
` "sap/ui/unified/FileUploader"` && |\n| &&
` ], function (Control, Button, FileUploader) {` && |\n| &&
` "use strict";` && |\n| &&
|\n| &&
` return Control.extend("z2ui5.FileUploader", {` && |\n| &&
|\n| &&
` metadata: {` && |\n| &&
` properties: {` && |\n| &&
` value: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` path: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` tooltip: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` fileType: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` placeholder: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: ""` && |\n| &&
` },` && |\n| &&
` buttonText: {` && |\n| &&
` type: "string",` && |\n| &&
` defaultValue: "Upload"` && |\n| &&
` },` && |\n| &&
` enabled: {` && |\n| &&
` type: "boolean",` && |\n| &&
` defaultValue: true` && |\n| &&
` },` && |\n| &&
` multiple: {` && |\n| &&
` type: "boolean",` && |\n| &&
` defaultValue: false` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
|\n| &&
|\n| &&
` aggregations: {` && |\n| &&
` },` && |\n| &&
` events: {` && |\n| &&
` "upload": {` && |\n| &&
` allowPreventDefault: true,` && |\n| &&
` parameters: {}` && |\n| &&
` }` && |\n| &&
` },` && |\n| &&
` renderer: null` && |\n| &&
` },` && |\n| &&
|\n| &&
` renderer: function (oRm, oControl) {` && |\n| &&
|\n| &&
` oControl.oUploadButton = new Button({` && |\n| &&
` text: oControl.getProperty("buttonText"),` && |\n| &&
` enabled: oControl.getProperty("path") !== "",` && |\n| &&
` press: function (oEvent) {` && |\n| &&
|\n| &&
` this.setProperty("path", this.oFileUploader.getProperty("value"));` && |\n| &&
|\n| &&
` var file = this.oFileUploader.oFileUpload.files[0];` && |\n| &&
` var reader = new FileReader();` && |\n| &&
|\n| &&
` reader.onload = function (evt) {` && |\n| &&
` var vContent = evt.currentTarget.result;` && |\n| &&
` this.setProperty("value", vContent);` && |\n| &&
` this.fireUpload();` && |\n| &&
` //this.getView().byId('picture' ).getDomRef().src = vContent;` && |\n| &&
` }.bind(this)` && |\n| &&
|\n| &&
` reader.readAsDataURL(file);` && |\n| &&
` }.bind(oControl)` && |\n| &&
` });` && |\n| &&
|\n| &&
` oControl.oFileUploader = new FileUploader({` && |\n| &&
` icon: "sap-icon://browse-folder",` && |\n| &&
` iconOnly: true,` && |\n| &&
` value: oControl.getProperty("path"),` && |\n| &&
` placeholder: oControl.getProperty("placeholder"),` && |\n| &&
` change: function (oEvent) {` && |\n| &&
` var value = oEvent.getSource().getProperty("value");` && |\n| &&
` this.setProperty("path", value);` && |\n| &&
` if (value) {` && |\n| &&
` this.oUploadButton.setEnabled();` && |\n| &&
` } else {` && |\n| &&
` this.oUploadButton.setEnabled(false);` && |\n| &&
` }` && |\n| &&
` this.oUploadButton.rerender();` && |\n| &&
` }.bind(oControl)` && |\n| &&
` });` && |\n| &&
|\n| &&
` var hbox = new sap.m.HBox();` && |\n| &&
` hbox.addItem(oControl.oFileUploader);` && |\n| &&
` hbox.addItem(oControl.oUploadButton);` && |\n| &&
` oRm.renderControl(hbox);` && |\n| &&
` }` && |\n| &&
` });` && |\n| &&
` });`.
ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1363,13 +1363,13 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
json = `"` && <val> && `"` json = `"` && <val> && `"`
CHANGING CHANGING
data = <attribute> ). data = <attribute> ).
WHEN 'C'. " WHEN 'C'.
CASE lr_attri->type. " CASE lr_attri->type.
WHEN `ABAP_BOOL` OR `ABAP_BOOLEAN` OR `XSDBOOLEAN`. " WHEN `ABAP_BOOL` OR `ABAP_BOOLEAN` OR `XSDBOOLEAN`.
<attribute> = xsdbool( <val> = `true` ). " <attribute> = xsdbool( <val> = `true` ).
WHEN OTHERS. " WHEN OTHERS.
<attribute> = <val>. " <attribute> = <val>.
ENDCASE. "° ENDCASE.
WHEN OTHERS. WHEN OTHERS.
<attribute> = <val>. <attribute> = <val>.
ENDCASE. ENDCASE.
@ -1522,7 +1522,7 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
ENDLOOP. ENDLOOP.
IF type = cs_bind_type-two_way. IF type = cs_bind_type-two_way.
z2ui5_lcl_utility=>raise( `Binding Error - two way binding used but no attribute found (` && lr_attri->name && `)` ). z2ui5_lcl_utility=>raise( `Binding Error - two way binding used but no attribute found` ).
ENDIF. ENDIF.
"one time when not global class attribute "one time when not global class attribute