mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 02:58:20 +08:00
Popups draft handling utility (#802)
* lint check * lint check * Update abaplint.jsonc * Update abaplint.jsonc * Update abaplint.jsonc * Update abaplint.jsonc * popups - draft handling - utility * lint fix * downport test * update * fix popup select * utility extensions * lint fix test * update lint * update * update * update * update * update * Delete src/03/01/z2ui5_cl_popup_to_select.clas.abap * Delete src/03/01/z2ui5_cl_popup_to_select.clas.xml * added class again * popups * popup get range multi + clear function * fix date in table * fix popup model update * update * update * popups * Update abaplint.jsonc * update lint fixes * extended error message by serialization error * update downport fix * update
This commit is contained in:
parent
88b425bf8c
commit
a6be1a95d2
|
@ -152,7 +152,7 @@
|
|||
"msag_consistency": true,
|
||||
"names_no_dash": true,
|
||||
"nesting": {
|
||||
"depth": 5
|
||||
"depth": 7
|
||||
},
|
||||
"newline_between_methods": false,
|
||||
"no_aliases": true,
|
||||
|
|
|
@ -17,6 +17,38 @@ CLASS z2ui5_cl_util_func DEFINITION
|
|||
TYPES ty_t_range TYPE RANGE OF string.
|
||||
TYPES ty_s_range TYPE LINE OF ty_t_range.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_sql_multi,
|
||||
name TYPE string,
|
||||
t_range TYPE ty_t_range,
|
||||
t_token TYPE ty_t_token,
|
||||
END OF ty_s_sql_multi.
|
||||
TYPES ty_t_sql_multi TYPE STANDARD TABLE OF ty_s_sql_multi WITH EMPTY KEY.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_sql_result,
|
||||
table TYPE string,
|
||||
END OF ty_s_sql_result.
|
||||
|
||||
CLASS-METHODS get_source_code_method
|
||||
IMPORTING
|
||||
iv_classname TYPE clike
|
||||
iv_methodname TYPE clike
|
||||
RETURNING
|
||||
VALUE(result) TYPE string_table.
|
||||
|
||||
CLASS-METHODS get_sql_multi_by_data
|
||||
IMPORTING
|
||||
val TYPE data
|
||||
RETURNING
|
||||
VALUE(result) TYPE ty_t_sql_multi.
|
||||
|
||||
CLASS-METHODS get_sql_by_string
|
||||
IMPORTING
|
||||
val TYPE clike
|
||||
RETURNING
|
||||
VALUE(result) TYPE ty_s_sql_result.
|
||||
|
||||
CLASS-METHODS js_load_ext_lib
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
@ -64,7 +96,7 @@ CLASS z2ui5_cl_util_func DEFINITION
|
|||
CLASS-METHODS x_check_raise
|
||||
IMPORTING
|
||||
!v TYPE clike DEFAULT `CX_SY_SUBRC`
|
||||
!when TYPE abap_bool.
|
||||
!when TYPE xfeld.
|
||||
|
||||
CLASS-METHODS x_raise
|
||||
IMPORTING
|
||||
|
@ -260,6 +292,48 @@ CLASS z2ui5_cl_util_func DEFINITION
|
|||
CHANGING
|
||||
tab TYPE STANDARD TABLE.
|
||||
|
||||
CLASS-METHODS decode_x_base64
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE xstring.
|
||||
|
||||
CLASS-METHODS encode_x_base64
|
||||
IMPORTING
|
||||
val TYPE xstring
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_string_by_xstring
|
||||
IMPORTING
|
||||
val TYPE xstring
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_xstring_by_string
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE xstring.
|
||||
|
||||
CLASS-METHODS time_get_time_by_stampl
|
||||
IMPORTING
|
||||
val TYPE timestampl
|
||||
RETURNING
|
||||
VALUE(result) TYPE t.
|
||||
|
||||
CLASS-METHODS time_get_date_by_stampl
|
||||
IMPORTING
|
||||
val TYPE timestampl
|
||||
RETURNING
|
||||
VALUE(result) TYPE d.
|
||||
|
||||
CLASS-METHODS copy_ref_data_to_ref_data
|
||||
IMPORTING
|
||||
from TYPE REF TO data
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO data.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
@ -268,6 +342,133 @@ ENDCLASS.
|
|||
|
||||
CLASS z2ui5_cl_util_func IMPLEMENTATION.
|
||||
|
||||
METHOD decode_x_base64.
|
||||
|
||||
TRY.
|
||||
|
||||
CALL METHOD ('CL_WEB_HTTP_UTILITY')=>('DECODE_X_BASE64')
|
||||
EXPORTING
|
||||
encoded = val
|
||||
RECEIVING
|
||||
decoded = result.
|
||||
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(classname) = 'CL_HTTP_UTILITY'.
|
||||
CALL METHOD (classname)=>('DECODE_X_BASE64')
|
||||
EXPORTING
|
||||
encoded = val
|
||||
RECEIVING
|
||||
decoded = result.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
||||
METHOD get_xstring_by_string.
|
||||
|
||||
DATA conv TYPE REF TO object.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ABAP_CONV_CODEPAGE')=>create_out
|
||||
RECEIVING
|
||||
instance = conv.
|
||||
|
||||
CALL METHOD conv->('IF_ABAP_CONV_OUT~CONVERT')
|
||||
EXPORTING
|
||||
source = val
|
||||
RECEIVING
|
||||
result = result.
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(conv_out_class) = 'CL_ABAP_CONV_OUT_CE'.
|
||||
CALL METHOD (conv_out_class)=>create
|
||||
EXPORTING
|
||||
encoding = 'UTF-8'
|
||||
RECEIVING
|
||||
conv = conv.
|
||||
|
||||
CALL METHOD conv->('CONVERT')
|
||||
EXPORTING
|
||||
data = val
|
||||
IMPORTING
|
||||
buffer = result.
|
||||
ENDTRY.
|
||||
|
||||
|
||||
|
||||
* result = cl_abap_conv_codepage=>create_out( )->convert( val ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_string_by_xstring.
|
||||
|
||||
DATA conv TYPE REF TO object.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ABAP_CONV_CODEPAGE')=>create_in
|
||||
RECEIVING
|
||||
instance = conv.
|
||||
|
||||
CALL METHOD conv->('IF_ABAP_CONV_IN~CONVERT')
|
||||
EXPORTING
|
||||
source = val
|
||||
RECEIVING
|
||||
result = result.
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(conv_in_class) = 'CL_ABAP_CONV_IN_CE'.
|
||||
CALL METHOD (conv_in_class)=>create
|
||||
EXPORTING
|
||||
encoding = 'UTF-8'
|
||||
RECEIVING
|
||||
conv = conv.
|
||||
|
||||
CALL METHOD conv->('CONVERT')
|
||||
EXPORTING
|
||||
input = val
|
||||
IMPORTING
|
||||
data = result.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD encode_x_base64.
|
||||
|
||||
TRY.
|
||||
|
||||
CALL METHOD ('CL_WEB_HTTP_UTILITY')=>('ENCODE_X_BASE64')
|
||||
EXPORTING
|
||||
unencoded = val
|
||||
RECEIVING
|
||||
encoded = result.
|
||||
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(classname) = 'CL_HTTP_UTILITY'.
|
||||
CALL METHOD (classname)=>('ENCODE_X_BASE64')
|
||||
EXPORTING
|
||||
unencoded = val
|
||||
RECEIVING
|
||||
encoded = result.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_sql_by_string.
|
||||
|
||||
DATA(lv_sql) = conv string( val ).
|
||||
REPLACE ALL OCCURRENCES OF ` ` IN lv_sql WITH ``.
|
||||
lv_sql = to_upper( lv_sql ).
|
||||
SPLIT lv_sql AT 'SELECTFROM' INTO DATA(lv_dummy) DATA(lv_tab).
|
||||
SPLIT lv_tab AT `FIELDS` INTO lv_tab lv_dummy.
|
||||
|
||||
result-table = lv_tab.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD app_get_url.
|
||||
|
||||
|
@ -324,7 +525,8 @@ CLASS z2ui5_cl_util_func IMPLEMENTATION.
|
|||
WHEN 'ABAP_BOOL'
|
||||
OR 'XSDBOOLEAN'
|
||||
OR 'FLAG'
|
||||
* OR 'XFELD'
|
||||
OR 'XFLAG'
|
||||
OR 'XFELD'
|
||||
OR 'ABAP_BOOLEAN'
|
||||
OR 'WDY_BOOLEAN'
|
||||
OR 'OS_BOOLEAN'.
|
||||
|
@ -442,6 +644,80 @@ CLASS z2ui5_cl_util_func IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_source_code_method.
|
||||
DATA object TYPE REF TO object.
|
||||
FIELD-SYMBOLS <any> TYPE any.
|
||||
DATA lt_source TYPE string_table.
|
||||
|
||||
TRY.
|
||||
DATA lv_class TYPE c LENGTH 30.
|
||||
DATA lv_method TYPE c LENGTH 61.
|
||||
lv_class = iv_classname.
|
||||
lv_method = iv_methodname.
|
||||
|
||||
CALL METHOD ('XCO_CP_ABAP')=>('CLASS')
|
||||
EXPORTING
|
||||
iv_name = lv_class
|
||||
RECEIVING
|
||||
ro_class = object.
|
||||
|
||||
ASSIGN ('OBJECT->IF_XCO_AO_CLASS~IMPLEMENTATION') TO <any>.
|
||||
object = <any>.
|
||||
|
||||
CALL METHOD object->('IF_XCO_CLAS_IMPLEMENTATION~METHOD')
|
||||
EXPORTING
|
||||
iv_name = lv_method
|
||||
RECEIVING
|
||||
ro_method = object.
|
||||
|
||||
CALL METHOD object->('IF_XCO_CLAS_I_METHOD~CONTENT')
|
||||
RECEIVING
|
||||
ro_content = object.
|
||||
|
||||
CALL METHOD object->('IF_XCO_CLAS_I_METHOD_CONTENT~GET_SOURCE')
|
||||
RECEIVING
|
||||
rt_source = result.
|
||||
|
||||
CATCH cx_sy_dyn_call_error.
|
||||
|
||||
DATA(lv_name) = 'CL_OO_FACTORY'.
|
||||
CALL METHOD (lv_name)=>('CREATE_INSTANCE')
|
||||
RECEIVING
|
||||
result = object.
|
||||
|
||||
CALL METHOD object->('IF_OO_CLIF_SOURCE_FACTORY~CREATE_CLIF_SOURCE')
|
||||
EXPORTING
|
||||
clif_name = iv_classname
|
||||
RECEIVING
|
||||
result = object.
|
||||
|
||||
CALL METHOD object->('IF_OO_CLIF_SOURCE~GET_SOURCE')
|
||||
IMPORTING
|
||||
source = lt_source.
|
||||
|
||||
DATA(lv_check_method) = abap_false.
|
||||
LOOP AT lt_source INTO DATA(lv_source).
|
||||
DATA(lv_source_upper) = to_upper( lv_source ).
|
||||
|
||||
IF lv_source_upper CS `ENDMETHOD`.
|
||||
lv_check_method = abap_false.
|
||||
ENDIF.
|
||||
|
||||
IF lv_source_upper CS to_upper( |{ iv_methodname }| ).
|
||||
lv_check_method = abap_true.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
IF lv_check_method = abap_true.
|
||||
INSERT lv_source INTO TABLE result.
|
||||
ENDIF.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_range_by_token.
|
||||
|
||||
DATA(lv_length) = strlen( value ) - 1.
|
||||
|
@ -696,12 +972,22 @@ CLASS z2ui5_cl_util_func IMPLEMENTATION.
|
|||
|
||||
METHOD rtti_get_t_comp_by_data.
|
||||
|
||||
DATA(lo_type) = cl_abap_structdescr=>describe_by_data( val ).
|
||||
TRY.
|
||||
DATA(lo_tab) = CAST cl_abap_tabledescr( lo_type ).
|
||||
DATA(lo_struct) = CAST cl_abap_structdescr( lo_tab->get_table_line_type( ) ).
|
||||
DATA(lo_type) = cl_abap_typedescr=>describe_by_data( val ).
|
||||
DATA(lo_struct) = CAST cl_abap_structdescr( lo_type ).
|
||||
CATCH cx_root.
|
||||
lo_struct = CAST cl_abap_structdescr( lo_type ).
|
||||
TRY.
|
||||
DATA(lo_tab) = CAST cl_abap_tabledescr( lo_type ).
|
||||
lo_struct = CAST cl_abap_structdescr( lo_tab->get_table_line_type( ) ).
|
||||
CATCH cx_root.
|
||||
TRY.
|
||||
DATA(lo_ref) = cl_abap_typedescr=>describe_by_data_ref( val ).
|
||||
lo_struct = CAST cl_abap_structdescr( lo_ref ).
|
||||
CATCH cx_root.
|
||||
lo_tab = CAST cl_abap_tabledescr( lo_ref ).
|
||||
lo_struct = CAST cl_abap_structdescr( lo_tab->get_table_line_type( ) ).
|
||||
ENDTRY.
|
||||
ENDTRY.
|
||||
ENDTRY.
|
||||
|
||||
result = lo_struct->get_components( ).
|
||||
|
@ -726,7 +1012,7 @@ CLASS z2ui5_cl_util_func IMPLEMENTATION.
|
|||
CATCH cx_root.
|
||||
DATA(lv_link) = `https://github.com/sandraros/S-RTTI`.
|
||||
DATA(lv_text) = `<p>Please install the open-source project S-RTTI by sandraros and try again: <a href="` &&
|
||||
lv_link && `" style="color:blue; font-weight:600;">(link)</a></p>`.
|
||||
lv_link && `" style="color:blue; font-weight:600;" target="_blank">(link)</a></p>`.
|
||||
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
|
@ -966,6 +1252,25 @@ CLASS z2ui5_cl_util_func IMPLEMENTATION.
|
|||
pretty_name = pretty_name
|
||||
IMPORTING
|
||||
r_result = <comp> ).
|
||||
WHEN cl_abap_typedescr=>kind_elem.
|
||||
CASE ls_comp-type->absolute_name.
|
||||
WHEN `\TYPE=D`.
|
||||
DATA match TYPE i.
|
||||
" support for ISO8601 => https://en.wikipedia.org/wiki/ISO_8601
|
||||
REPLACE FIRST OCCURRENCE OF REGEX `^(\d{4})-(\d{2})-(\d{2})` IN <ls_data_ui5> WITH `$1$2$3`
|
||||
REPLACEMENT LENGTH match. "#EC NOTEXT
|
||||
<comp> = <ls_data_ui5>.
|
||||
|
||||
WHEN `\TYPE=T`.
|
||||
|
||||
" support for ISO8601 => https://en.wikipedia.org/wiki/ISO_8601
|
||||
REPLACE FIRST OCCURRENCE OF REGEX `^(\d{2}):(\d{2}):(\d{2})` IN <ls_data_ui5> WITH `$1$2$3`
|
||||
REPLACEMENT LENGTH match. "#EC NOTEXT
|
||||
<comp> = <ls_data_ui5>.
|
||||
|
||||
WHEN OTHERS.
|
||||
<comp> = <ls_data_ui5>.
|
||||
ENDCASE.
|
||||
WHEN OTHERS.
|
||||
<comp> = <ls_data_ui5>.
|
||||
ENDCASE.
|
||||
|
@ -1076,4 +1381,39 @@ CLASS z2ui5_cl_util_func IMPLEMENTATION.
|
|||
RAISE EXCEPTION TYPE z2ui5_cx_util_error EXPORTING val = v.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD time_get_date_by_stampl.
|
||||
|
||||
CONVERT TIME STAMP val TIME ZONE sy-zonlo INTO DATE result TIME DATA(lv_dummy).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD time_get_time_by_stampl.
|
||||
|
||||
CONVERT TIME STAMP val TIME ZONE sy-zonlo INTO DATE DATA(lv_dummy) TIME result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD copy_ref_data_to_ref_data.
|
||||
|
||||
FIELD-SYMBOLS <from> TYPE data.
|
||||
FIELD-SYMBOLS <result> TYPE data.
|
||||
|
||||
ASSIGN from->* TO <from>.
|
||||
CREATE DATA result LIKE <from>.
|
||||
ASSIGN result->* TO <result>.
|
||||
|
||||
<result> = <from>.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_sql_multi_by_data.
|
||||
|
||||
LOOP AT rtti_get_t_comp_by_data( val ) REFERENCE INTO DATA(lr_comp).
|
||||
INSERT VALUE #( name = lr_comp->name ) INTO TABLE result.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -29,20 +29,20 @@ CLASS z2ui5_cl_fw_client DEFINITION
|
|||
RETURNING
|
||||
VALUE(r_result) TYPE string.
|
||||
|
||||
private section.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_FW_CLIENT IMPLEMENTATION.
|
||||
CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD bind_tab_cell.
|
||||
|
||||
FIELD-SYMBOLS <ele> TYPE any.
|
||||
FIELD-SYMBOLS <row> TYPE any.
|
||||
data lr_ref_in type ref to data.
|
||||
data lr_ref type ref to data.
|
||||
DATA lr_ref_in TYPE REF TO data.
|
||||
DATA lr_ref TYPE REF TO data.
|
||||
|
||||
ASSIGN i_tab[ i_tab_index ] TO <row>.
|
||||
DATA(lt_attri) = z2ui5_cl_util_func=>rtti_get_t_comp_by_data( <row> ).
|
||||
|
@ -55,14 +55,14 @@ CLASS Z2UI5_CL_FW_CLIENT IMPLEMENTATION.
|
|||
lr_ref = REF #( i_val ).
|
||||
IF lr_ref = lr_ref_in.
|
||||
r_result = `{` && iv_name && '/' && shift_right( CONV string( i_tab_index - 1 ) ) && '/' && <comp>-name && `}`.
|
||||
RETURN.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `BINDING_ERROR - No class attribute for binding found - Please check if the binded values are public attributes of your class`.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `BINDING_ERROR - No class attribute for binding found - Please check if the binded values are public attributes of your class`.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -130,11 +130,19 @@ CLASS Z2UI5_CL_FW_CLIENT IMPLEMENTATION.
|
|||
|
||||
METHOD z2ui5_if_client~nav_app_call.
|
||||
mo_handler->ms_next-o_app_call = app.
|
||||
IF app->id_draft IS INITIAL.
|
||||
app->id_app = z2ui5_cl_util_func=>func_get_uuid_32( ).
|
||||
ENDIF.
|
||||
result = app->id_app.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~nav_app_leave.
|
||||
mo_handler->ms_next-o_app_leave = app.
|
||||
IF app->id_draft IS INITIAL.
|
||||
app->id_app = z2ui5_cl_util_func=>func_get_uuid_32( ).
|
||||
ENDIF.
|
||||
result = app->id_app.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -211,7 +219,7 @@ CLASS Z2UI5_CL_FW_CLIENT IMPLEMENTATION.
|
|||
|
||||
METHOD z2ui5_if_client~popup_destroy.
|
||||
|
||||
mo_handler->ms_next-s_set-s_popup-check_destroy = abap_true.
|
||||
mo_handler->ms_next-s_set-s_popup = value #( check_destroy = abap_true ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -299,6 +307,14 @@ CLASS Z2UI5_CL_FW_CLIENT IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_client~clear.
|
||||
|
||||
CASE val.
|
||||
WHEN z2ui5_if_client~cs_clear-view.
|
||||
CLEAR mo_handler->ms_next-s_set-s_view.
|
||||
ENDCASE.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_client~_bind_edit.
|
||||
|
||||
|
|
|
@ -142,11 +142,11 @@ CLASS z2ui5_cl_fw_controller IMPLEMENTATION.
|
|||
|
||||
METHOD app_next_factory.
|
||||
|
||||
app->id = COND #( WHEN app->id IS INITIAL THEN z2ui5_cl_util_func=>func_get_uuid_32( ) ELSE app->id ).
|
||||
app->id_draft = COND #( WHEN app->id_draft IS INITIAL THEN z2ui5_cl_util_func=>func_get_uuid_32( ) ELSE app->id_draft ).
|
||||
|
||||
r_result = NEW #( ).
|
||||
r_result->ms_db-app = app.
|
||||
r_result->ms_db-id = app->id.
|
||||
r_result->ms_db-id = app->id_draft.
|
||||
r_result->ms_db-id_prev = ms_db-id.
|
||||
r_result->ms_db-id_prev_app = ms_db-id.
|
||||
r_result->ms_actual-check_launchpad_active = ms_actual-check_launchpad_active.
|
||||
|
@ -154,7 +154,7 @@ CLASS z2ui5_cl_fw_controller IMPLEMENTATION.
|
|||
r_result->ms_next-s_set = ms_next-s_set.
|
||||
|
||||
TRY.
|
||||
DATA(ls_db_next) = z2ui5_cl_fw_db=>load_app( id = app->id ).
|
||||
DATA(ls_db_next) = z2ui5_cl_fw_db=>load_app( id = app->id_draft ).
|
||||
r_result->ms_db-t_attri = ls_db_next-t_attri.
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
@ -370,7 +370,7 @@ CLASS z2ui5_cl_fw_controller IMPLEMENTATION.
|
|||
|
||||
lv_classname = z2ui5_cl_util_func=>c_trim_upper( lv_classname ).
|
||||
CREATE OBJECT result->ms_db-app TYPE (lv_classname).
|
||||
result->ms_db-app->id = result->ms_db-id.
|
||||
result->ms_db-app->id_draft = result->ms_db-id.
|
||||
|
||||
CATCH cx_root.
|
||||
result = app_system_factory( error_text = `App with name ` && lv_classname && ` not found...` ).
|
||||
|
@ -395,7 +395,7 @@ CLASS z2ui5_cl_fw_controller IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
result->ms_db-app = z2ui5_cl_fw_app_startup=>factory( ).
|
||||
result->ms_db-app->id = result->ms_db-id.
|
||||
result->ms_db-app->id_draft = result->ms_db-id.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
|
|
@ -6,9 +6,9 @@ CLASS z2ui5_cl_fw_db DEFINITION
|
|||
PUBLIC SECTION.
|
||||
|
||||
|
||||
types ty_S_db2 type z2ui5_t_fw_01.
|
||||
TYPES ty_s_db2 TYPE z2ui5_t_fw_01.
|
||||
|
||||
TYPES:
|
||||
TYPES:
|
||||
BEGIN OF ty_s_db,
|
||||
id TYPE string,
|
||||
id_prev TYPE string,
|
||||
|
@ -35,7 +35,7 @@ CLASS z2ui5_cl_fw_db DEFINITION
|
|||
!id TYPE clike
|
||||
!check_load_app TYPE abap_bool DEFAULT abap_true
|
||||
RETURNING
|
||||
VALUE(result) TYPE ty_S_db2.
|
||||
VALUE(result) TYPE ty_s_db2.
|
||||
|
||||
CLASS-METHODS cleanup.
|
||||
|
||||
|
@ -51,7 +51,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_FW_DB IMPLEMENTATION.
|
||||
CLASS z2ui5_cl_fw_db IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD cleanup.
|
||||
|
@ -72,7 +72,7 @@ CLASS Z2UI5_CL_FW_DB IMPLEMENTATION.
|
|||
|
||||
METHOD create.
|
||||
|
||||
db-app->id = id.
|
||||
db-app->id_draft = id.
|
||||
DATA(lv_xml) = trans_any_2_xml( db ).
|
||||
|
||||
DATA(ls_draft) = VALUE ty_s_db2( id = id
|
||||
|
@ -112,6 +112,11 @@ CLASS Z2UI5_CL_FW_DB IMPLEMENTATION.
|
|||
FIELD-SYMBOLS <ref> TYPE any.
|
||||
DATA(lv_assign) = 'LO_APP->' && lr_attri->name.
|
||||
ASSIGN (lv_assign) TO <ref>.
|
||||
IF sy-subrc <> 0.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `LOAD_DRAFT_FROM_DATABASE_FAILED / ATTRI_NOT_FOUND ` && lr_attri->name.
|
||||
ENDIF.
|
||||
|
||||
z2ui5_cl_util_func=>rtti_xml_set_to_data(
|
||||
EXPORTING
|
||||
|
@ -184,18 +189,22 @@ CLASS Z2UI5_CL_FW_DB IMPLEMENTATION.
|
|||
IF sy-subrc <> 0.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
lr_attri->data_rtti = z2ui5_cl_util_func=>rtti_xml_get_by_data( <deref_attri> ).
|
||||
lr_attri->data_rtti = z2ui5_cl_util_func=>rtti_xml_get_by_data( <deref_attri> ).
|
||||
CLEAR <deref_attri>.
|
||||
CLEAR <attri>.
|
||||
ENDLOOP.
|
||||
|
||||
result = z2ui5_cl_util_func=>trans_xml_any_2( ls_db ).
|
||||
|
||||
CATCH z2ui5_cx_util_error INTO DATA(x_util).
|
||||
RAISE EXCEPTION x_util.
|
||||
|
||||
CATCH cx_root INTO DATA(x2).
|
||||
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = x->get_text( ) && `<p>` && x->previous->get_text( ) && `<p>` && x2->get_text( ).
|
||||
* val = x->get_text( ) && `<p>` && x->previous->get_text( ) && `<p>` && x2->get_text( ) && `<p> Please check if all generic data references are public attribtues of your class`.
|
||||
val = `<p>` && x->previous->get_text( ) && `<p>` && x2->get_text( ) && `<p> Please check if all generic data references are public attributes of your class`.
|
||||
|
||||
ENDTRY.
|
||||
ENDTRY.
|
||||
|
|
|
@ -257,11 +257,11 @@ CLASS Z2UI5_CL_FW_HTTP_HANDLER IMPLEMENTATION.
|
|||
` sap.z2ui5.oBody = {};` && |\n| &&
|
||||
` let isUpdated = false;` && |\n| &&
|
||||
` if (sap.z2ui5.oViewPopup) {` && |\n| &&
|
||||
` if (!sap.z2ui5.oViewPopup.isOpen || sap.z2ui5.oViewPopup.isOpen() == true) {` && |\n| &&
|
||||
` if (sap.z2ui5.oViewPopup.isOpen ) { if( sap.z2ui5.oViewPopup.isOpen() == true ) {` && |\n| &&
|
||||
` sap.z2ui5.oBody.EDIT = sap.z2ui5.oViewPopup.getModel().getData().EDIT;` && |\n| &&
|
||||
` isUpdated = true;` && |\n| &&
|
||||
` sap.z2ui5.oBody.VIEWNAME = 'MAIN';` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` } }` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` if (isUpdated == false) {` && |\n| &&
|
||||
` if (sap.z2ui5.oViewPopover) {` && |\n| &&
|
||||
|
|
|
@ -14,6 +14,11 @@ INTERFACE z2ui5_if_client
|
|||
cross_app_nav_to_prev_app TYPE string VALUE `CROSS_APP_NAV_TO_PREV_APP`,
|
||||
END OF cs_event.
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF cs_clear,
|
||||
view TYPE string VALUE `VIEW`,
|
||||
END OF cs_clear.
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF cs_view,
|
||||
main TYPE string VALUE `MAIN`,
|
||||
|
@ -133,11 +138,15 @@ INTERFACE z2ui5_if_client
|
|||
|
||||
METHODS nav_app_leave
|
||||
IMPORTING
|
||||
app TYPE REF TO z2ui5_if_app.
|
||||
app TYPE REF TO z2ui5_if_app
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS nav_app_call
|
||||
IMPORTING
|
||||
app TYPE REF TO z2ui5_if_app.
|
||||
app TYPE REF TO z2ui5_if_app
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS message_box_display
|
||||
IMPORTING
|
||||
|
@ -200,4 +209,8 @@ INTERFACE z2ui5_if_client
|
|||
IMPORTING
|
||||
val TYPE data.
|
||||
|
||||
METHODS clear
|
||||
IMPORTING
|
||||
val TYPE data.
|
||||
|
||||
ENDINTERFACE.
|
||||
|
|
|
@ -28,6 +28,7 @@ CLASS z2ui5_cl_fw_app_startup DEFINITION
|
|||
METHODS z2ui5_on_init.
|
||||
METHODS z2ui5_on_event.
|
||||
METHODS view_display_start.
|
||||
METHODS on_event_check.
|
||||
PROTECTED SECTION.
|
||||
DATA mt_classes TYPE string_table.
|
||||
PRIVATE SECTION.
|
||||
|
@ -142,14 +143,20 @@ CLASS z2ui5_cl_fw_app_startup IMPLEMENTATION.
|
|||
IF mv_check_initialized = abap_false.
|
||||
mv_check_initialized = abap_true.
|
||||
z2ui5_on_init( ).
|
||||
view_display_start( ).
|
||||
return.
|
||||
ENDIF.
|
||||
|
||||
IF client->get( )-check_on_navigated = abap_true.
|
||||
TRY.
|
||||
DATA(lo_f4) = CAST z2ui5_cl_popup_to_select( client->get_app( client->get( )-s_draft-id_prev_app ) ).
|
||||
DATA(ls_result) = lo_f4->result( ).
|
||||
IF ls_result-check_cancel = abap_false.
|
||||
ms_home-classname = mt_classes[ ls_result-index ].
|
||||
IF ls_result-check_confirmed = abap_true.
|
||||
FIELD-SYMBOLS <class> TYPE string.
|
||||
ASSIGN ls_result-row->* TO <class>.
|
||||
ms_home-classname = <class>.
|
||||
view_display_start( ).
|
||||
return.
|
||||
ENDIF.
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
@ -170,26 +177,10 @@ CLASS z2ui5_cl_fw_app_startup IMPLEMENTATION.
|
|||
ms_home-btn_event_id = `BUTTON_CHECK`.
|
||||
ms_home-btn_icon = `sap-icon://validate`.
|
||||
ms_home-class_editable = abap_true.
|
||||
client->view_model_update( ).
|
||||
|
||||
WHEN `BUTTON_CHECK`.
|
||||
TRY.
|
||||
DATA li_app_test TYPE REF TO z2ui5_if_app.
|
||||
ms_home-classname = z2ui5_cl_util_func=>c_trim_upper( ms_home-classname ).
|
||||
CREATE OBJECT li_app_test TYPE (ms_home-classname).
|
||||
|
||||
client->message_toast_display( `App is ready to start!` ).
|
||||
ms_home-btn_text = `edit`.
|
||||
ms_home-btn_event_id = `BUTTON_CHANGE`.
|
||||
ms_home-btn_icon = `sap-icon://edit`.
|
||||
ms_home-class_value_state = `Success`.
|
||||
ms_home-class_editable = abap_false.
|
||||
|
||||
CATCH cx_root INTO DATA(lx) ##CATCH_ALL.
|
||||
ms_home-class_value_state_text = lx->get_text( ).
|
||||
ms_home-class_value_state = `Warning`.
|
||||
client->message_box_display( text = ms_home-class_value_state_text
|
||||
type = `error` ).
|
||||
ENDTRY.
|
||||
on_event_check( ).
|
||||
|
||||
WHEN 'VALUE_HELP'.
|
||||
mt_classes = z2ui5_cl_util_func=>rtti_get_classes_impl_intf( `Z2UI5_IF_APP` ).
|
||||
|
@ -221,4 +212,28 @@ CLASS z2ui5_cl_fw_app_startup IMPLEMENTATION.
|
|||
mv_check_demo = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD on_event_check.
|
||||
|
||||
TRY.
|
||||
DATA li_app_test TYPE REF TO z2ui5_if_app.
|
||||
ms_home-classname = z2ui5_cl_util_func=>c_trim_upper( ms_home-classname ).
|
||||
CREATE OBJECT li_app_test TYPE (ms_home-classname).
|
||||
|
||||
client->message_toast_display( `App is ready to start!` ).
|
||||
ms_home-btn_text = `edit`.
|
||||
ms_home-btn_event_id = `BUTTON_CHANGE`.
|
||||
ms_home-btn_icon = `sap-icon://edit`.
|
||||
ms_home-class_value_state = `Success`.
|
||||
ms_home-class_editable = abap_false.
|
||||
|
||||
CATCH cx_root INTO DATA(lx) ##CATCH_ALL.
|
||||
ms_home-class_value_state_text = lx->get_text( ).
|
||||
ms_home-class_value_state = `Warning`.
|
||||
client->message_box_display( text = ms_home-class_value_state_text
|
||||
type = `error` ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -9,7 +9,7 @@ CLASS z2ui5_cl_popup_error DEFINITION
|
|||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
error TYPE ref to cx_root
|
||||
error TYPE REF TO cx_root
|
||||
i_title TYPE string DEFAULT `Error View`
|
||||
i_icon TYPE string DEFAULT 'sap-icon://question-mark'
|
||||
i_button_text TYPE string DEFAULT `OK`
|
||||
|
@ -36,7 +36,10 @@ CLASS z2ui5_cl_popup_error IMPLEMENTATION.
|
|||
r_result = NEW #( ).
|
||||
r_result->title = i_title.
|
||||
r_result->icon = i_icon.
|
||||
r_result->question_text = error->get_text( ).
|
||||
if error->previous is bound.
|
||||
r_result->question_text = error->previous->get_text( ).
|
||||
endif.
|
||||
r_result->question_text = r_result->question_text && ` ` && error->get_text( ).
|
||||
r_result->button_text_confirm = i_button_text.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -50,8 +53,9 @@ CLASS z2ui5_cl_popup_error IMPLEMENTATION.
|
|||
afterclose = client->_event( 'BUTTON_CONFIRM' )
|
||||
)->content(
|
||||
)->vbox( 'sapUiMediumMargin'
|
||||
)->text( question_text
|
||||
)->get_parent( )->get_parent(
|
||||
* )->text( question_text
|
||||
)->html( question_text
|
||||
)->get_parent( )->get_parent( )->get_parent(
|
||||
)->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
)->button(
|
||||
|
@ -59,6 +63,7 @@ CLASS z2ui5_cl_popup_error IMPLEMENTATION.
|
|||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->clear( client->cs_clear-view ).
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -9,22 +9,23 @@ CLASS z2ui5_cl_popup_file_upload DEFINITION
|
|||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
i_text TYPE string default `Choose the file to upload:`
|
||||
i_text TYPE string DEFAULT `Choose the file to upload:`
|
||||
i_title TYPE string DEFAULT `File Upload`
|
||||
i_button_text_confirm TYPE string DEFAULT `OK`
|
||||
i_button_text_cancel TYPE string DEFAULT `Cancel`
|
||||
i_path type string optional
|
||||
i_path TYPE string OPTIONAL
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO z2ui5_cl_popup_file_upload.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_result,
|
||||
text TYPE string,
|
||||
check_cancel TYPE abap_bool,
|
||||
value TYPE string,
|
||||
check_confirmed TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
data mv_path type string.
|
||||
data mv_value type string.
|
||||
DATA mv_path TYPE string.
|
||||
DATA mv_value TYPE string.
|
||||
DATA check_confirm_enabled TYPE abap_bool.
|
||||
|
||||
METHODS result
|
||||
RETURNING
|
||||
|
@ -38,14 +39,13 @@ CLASS z2ui5_cl_popup_file_upload DEFINITION
|
|||
DATA button_text_confirm TYPE string.
|
||||
DATA button_text_cancel TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA check_result_confirmed TYPE abap_bool.
|
||||
METHODS view_display.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_POPUP_FILE_UPLOAD IMPLEMENTATION.
|
||||
CLASS z2ui5_cl_popup_file_upload IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD factory.
|
||||
|
@ -91,6 +91,7 @@ CLASS Z2UI5_CL_POPUP_FILE_UPLOAD IMPLEMENTATION.
|
|||
)->button(
|
||||
text = button_text_confirm
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
enabled = client->_bind( check_confirm_enabled )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
@ -109,26 +110,27 @@ CLASS Z2UI5_CL_POPUP_FILE_UPLOAD IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
CASE client->get( )-event.
|
||||
when `UPLOAD`.
|
||||
|
||||
SPLIT mv_value AT `;` INTO DATA(lv_dummy) DATA(lv_data).
|
||||
SPLIT lv_data AT `,` INTO lv_dummy lv_data.
|
||||
WHEN `UPLOAD`.
|
||||
|
||||
DATA(lv_data2) = lcl_utility=>decode_x_base64( lv_data ).
|
||||
ms_result-text = lcl_utility=>get_string_by_xstring( lv_data2 ).
|
||||
SPLIT mv_value AT `;` INTO DATA(lv_dummy) DATA(lv_data).
|
||||
SPLIT lv_data AT `,` INTO lv_dummy lv_data.
|
||||
|
||||
client->message_box_display( `file uploaded` ).
|
||||
DATA(lv_data2) = lcl_utility=>decode_x_base64( lv_data ).
|
||||
ms_result-value = lcl_utility=>get_string_by_xstring( lv_data2 ).
|
||||
|
||||
CLEAR mv_value.
|
||||
CLEAR mv_path.
|
||||
check_confirm_enabled = abap_true.
|
||||
* client->message_box_display( `file uploaded` ).
|
||||
|
||||
CLEAR mv_value.
|
||||
CLEAR mv_path.
|
||||
client->popup_model_update( ).
|
||||
|
||||
WHEN `BUTTON_CONFIRM`.
|
||||
check_result_confirmed = abap_true.
|
||||
ms_result-check_confirmed = abap_true.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
WHEN `BUTTON_CANCEL`.
|
||||
check_result_confirmed = abap_false.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
ENDCASE.
|
||||
|
|
|
@ -24,8 +24,8 @@ CLASS z2ui5_cl_popup_get_range DEFINITION
|
|||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_result,
|
||||
t_range TYPE z2ui5_cl_util_func=>ty_t_range,
|
||||
check_cancel TYPE abap_bool,
|
||||
t_range TYPE z2ui5_cl_util_func=>ty_t_range,
|
||||
check_confirmed TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
|
||||
|
@ -37,7 +37,6 @@ CLASS z2ui5_cl_popup_get_range DEFINITION
|
|||
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA check_result_confirmed TYPE abap_bool.
|
||||
METHODS view_display.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
@ -50,6 +49,7 @@ CLASS z2ui5_cl_popup_get_range IMPLEMENTATION.
|
|||
|
||||
r_result = NEW #( ).
|
||||
r_result->ms_result-t_range = t_range.
|
||||
INSERT VALUE #( ) INTO TABLE r_result->ms_result-t_range.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -89,8 +89,8 @@ CLASS z2ui5_cl_popup_get_range IMPLEMENTATION.
|
|||
key = '{N}'
|
||||
text = '{N}'
|
||||
)->get_parent(
|
||||
)->input( value = `{LOW}`
|
||||
)->input( value = `{HIGH}` visible = `{= ${OPTION} === 'BT' }`
|
||||
)->input( value = `{LOW}` submit = client->_event( 'BUTTON_CONFIRM' )
|
||||
)->input( value = `{HIGH}` visible = `{= ${OPTION} === 'BT' }` submit = client->_event( 'BUTTON_CONFIRM' )
|
||||
)->button( icon = 'sap-icon://decline' type = `Transparent` press = client->_event( val = `POPUP_DELETE` t_arg = VALUE #( ( `${KEY}` ) ) )
|
||||
).
|
||||
|
||||
|
@ -119,15 +119,15 @@ CLASS z2ui5_cl_popup_get_range IMPLEMENTATION.
|
|||
IF check_initialized = abap_false.
|
||||
check_initialized = abap_true.
|
||||
|
||||
CLEAR mt_filter.
|
||||
LOOP AT ms_result-t_range REFERENCE INTO DATA(lr_product).
|
||||
INSERT VALUE #(
|
||||
low = lr_product->low
|
||||
high = lr_product->high
|
||||
option = lr_product->option
|
||||
key = z2ui5_cl_util_func=>func_get_uuid_32( )
|
||||
) INTO TABLE mt_filter.
|
||||
ENDLOOP.
|
||||
CLEAR mt_filter.
|
||||
LOOP AT ms_result-t_range REFERENCE INTO DATA(lr_product).
|
||||
INSERT VALUE #(
|
||||
low = lr_product->low
|
||||
high = lr_product->high
|
||||
option = lr_product->option
|
||||
key = z2ui5_cl_util_func=>func_get_uuid_32( )
|
||||
) INTO TABLE mt_filter.
|
||||
ENDLOOP.
|
||||
|
||||
view_display( ).
|
||||
RETURN.
|
||||
|
@ -138,6 +138,9 @@ CLASS z2ui5_cl_popup_get_range IMPLEMENTATION.
|
|||
|
||||
CLEAR ms_result-t_range.
|
||||
LOOP AT mt_filter REFERENCE INTO DATA(lr_filter).
|
||||
IF lr_filter->low IS INITIAL AND lr_filter->high IS INITIAL.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
INSERT VALUE #(
|
||||
sign = `I`
|
||||
option = lr_filter->option
|
||||
|
@ -146,13 +149,11 @@ CLASS z2ui5_cl_popup_get_range IMPLEMENTATION.
|
|||
) INTO TABLE ms_result-t_range.
|
||||
ENDLOOP.
|
||||
|
||||
check_result_confirmed = abap_true.
|
||||
ms_result-check_confirmed = abap_true.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
WHEN `BUTTON_CANCEL`.
|
||||
|
||||
check_result_confirmed = abap_false.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
|
|
149
src/03/01/z2ui5_cl_popup_get_range_multi.clas.abap
Normal file
149
src/03/01/z2ui5_cl_popup_get_range_multi.clas.abap
Normal file
|
@ -0,0 +1,149 @@
|
|||
CLASS z2ui5_cl_popup_get_range_multi DEFINITION
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
val TYPE z2ui5_cl_util_func=>ty_t_sql_multi
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO z2ui5_cl_popup_get_range_multi.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_result,
|
||||
t_sql TYPE z2ui5_cl_util_func=>ty_t_sql_multi,
|
||||
check_confirmed TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
|
||||
METHODS result
|
||||
RETURNING VALUE(result) TYPE ty_s_result.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA mv_popup_name TYPE LINE OF string_table.
|
||||
METHODS popup_display.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_popup_get_range_multi IMPLEMENTATION.
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
r_result->ms_result-t_sql = val.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD result.
|
||||
result = ms_result.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD popup_display.
|
||||
|
||||
DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( client ).
|
||||
lo_popup = lo_popup->dialog( afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
contentheight = `50%`
|
||||
contentwidth = `50%`
|
||||
title = 'Define Filter Conditons' ).
|
||||
|
||||
DATA(vbox) = lo_popup->vbox( height = `100%`
|
||||
justifycontent = 'SpaceBetween' ).
|
||||
|
||||
DATA(item) = vbox->list( nodata = `no conditions defined`
|
||||
items = client->_bind( ms_result-t_sql )
|
||||
selectionchange = client->_event( 'SELCHANGE' )
|
||||
)->custom_list_item( ).
|
||||
|
||||
DATA(grid) = item->grid( ).
|
||||
grid->label( `{NAME}` ).
|
||||
|
||||
grid->multi_input( tokens = `{T_TOKEN}`
|
||||
enabled = abap_false
|
||||
valuehelprequest = client->_event( val = `LIST_OPEN` t_arg = VALUE #( ( `${NAME}` ) ) )
|
||||
)->tokens(
|
||||
)->token( key = `{KEY}`
|
||||
text = `{TEXT}`
|
||||
visible = `{VISIBLE}`
|
||||
selected = `{SELKZ}`
|
||||
editable = `{EDITABLE}` ).
|
||||
|
||||
grid->button( text = `Select` press = client->_event( val = `LIST_OPEN` t_arg = VALUE #( ( `${NAME}` ) ) ) ).
|
||||
grid->button( icon = 'sap-icon://delete' type = `Transparent` text = `Clear` press = client->_event( val = `LIST_DELETE` t_arg = VALUE #( ( `${NAME}` ) ) ) ).
|
||||
|
||||
lo_popup->footer( )->overflow_toolbar(
|
||||
)->button( text = `Clear All`
|
||||
icon = 'sap-icon://delete'
|
||||
type = `Transparent`
|
||||
press = client->_event( val = `POPUP_DELETE_ALL` )
|
||||
)->toolbar_spacer(
|
||||
)->button( text = 'Cancel'
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
)->button( text = 'OK'
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( lo_popup->stringify( ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
me->client = client.
|
||||
|
||||
IF check_initialized = abap_false.
|
||||
check_initialized = abap_true.
|
||||
popup_display( ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
IF client->get( )-check_on_navigated = abap_true.
|
||||
|
||||
DATA(lo_popup) = CAST z2ui5_cl_popup_get_range( client->get_app( client->get( )-s_draft-id_prev_app ) ).
|
||||
IF lo_popup->result( )-check_confirmed = abap_true.
|
||||
ASSIGN ms_result-t_sql[ name = mv_popup_name ] TO FIELD-SYMBOL(<tab>).
|
||||
<tab>-t_range = lo_popup->result( )-t_range.
|
||||
<tab>-t_token = z2ui5_cl_util_func=>get_token_t_by_range_t( <tab>-t_range ).
|
||||
ENDIF.
|
||||
popup_display( ).
|
||||
|
||||
ENDIF.
|
||||
|
||||
CASE client->get( )-event.
|
||||
|
||||
WHEN 'LIST_DELETE'.
|
||||
DATA(lt_event) = client->get( )-t_event_arg.
|
||||
ASSIGN ms_result-t_sql[ name = lt_event[ 1 ] ] TO <tab>.
|
||||
CLEAR <tab>-t_token.
|
||||
CLEAR <tab>-t_range.
|
||||
client->popup_model_update( ).
|
||||
|
||||
WHEN 'LIST_OPEN'.
|
||||
lt_event = client->get( )-t_event_arg.
|
||||
mv_popup_name = lt_event[ 1 ].
|
||||
DATA(ls_sql) = ms_result-t_sql[ name = mv_popup_name ].
|
||||
client->nav_app_call( z2ui5_cl_popup_get_range=>factory( ls_sql-t_range ) ).
|
||||
|
||||
WHEN `BUTTON_CONFIRM`.
|
||||
ms_result-check_confirmed = abap_true.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
WHEN `BUTTON_CANCEL`.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
WHEN `POPUP_DELETE_ALL`.
|
||||
LOOP AT ms_result-t_sql REFERENCE INTO DATA(lr_sql).
|
||||
CLEAR lr_sql->t_range.
|
||||
CLEAR lr_sql->t_token.
|
||||
ENDLOOP.
|
||||
client->popup_model_update( ).
|
||||
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
16
src/03/01/z2ui5_cl_popup_get_range_multi.clas.xml
Normal file
16
src/03/01/z2ui5_cl_popup_get_range_multi.clas.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>Z2UI5_CL_POPUP_GET_RANGE_MULTI</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>ui - popup get range multi</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -20,8 +20,8 @@ CLASS z2ui5_cl_popup_input_value DEFINITION
|
|||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_result,
|
||||
value TYPE string,
|
||||
check_cancel TYPE abap_bool,
|
||||
value TYPE string,
|
||||
check_confirmed TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
|
||||
|
|
158
src/03/01/z2ui5_cl_popup_layout.clas.abap
Normal file
158
src/03/01/z2ui5_cl_popup_layout.clas.abap
Normal file
|
@ -0,0 +1,158 @@
|
|||
CLASS z2ui5_cl_popup_layout DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PROTECTED.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_layout,
|
||||
name TYPE string,
|
||||
visible TYPE abap_bool,
|
||||
length TYPE string,
|
||||
mergeduplicates TYPE abap_bool,
|
||||
END OF ty_s_layout.
|
||||
TYPES ty_t_layout TYPE STANDARD TABLE OF ty_s_layout WITH EMPTY KEY.
|
||||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
t_layout TYPE ty_t_layout OPTIONAL
|
||||
i_tab TYPE STANDARD TABLE OPTIONAL
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO z2ui5_cl_popup_layout.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_result,
|
||||
t_layout TYPE ty_t_layout,
|
||||
check_confirmed TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
|
||||
METHODS result
|
||||
RETURNING
|
||||
VALUE(result) TYPE ty_s_result.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
METHODS on_event.
|
||||
METHODS display.
|
||||
METHODS on_event_confirm.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_POPUP_LAYOUT IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( client )->dialog(
|
||||
afterclose = client->_event( 'BUTTON_CONFIRM' )
|
||||
stretch = abap_true
|
||||
title = 'Layout View'
|
||||
)->content( ).
|
||||
|
||||
DATA(tab) = popup->table(
|
||||
items = client->_bind_edit( ms_result-t_layout ) ).
|
||||
|
||||
DATA(lt_comp) = z2ui5_cl_util_func=>rtti_get_t_comp_by_data( ms_result-t_layout ).
|
||||
|
||||
DATA(list) = tab->column_list_item( valign = `Top` ).
|
||||
DATA(cells) = list->cells( ).
|
||||
|
||||
DATA(columns) = tab->columns( ).
|
||||
LOOP AT lt_comp INTO DATA(ls_comp2).
|
||||
DATA(col) = columns->column( width = '8rem' )->header( ns = `` ).
|
||||
col->text( text = ls_comp2-name ).
|
||||
ENDLOOP.
|
||||
|
||||
LOOP AT lt_comp INTO DATA(ls_comp).
|
||||
IF ls_comp-name = 'NAME'.
|
||||
cells->text( `{` && ls_comp-name && `}` ).
|
||||
ELSE.
|
||||
cells->checkbox( `{` && ls_comp-name && `}` ).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
popup->get_parent(
|
||||
)->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
)->button(
|
||||
text = 'OK'
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
|
||||
IF t_layout IS INITIAL.
|
||||
|
||||
DATA(lt_comp) = z2ui5_cl_util_func=>rtti_get_t_comp_by_data( i_tab ).
|
||||
LOOP AT lt_comp REFERENCE INTO DATA(lr_comp).
|
||||
INSERT VALUE #( name = lr_comp->name visible = abap_true mergeduplicates = abap_false ) INTO TABLE r_result->ms_result-t_layout.
|
||||
ENDLOOP.
|
||||
|
||||
ELSE.
|
||||
r_result->ms_result-t_layout = t_layout.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD on_event.
|
||||
|
||||
CASE client->get( )-event.
|
||||
|
||||
WHEN 'BUTTON_CONFIRM'.
|
||||
|
||||
ms_result-check_confirmed = abap_true.
|
||||
on_event_confirm( ).
|
||||
|
||||
WHEN 'CANCEL'.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
ENDCASE.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD on_event_confirm.
|
||||
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD result.
|
||||
|
||||
result = ms_result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
||||
IF check_initialized = abap_false.
|
||||
check_initialized = abap_true.
|
||||
display( ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
on_event( ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
16
src/03/01/z2ui5_cl_popup_layout.clas.xml
Normal file
16
src/03/01/z2ui5_cl_popup_layout.clas.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>Z2UI5_CL_POPUP_LAYOUT</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>ui - popup layout</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -18,8 +18,8 @@ CLASS z2ui5_cl_popup_pdf DEFINITION
|
|||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_result,
|
||||
text TYPE string,
|
||||
check_cancel TYPE abap_bool,
|
||||
text TYPE string,
|
||||
check_confirmed TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
|
||||
|
|
151
src/03/01/z2ui5_cl_popup_table.clas.abap
Normal file
151
src/03/01/z2ui5_cl_popup_table.clas.abap
Normal file
|
@ -0,0 +1,151 @@
|
|||
CLASS z2ui5_cl_popup_table DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PROTECTED.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
i_tab TYPE STANDARD TABLE
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO z2ui5_cl_popup_table.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_result,
|
||||
row TYPE REF TO data,
|
||||
check_confirmed TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
|
||||
METHODS result
|
||||
RETURNING
|
||||
VALUE(result) TYPE ty_s_result.
|
||||
|
||||
DATA mr_tab TYPE REF TO data.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
METHODS on_event.
|
||||
METHODS display.
|
||||
METHODS on_event_confirm.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_popup_table IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD display.
|
||||
|
||||
FIELD-SYMBOLS <tab_out> TYPE STANDARD TABLE.
|
||||
ASSIGN mr_tab->* TO <tab_out>.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( client )->dialog(
|
||||
afterclose = client->_event( 'BUTTON_CONFIRM' )
|
||||
stretch = abap_true
|
||||
title = 'Table View'
|
||||
* icon = 'sap-icon://edit'
|
||||
)->content( ).
|
||||
|
||||
DATA(tab) = popup->table(
|
||||
items = client->_bind( <tab_out> ) ).
|
||||
* )->header_toolbar(
|
||||
* )->overflow_toolbar(
|
||||
* )->toolbar_spacer(
|
||||
* )->button( text = `Filter` press = client->_event( `PREVIEW_FILTER` ) icon = `sap-icon://filter`
|
||||
* )->button( text = `Display Popup` press = client->_event( `BUTTON_START` ) type = `Emphasized`
|
||||
* )->get_parent( )->get_parent( ).
|
||||
|
||||
DATA(lt_comp) = z2ui5_cl_util_func=>rtti_get_t_comp_by_data( <tab_out> ).
|
||||
|
||||
DATA(list) = tab->column_list_item( valign = `Top` ).
|
||||
DATA(cells) = list->cells( ).
|
||||
|
||||
LOOP AT lt_comp INTO DATA(ls_comp).
|
||||
cells->text( text = `{` && ls_comp-name && `}` ).
|
||||
ENDLOOP.
|
||||
|
||||
DATA(columns) = tab->columns( ).
|
||||
LOOP AT lt_comp INTO ls_comp.
|
||||
columns->column( width = '8rem' )->header( ns = `` )->text( text = ls_comp-name ).
|
||||
ENDLOOP.
|
||||
|
||||
popup->get_parent(
|
||||
)->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
* )->button(
|
||||
* text = 'Cancel'
|
||||
* press = client->_event( 'BUTTON_TEXTAREA_CANCEL' )
|
||||
)->button(
|
||||
text = 'OK'
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
CREATE DATA r_result->mr_tab LIKE i_tab.
|
||||
CREATE DATA r_result->ms_result-row LIKE LINE OF i_tab.
|
||||
FIELD-SYMBOLS <tab> TYPE any.
|
||||
ASSIGN r_result->mr_tab->* TO <tab>.
|
||||
<tab> = i_tab.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD on_event.
|
||||
|
||||
CASE client->get( )-event.
|
||||
|
||||
WHEN 'BUTTON_CONFIRM'.
|
||||
ms_result-check_confirmed = abap_true.
|
||||
on_event_confirm( ).
|
||||
|
||||
WHEN 'CANCEL'.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
|
||||
ENDCASE.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD on_event_confirm.
|
||||
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD result.
|
||||
|
||||
result = ms_result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
||||
IF check_initialized = abap_false.
|
||||
check_initialized = abap_true.
|
||||
display( ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
on_event( ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
16
src/03/01/z2ui5_cl_popup_table.clas.xml
Normal file
16
src/03/01/z2ui5_cl_popup_table.clas.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>Z2UI5_CL_POPUP_TABLE</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>ui - popup table</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -19,8 +19,8 @@ CLASS z2ui5_cl_popup_textedit DEFINITION
|
|||
DATA check_initialized TYPE abap_bool.
|
||||
TYPES:
|
||||
BEGIN OF ty_s_result,
|
||||
text TYPE string,
|
||||
check_cancel TYPE abap_bool,
|
||||
text TYPE string,
|
||||
check_confirmed TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
|
||||
|
@ -87,11 +87,11 @@ CLASS z2ui5_cl_popup_textedit IMPLEMENTATION.
|
|||
|
||||
CASE client->get( )-event.
|
||||
WHEN `BUTTON_TEXTAREA_CONFIRM`.
|
||||
ms_result-check_confirmed = abap_true.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
WHEN `BUTTON_TEXTAREA_CANCEL`.
|
||||
ms_result-check_cancel = abap_true.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
|
|
|
@ -50,6 +50,7 @@ CLASS Z2UI5_CL_POPUP_TO_CONFIRM IMPLEMENTATION.
|
|||
METHOD factory.
|
||||
|
||||
r_result = new #( ).
|
||||
* r_result->z2ui5_if_app~id = z2ui5_cl_util_func=>func_get_uuid_22( ).
|
||||
r_result->title = i_title.
|
||||
r_result->icon = i_icon.
|
||||
r_result->question_text = i_question_text.
|
||||
|
|
|
@ -8,14 +8,14 @@ CLASS z2ui5_cl_popup_to_select DEFINITION
|
|||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
i_tab TYPE data
|
||||
i_tab TYPE STANDARD TABLE
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO z2ui5_cl_popup_to_select.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_result,
|
||||
index TYPE i,
|
||||
check_cancel TYPE abap_bool,
|
||||
row TYPE REF TO data,
|
||||
check_confirmed TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
|
||||
|
@ -29,6 +29,7 @@ CLASS z2ui5_cl_popup_to_select DEFINITION
|
|||
|
||||
PROTECTED SECTION.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA check_table_line TYPE abap_bool.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
METHODS on_event.
|
||||
METHODS display.
|
||||
|
@ -37,7 +38,6 @@ CLASS z2ui5_cl_popup_to_select DEFINITION
|
|||
METHODS on_event_search.
|
||||
|
||||
PRIVATE SECTION.
|
||||
DATA lv_check_table_line TYPE abap_bool.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -48,6 +48,7 @@ CLASS z2ui5_cl_popup_to_select IMPLEMENTATION.
|
|||
|
||||
r_result = NEW #( ).
|
||||
CREATE DATA r_result->mr_tab LIKE i_tab.
|
||||
CREATE DATA r_result->ms_result-row LIKE LINE OF i_tab.
|
||||
FIELD-SYMBOLS <tab> TYPE any.
|
||||
ASSIGN r_result->mr_tab->* TO <tab>.
|
||||
<tab> = i_tab.
|
||||
|
@ -90,7 +91,7 @@ CLASS z2ui5_cl_popup_to_select IMPLEMENTATION.
|
|||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
me->client = client.
|
||||
|
||||
IF check_initialized = abap_false.
|
||||
check_initialized = abap_true.
|
||||
|
@ -108,10 +109,10 @@ CLASS z2ui5_cl_popup_to_select IMPLEMENTATION.
|
|||
CASE client->get( )-event.
|
||||
|
||||
WHEN 'CONFIRM'.
|
||||
ms_result-check_confirmed = abap_true.
|
||||
on_event_confirm( ).
|
||||
|
||||
WHEN 'CANCEL'.
|
||||
ms_result-check_cancel = abap_true.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
|
@ -142,7 +143,7 @@ CLASS z2ui5_cl_popup_to_select IMPLEMENTATION.
|
|||
DATA(lo_struct) = CAST cl_abap_structdescr( lo_table->get_table_line_type( ) ).
|
||||
DATA(lt_comp) = lo_struct->get_components( ).
|
||||
CATCH cx_root.
|
||||
lv_check_table_line = abap_true.
|
||||
check_table_line = abap_true.
|
||||
DATA(lo_elem) = CAST cl_abap_elemdescr( lo_table->get_table_line_type( ) ).
|
||||
INSERT VALUE #( name = 'TAB_LINE' type = CAST #( lo_elem ) ) INTO TABLE lt_comp.
|
||||
ENDTRY.
|
||||
|
@ -164,7 +165,7 @@ CLASS z2ui5_cl_popup_to_select IMPLEMENTATION.
|
|||
DATA lr_row TYPE REF TO data.
|
||||
CREATE DATA lr_row LIKE LINE OF <tab_out>.
|
||||
ASSIGN lr_row->* TO <row2>.
|
||||
IF lv_check_table_line = abap_true.
|
||||
IF check_table_line = abap_true.
|
||||
ASSIGN lr_row->('TAB_LINE') TO <field>.
|
||||
<field> = <row>.
|
||||
ELSE.
|
||||
|
@ -182,17 +183,30 @@ CLASS z2ui5_cl_popup_to_select IMPLEMENTATION.
|
|||
METHOD on_event_confirm.
|
||||
|
||||
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS <row> TYPE any.
|
||||
FIELD-SYMBOLS <field> TYPE any.
|
||||
FIELD-SYMBOLS <row_selected> TYPE any.
|
||||
FIELD-SYMBOLS <selkz> TYPE any.
|
||||
ASSIGN mr_tab_popup->* TO <tab>.
|
||||
LOOP AT <tab> ASSIGNING <row>.
|
||||
DATA(lv_tabix) = sy-tabix.
|
||||
ASSIGN ('<row>-ZZSELKZ') TO <field>.
|
||||
IF <field> = abap_true.
|
||||
ms_result-index = lv_tabix.
|
||||
EXIT.
|
||||
|
||||
LOOP AT <tab> ASSIGNING <row_selected>.
|
||||
|
||||
ASSIGN ('<ROW_SELECTED>-ZZSELKZ') TO <selkz>.
|
||||
IF <selkz> = abap_false.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
FIELD-SYMBOLS <row_result> TYPE any.
|
||||
ASSIGN ms_result-row->* TO <row_result>.
|
||||
|
||||
IF check_table_line = abap_true.
|
||||
FIELD-SYMBOLS <table_line_selected> TYPE any.
|
||||
ASSIGN ('<ROW_SELECTED>-TAB_LINE') TO <table_line_selected>.
|
||||
<row_result> = <table_line_selected>.
|
||||
ELSE.
|
||||
<row_result> = CORRESPONDING #( <row_selected> ).
|
||||
ENDIF.
|
||||
EXIT.
|
||||
ENDLOOP.
|
||||
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
|
|
|
@ -264,6 +264,7 @@ public section.
|
|||
importing
|
||||
!UNIT type CLIKE optional
|
||||
!FOOTERCOLOR type CLIKE optional
|
||||
!blocked type CLIKE optional
|
||||
!FRAMETYPE type CLIKE optional
|
||||
!PRIORITY type CLIKE optional
|
||||
!PRIORITYTEXT type CLIKE optional
|
||||
|
@ -6757,6 +6758,7 @@ ENDMETHOD.
|
|||
t_prop = VALUE #(
|
||||
( n = `unit` v = unit )
|
||||
( n = `footerColor` v = footerColor )
|
||||
( n = `blocked` v = z2ui5_cl_util_func=>boolean_abap_2_json( blocked ) )
|
||||
( n = `frameType` v = frameType )
|
||||
( n = `priority` v = priority )
|
||||
( n = `priorityText` v = priorityText )
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
INTERFACE z2ui5_if_app PUBLIC.
|
||||
INTERFACES if_serializable_object.
|
||||
|
||||
DATA id TYPE string.
|
||||
DATA id_draft TYPE string.
|
||||
DATA id_app TYPE string.
|
||||
|
||||
METHODS main
|
||||
IMPORTING
|
||||
|
|
Loading…
Reference in New Issue
Block a user