|
| 1 | +CLASS z2ui5_cl_demo_app_319 DEFINITION PUBLIC. |
| 2 | + |
| 3 | + PUBLIC SECTION. |
| 4 | + INTERFACES z2ui5_if_app. |
| 5 | + |
| 6 | + TYPES: |
| 7 | + BEGIN OF t_token, |
| 8 | + key TYPE string, |
| 9 | + text TYPE string, |
| 10 | + END OF t_token, |
| 11 | + t_tokens TYPE STANDARD TABLE OF t_token WITH EMPTY KEY. |
| 12 | + TYPES: |
| 13 | + BEGIN OF t_range, |
| 14 | + exclude TYPE boole_d, |
| 15 | + operation TYPE string, |
| 16 | + value1 TYPE string, |
| 17 | + value2 TYPE string, |
| 18 | + keyField TYPE string, |
| 19 | + END OF t_range, |
| 20 | + t_ranges TYPE STANDARD TABLE OF t_range WITH EMPTY KEY. |
| 21 | + DATA: |
| 22 | + BEGIN OF m_selection, |
| 23 | + BEGIN OF product_type, |
| 24 | + tokens_added TYPE t_tokens, |
| 25 | + tokens_removed TYPE t_tokens, |
| 26 | + ranges TYPE t_ranges, |
| 27 | + END OF product_type, |
| 28 | + END OF m_selection. |
| 29 | + PROTECTED SECTION. |
| 30 | + DATA m_client TYPE REF TO z2ui5_if_client. |
| 31 | + METHODS on_init. |
| 32 | + METHODS on_event. |
| 33 | +ENDCLASS. |
| 34 | + |
| 35 | +CLASS z2ui5_cl_demo_app_319 IMPLEMENTATION. |
| 36 | + |
| 37 | + METHOD z2ui5_if_app~main. |
| 38 | + |
| 39 | + m_client = client. |
| 40 | + |
| 41 | + IF m_client->check_on_init( ). |
| 42 | + on_init( ). |
| 43 | + RETURN. |
| 44 | + ENDIF. |
| 45 | + |
| 46 | + on_event( ). |
| 47 | + |
| 48 | + ENDMETHOD. |
| 49 | + |
| 50 | + METHOD on_init. |
| 51 | + |
| 52 | + DATA(l_view) = z2ui5_cl_xml_view=>factory( ). |
| 53 | + |
| 54 | + DATA(l_page) = l_view->shell( appwidthlimited = 'false' )->page( |
| 55 | + id = 'SearchPage' |
| 56 | + title = TEXT-001 |
| 57 | + shownavbutton = abap_false |
| 58 | + showheader = abap_true ). |
| 59 | + |
| 60 | + l_page->_z2ui5( )->smartmultiinput_ext( |
| 61 | + addedtokens = m_client->_bind_edit( val = m_selection-product_type-tokens_added switch_default_model = abap_true ) |
| 62 | + removedtokens = m_client->_bind_edit( val = m_selection-product_type-tokens_removed switch_default_model = abap_true ) |
| 63 | + rangeData = m_client->_bind_edit( val = m_selection-product_type-ranges switch_default_model = abap_true ) |
| 64 | + change = m_client->_event( 'PRODTYPE_CHANGED' ) |
| 65 | + multiinputid = `ProductTypeMultiInput` ). |
| 66 | + |
| 67 | + l_page->smart_multi_input( |
| 68 | + id = 'ProductTypeMultiInput' |
| 69 | + value = '{ProductType}' |
| 70 | + entityset = 'ProductList' |
| 71 | + supportranges = 'true' |
| 72 | + enableodataselect = 'true' ). |
| 73 | + |
| 74 | + m_client->view_display( val = l_page->stringify( ) |
| 75 | + switch_default_model_path = `/sap/opu/odata/sap/UI_PRODUCTLIST` |
| 76 | + switchdefaultmodelannouri = `/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Annotations(TechnicalName='UI_PRODUCTLIST_VAN',Version='0001')/$value` ). |
| 77 | + |
| 78 | + ENDMETHOD. |
| 79 | + |
| 80 | + METHOD on_event. |
| 81 | + |
| 82 | + CASE m_client->get( )-event. |
| 83 | + WHEN 'PRODTYPE_CHANGED'. |
| 84 | + TRY. |
| 85 | + m_client->message_box_display( |
| 86 | + text = z2ui5_cl_ajson=>new( )->set( iv_path = '/' iv_val = m_selection-product_type-ranges )->stringify( ) |
| 87 | + title = 'range content' ). |
| 88 | + CATCH z2ui5_cx_ajson_error INTO DATA(lx_ajson). |
| 89 | + m_client->message_toast_display( lx_ajson->get_text( ) ). |
| 90 | + ENDTRY. |
| 91 | + ENDCASE. |
| 92 | + |
| 93 | + ENDMETHOD. |
| 94 | +ENDCLASS. |
0 commit comments