mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 02:58:20 +08:00
Demos (#217)
* demos * demos * demos * demos * demos * demos * demos * demos * demos
This commit is contained in:
parent
12493b53fd
commit
8309642e55
|
@ -113,12 +113,13 @@ CLASS Z2UI5_CL_APP_DEMO_00 IMPLEMENTATION.
|
|||
|
||||
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 = 'Integer and Decimals' press = client->_event( 'z2ui5_cl_app_demo_47' )
|
||||
)->button( text = 'FE Table' press = client->_event( 'z2ui5_cl_app_demo_49' )
|
||||
)->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' )
|
||||
).
|
||||
|
||||
grid->simple_form( title = 'HowTo - More II' layout = 'ResponsiveGridLayout' )->content( 'form'
|
||||
)->button( text = 'Change CSS' press = client->_event( 'z2ui5_cl_app_demo_50' )
|
||||
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 Model at Runtime' press = client->_event( 'z2ui5_cl_app_demo_35' )
|
||||
).
|
||||
|
||||
DATA(form) = page->grid( 'L9 M12 S12'
|
||||
|
@ -201,7 +202,22 @@ CLASS Z2UI5_CL_APP_DEMO_00 IMPLEMENTATION.
|
|||
growfactor = '1'
|
||||
styleclass = 'sapUiTinyMargin'
|
||||
)->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(
|
||||
)->flex_item_data(
|
||||
growfactor = '3'
|
||||
|
|
|
@ -51,10 +51,6 @@ CLASS z2ui5_cl_app_demo_07 DEFINITION PUBLIC.
|
|||
RETURNING
|
||||
VALUE(r_result) TYPE string.
|
||||
|
||||
METHODS ui5_get_ccontrol_file_upload
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -62,118 +58,6 @@ ENDCLASS.
|
|||
|
||||
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.
|
||||
|
||||
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.'
|
||||
)->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( ).
|
||||
|
@ -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( ) )
|
||||
)->get_parent( ).
|
||||
|
||||
page->zz_file_uploader(
|
||||
page->cc_file_uploader(
|
||||
value = client->_bind( mv_value )
|
||||
path = client->_bind( mv_path )
|
||||
placeholder = 'filepath here...'
|
||||
|
|
|
@ -7,7 +7,6 @@ CLASS z2ui5_cl_app_demo_35 DEFINITION PUBLIC.
|
|||
DATA mt_table TYPE REF TO data.
|
||||
DATA mt_cols TYPE string_table.
|
||||
DATA mv_name TYPE string.
|
||||
DATA mv_input TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
|
@ -21,7 +20,6 @@ CLASS z2ui5_cl_app_demo_35 DEFINITION PUBLIC.
|
|||
next TYPE z2ui5_if_client=>ty_s_next,
|
||||
END OF app.
|
||||
|
||||
|
||||
METHODS z2ui5_on_init.
|
||||
METHODS z2ui5_on_event.
|
||||
METHODS z2ui5_on_render.
|
||||
|
@ -116,7 +114,7 @@ CLASS z2ui5_cl_app_demo_35 IMPLEMENTATION.
|
|||
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
|
||||
)->simple_form( editable = abap_true
|
||||
)->content( `form`
|
||||
)->title( 'Table'
|
||||
)->label( 'Name' ).
|
||||
|
@ -124,19 +122,7 @@ CLASS z2ui5_cl_app_demo_35 IMPLEMENTATION.
|
|||
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' ).
|
||||
|
||||
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'
|
||||
text = 'read'
|
||||
press = client->_event( 'BUTTON_POST' )
|
||||
).
|
||||
|
||||
|
@ -144,14 +130,14 @@ CLASS z2ui5_cl_app_demo_35 IMPLEMENTATION.
|
|||
|
||||
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
|
||||
DATA(tab) = lo_view->get_parent( )->get_parent( )->simple_form( editable = abap_true
|
||||
)->content( 'form' )->table(
|
||||
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( ).
|
||||
mt_cols = lcl_db=>get_fieldlist_by_table( <tab> ).
|
||||
|
||||
LOOP AT mt_cols INTO DATA(lv_field) FROM 2.
|
||||
lo_columns->column( )->text( lv_field ).
|
||||
ENDLOOP.
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<VSEOCLASS>
|
||||
<CLSNAME>Z2UI5_CL_APP_DEMO_35</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>test - table maintenance 2</DESCRIPT>
|
||||
<DESCRIPT>more - dynamic model</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
|
|
|
@ -12,7 +12,6 @@ CLASS z2ui5_cl_app_demo_47 DEFINITION PUBLIC.
|
|||
DATA dec2 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 time TYPE t.
|
||||
|
||||
|
@ -74,8 +73,6 @@ CLASS z2ui5_cl_app_demo_47 IMPLEMENTATION.
|
|||
)->input( client->_bind( date )
|
||||
)->label( 'time'
|
||||
)->input( client->_bind( time )
|
||||
)->label( 'boolean'
|
||||
)->input( client->_bind( boolean )
|
||||
)->get_root( )->xml_get( ) ) ).
|
||||
|
||||
|
||||
|
|
|
@ -4,12 +4,47 @@ CLASS z2ui5_cl_app_demo_49 DEFINITION PUBLIC.
|
|||
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
" DATA mt_table TYPE REF TO data.
|
||||
DATA mt_table TYPE STANDARD TABLE OF z2ui5_t_draft.
|
||||
" DATA mt_cols TYPE string_table.
|
||||
data mv_check_columns type abap_bool.
|
||||
data mv_check_sort type abap_bool.
|
||||
data mv_check_group type abap_bool.
|
||||
DATA ms_detail TYPE z2ui5_t_draft.
|
||||
DATA mv_check_columns TYPE abap_bool.
|
||||
DATA mv_check_sort 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:
|
||||
BEGIN OF ty_S_filter,
|
||||
selkz TYPE abap_bool,
|
||||
|
@ -17,19 +52,46 @@ CLASS z2ui5_cl_app_demo_49 DEFINITION PUBLIC.
|
|||
value TYPE string,
|
||||
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:
|
||||
BEGIN OF ty_S_cols,
|
||||
selkz TYPE abap_bool,
|
||||
name TYPE string,
|
||||
length TYPE string,
|
||||
END OF ty_S_cols.
|
||||
BEGIN OF ty_S_sort,
|
||||
" selkz TYPE abap_bool,
|
||||
name TYPE string,
|
||||
type TYPE string,
|
||||
" 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 mv_input TYPE string.
|
||||
data:
|
||||
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.
|
||||
|
||||
|
@ -47,8 +109,15 @@ CLASS z2ui5_cl_app_demo_49 DEFINITION PUBLIC.
|
|||
METHODS z2ui5_on_init.
|
||||
METHODS z2ui5_on_event.
|
||||
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.
|
||||
|
||||
|
||||
|
@ -85,19 +154,65 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
|||
|
||||
CASE app-get-event.
|
||||
|
||||
WHEN 'BUTTON_TABLE'.
|
||||
* FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||
* CREATE DATA mt_table TYPE STANDARD TABLE OF (mv_name).
|
||||
* ASSIGN mt_table->* TO <tab>.
|
||||
WHEN 'BUTTON_DELETE'.
|
||||
DELETE ms_view-t_tab WHERE selkz = abap_true.
|
||||
|
||||
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'.
|
||||
|
||||
* 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
|
||||
FIELDS *
|
||||
INTO CORRESPONDING FIELDS OF TABLE @mt_table
|
||||
|
@ -113,6 +228,9 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
|||
WHEN 'POPUP_FILTER_CONTINUE'.
|
||||
" app-view_popup = 'POPUP_FILTER'.
|
||||
|
||||
WHEN 'BUTTON_INIT'.
|
||||
init_table_output( ).
|
||||
|
||||
WHEN 'BUTTON_CANCEL'.
|
||||
client->popup_message_toast( |cancel| ).
|
||||
app-view_popup = ''.
|
||||
|
@ -127,204 +245,469 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION.
|
|||
|
||||
METHOD z2ui5_on_init.
|
||||
|
||||
app-view_main = 'VIEW_MAIN'.
|
||||
" mv_name = `Z2UI5_T_DRAFT`.
|
||||
app-view_main = 'MAIN'.
|
||||
init_table_output( ).
|
||||
|
||||
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 mt_filter.
|
||||
|
||||
INSERT VALUE #(
|
||||
selkz = abap_true
|
||||
name = lr_col->*
|
||||
length = `10px`
|
||||
) INTO TABLE mt_cols.
|
||||
|
||||
ENDLOOP.
|
||||
ms_layout-s_table-selmode = 'MultiSelect'.
|
||||
ms_layout-s_table-check_zebra = abap_true.
|
||||
ms_view-t_tab = CORRESPONDING #( mt_table ).
|
||||
ms_layout-s_table-sticky_header = `HeaderToolbar,InfoToolbar,ColumnHeaders`.
|
||||
ms_layout-s_table-title = `Drafts`.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_on_render.
|
||||
|
||||
DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
|
||||
CASE app-view_popup.
|
||||
|
||||
WHEN `POPUP_FILTER`.
|
||||
|
||||
lo_popup->dialog( 'abap2UI5 - Popup to select entry'
|
||||
)->table(
|
||||
mode = 'MultiSelect'
|
||||
items = client->_bind( mt_filter )
|
||||
)->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(
|
||||
)->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
)->button(
|
||||
text = 'continue'
|
||||
press = client->_event( 'POPUP_FILTER_CONTINUE' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
z2ui5_on_render_pop_filter( ).
|
||||
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' ).
|
||||
|
||||
z2ui5_on_render_pop_setup( ).
|
||||
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' ).
|
||||
CASE app-view_main.
|
||||
WHEN 'MAIN'.
|
||||
z2ui5_on_render_main( ).
|
||||
WHEN 'DETAIL'.
|
||||
z2ui5_on_render_detail( ).
|
||||
ENDCASE.
|
||||
|
||||
" lo_view->input( client->_bind( mv_name ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
* lo_view->button(
|
||||
* text = 'search'
|
||||
* press = client->_event( 'BUTTON_TABLE' )
|
||||
* ).
|
||||
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.
|
||||
|
||||
* lo_view = lo_view->get_parent( )->get_parent( )->simple_form( title = 'cols' editable = abap_true
|
||||
* )->content( 'form' ).
|
||||
INSERT VALUE #(
|
||||
visible = abap_true
|
||||
name = lr_col->*
|
||||
" length = `10px`
|
||||
title = lr_col->*
|
||||
) INTO TABLE mt_cols.
|
||||
|
||||
lo_view->title( ns = `core` text = 'Filter' ).
|
||||
INSERT VALUE #(
|
||||
" selkz = abap_true
|
||||
name = lr_col->*
|
||||
" length = `10px`
|
||||
) INTO TABLE mt_sort.
|
||||
|
||||
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.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
SELECT FROM z2ui5_t_draft
|
||||
FIELDS *
|
||||
INTO CORRESPONDING FIELDS OF TABLE @mt_table
|
||||
UP TO 5 ROWS.
|
||||
METHOD z2ui5_on_render_main.
|
||||
|
||||
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(view) = z2ui5_cl_xml_view=>factory( )->shell( ).
|
||||
|
||||
data(tab) = lo_view->title( ns = `core` text = 'Content - Tablename' )->table(
|
||||
items = client->_bind( val = <tab> )
|
||||
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' )
|
||||
).
|
||||
|
||||
tab->header_toolbar(
|
||||
)->overflow_toolbar(
|
||||
" )->title( 'title of the table'
|
||||
|
||||
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'
|
||||
)->table(
|
||||
mode = 'MultiSelect'
|
||||
items = client->_bind( ms_layout-t_filter )
|
||||
)->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(
|
||||
)->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
)->button(
|
||||
icon = 'sap-icon://action-settings'
|
||||
press = client->_event( 'BUTTON_SETUP' )
|
||||
).
|
||||
text = 'continue'
|
||||
press = client->_event( 'POPUP_FILTER_CONTINUE' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
|
||||
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( ).
|
||||
|
||||
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.
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<VSEOCLASS>
|
||||
<CLSNAME>Z2UI5_CL_APP_DEMO_49</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>more - FE table</DESCRIPT>
|
||||
<DESCRIPT>demo - list report</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
|
|
|
@ -58,6 +58,7 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
|||
METHODS Dynamic_Page
|
||||
IMPORTING
|
||||
headerExpanded TYPE clike OPTIONAL
|
||||
headerPinned TYPE clike OPTIONAL
|
||||
toggleHeaderOnTitleClick TYPE clike OPTIONAL
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
|
||||
|
@ -125,6 +126,7 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
|||
mode TYPE clike OPTIONAL
|
||||
width TYPE clike OPTIONAL
|
||||
selectionchange TYPE clike OPTIONAL
|
||||
alternateRowColors TYPE clike OPTIONAL
|
||||
PREFERRED PARAMETER items
|
||||
RETURNING
|
||||
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.
|
||||
|
||||
METHODS header
|
||||
importing
|
||||
ns type clike default `f`
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
|
||||
|
||||
|
@ -343,6 +347,7 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
|||
stretch TYPE clike OPTIONAL
|
||||
contentheight TYPE clike OPTIONAL
|
||||
contentwidth TYPE clike OPTIONAL
|
||||
resizable TYPE clike OPTIONAL
|
||||
PREFERRED PARAMETER title
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
|
||||
|
@ -470,6 +475,8 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
|||
IMPORTING
|
||||
valign TYPE clike OPTIONAL
|
||||
selected TYPE clike OPTIONAL
|
||||
type TYPE clike OPTIONAL
|
||||
press TYPE clike OPTIONAL
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
|
||||
|
||||
|
@ -477,6 +484,26 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
|||
RETURNING
|
||||
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
|
||||
IMPORTING
|
||||
ns TYPE clike OPTIONAL
|
||||
|
@ -523,6 +550,17 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
|||
RETURNING
|
||||
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
|
||||
IMPORTING
|
||||
items TYPE clike OPTIONAL
|
||||
|
@ -586,12 +624,12 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
|||
|
||||
METHODS simple_form
|
||||
IMPORTING
|
||||
title TYPE clike OPTIONAL
|
||||
layout TYPE clike OPTIONAL
|
||||
editable TYPE clike OPTIONAL
|
||||
columnsXL TYPE clike OPTIONAL
|
||||
columnsL TYPE clike OPTIONAL
|
||||
columnsM TYPE clike OPTIONAL
|
||||
title TYPE clike OPTIONAL
|
||||
layout TYPE clike OPTIONAL
|
||||
editable TYPE clike OPTIONAL
|
||||
columnsXL TYPE clike OPTIONAL
|
||||
columnsL TYPE clike OPTIONAL
|
||||
columnsM TYPE clike OPTIONAL
|
||||
PREFERRED PARAMETER title
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
|
||||
|
@ -613,6 +651,7 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
|||
ns TYPE clike OPTIONAL
|
||||
text TYPE clike OPTIONAL
|
||||
wrapping TYPE clike OPTIONAL
|
||||
level type clike optional
|
||||
PREFERRED PARAMETER text
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
|
||||
|
@ -652,6 +691,8 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
|||
METHODS label
|
||||
IMPORTING
|
||||
text TYPE clike OPTIONAL
|
||||
labelfor TYPE clike OPTIONAL
|
||||
PREFERRED PARAMETER text
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
|
||||
|
||||
|
@ -700,9 +741,19 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
|||
headertext TYPE clike OPTIONAL
|
||||
items 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.
|
||||
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
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
|
||||
|
||||
METHODS standard_list_item
|
||||
IMPORTING
|
||||
|
@ -859,6 +910,10 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
|||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
|
||||
|
||||
METHODS toolbar
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
|
||||
|
||||
METHODS text
|
||||
IMPORTING
|
||||
text TYPE clike OPTIONAL
|
||||
|
@ -882,7 +937,7 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
|||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
|
||||
|
||||
METHODS zz_file_uploader
|
||||
METHODS cc_file_uploader
|
||||
IMPORTING
|
||||
value TYPE clike OPTIONAL
|
||||
path TYPE clike OPTIONAL
|
||||
|
@ -891,6 +946,10 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
|||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
|
||||
|
||||
class-METHODS cc_file_uploader_get_js
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS xml_get
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
@ -951,7 +1010,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
|
|||
|
||||
result = _generic(
|
||||
name = `header`
|
||||
ns = `f`
|
||||
ns = ns
|
||||
).
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -1110,6 +1169,8 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
|
|||
name = `ColumnListItem`
|
||||
t_prop = VALUE #( ( n = `vAlign` v = valign )
|
||||
( n = `selected` v = selected )
|
||||
( n = `type` v = type )
|
||||
( n = `press` v = press )
|
||||
) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -1182,6 +1243,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
|
|||
( n = `showHeader` v = showheader )
|
||||
( n = `contentWidth` v = contentwidth )
|
||||
( n = `contentHeight` v = contentheight )
|
||||
( n = `resizable` v = lcl_utility=>get_json_boolean( resizable ) )
|
||||
) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -1338,6 +1400,45 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
|
|||
|
||||
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.
|
||||
|
||||
|
@ -1358,6 +1459,11 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD toolbar.
|
||||
|
||||
result = _generic( `Toolbar` ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD header_toolbar.
|
||||
|
||||
|
@ -1554,6 +1660,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
|
|||
name = `Label`
|
||||
t_prop = VALUE #(
|
||||
( n = `text` v = text )
|
||||
( n = `labelFor` v = labelfor )
|
||||
) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -1951,6 +2058,25 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
|
|||
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.
|
||||
|
||||
result = me.
|
||||
|
@ -2052,6 +2178,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
|
|||
( n = `mode` v = mode )
|
||||
( n = `width` v = width )
|
||||
( n = `selectionChange` v = selectionchange )
|
||||
( n = `alternateRowColors` v = lcl_utility=>get_json_boolean( alternateRowColors ) )
|
||||
) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -2123,6 +2250,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
|
|||
t_prop = VALUE #(
|
||||
( n = `text` v = text )
|
||||
( n = `wrapping` v = lcl_utility=>get_json_boolean( wrapping ) )
|
||||
( n = `level` v = level )
|
||||
) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -2234,7 +2362,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zz_file_uploader.
|
||||
METHOD cc_file_uploader.
|
||||
|
||||
result = me.
|
||||
_generic(
|
||||
|
@ -2271,6 +2399,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
|
|||
ns = `f`
|
||||
t_prop = VALUE #(
|
||||
( n = `headerExpanded` v = lcl_utility=>get_json_boolean( headerexpanded ) )
|
||||
( n = `headerPinned` v = lcl_utility=>get_json_boolean( headerPinned ) )
|
||||
( n = `toggleHeaderOnTitleClick` v = toggleHeaderOnTitleClick )
|
||||
) ).
|
||||
|
||||
|
@ -2396,6 +2525,22 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
|
|||
|
||||
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.
|
||||
|
||||
result = _generic(
|
||||
|
@ -2414,4 +2559,115 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
|
|||
|
||||
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.
|
||||
|
|
|
@ -1363,14 +1363,14 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
|
|||
json = `"` && <val> && `"`
|
||||
CHANGING
|
||||
data = <attribute> ).
|
||||
WHEN 'C'.
|
||||
CASE lr_attri->type.
|
||||
WHEN `ABAP_BOOL` OR `ABAP_BOOLEAN` OR `XSDBOOLEAN`.
|
||||
<attribute> = xsdbool( <val> = `true` ).
|
||||
WHEN OTHERS.
|
||||
<attribute> = <val>.
|
||||
ENDCASE.
|
||||
WHEN OTHERS.
|
||||
" WHEN 'C'.
|
||||
" CASE lr_attri->type.
|
||||
" WHEN `ABAP_BOOL` OR `ABAP_BOOLEAN` OR `XSDBOOLEAN`.
|
||||
" <attribute> = xsdbool( <val> = `true` ).
|
||||
" WHEN OTHERS.
|
||||
" <attribute> = <val>.
|
||||
"° ENDCASE.
|
||||
WHEN OTHERS.
|
||||
<attribute> = <val>.
|
||||
ENDCASE.
|
||||
ENDCASE.
|
||||
|
@ -1522,7 +1522,7 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
|
|||
ENDLOOP.
|
||||
|
||||
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.
|
||||
|
||||
"one time when not global class attribute
|
||||
|
|
Loading…
Reference in New Issue
Block a user