mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 20:36:46 +08:00
extended message handling and popups (#1552)
This commit is contained in:
parent
9670856f1c
commit
54aa1fc5d8
|
@ -60,7 +60,7 @@ CLASS z2ui5_cl_util DEFINITION
|
||||||
END OF ty_s_sql.
|
END OF ty_s_sql.
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_S_msg,
|
BEGIN OF ty_s_msg,
|
||||||
text TYPE string,
|
text TYPE string,
|
||||||
id TYPE string,
|
id TYPE string,
|
||||||
no TYPE string,
|
no TYPE string,
|
||||||
|
@ -69,8 +69,9 @@ CLASS z2ui5_cl_util DEFINITION
|
||||||
v2 TYPE string,
|
v2 TYPE string,
|
||||||
v3 TYPE string,
|
v3 TYPE string,
|
||||||
v4 TYPE string,
|
v4 TYPE string,
|
||||||
|
timestampl type timestampl,
|
||||||
END OF ty_s_msg,
|
END OF ty_s_msg,
|
||||||
ty_T_msg TYPE STANDARD TABLE OF ty_S_msg WITH EMPTY KEY.
|
ty_t_msg TYPE STANDARD TABLE OF ty_S_msg WITH EMPTY KEY.
|
||||||
|
|
||||||
CLASS-METHODS ui5_get_msg_type
|
CLASS-METHODS ui5_get_msg_type
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
@ -82,7 +83,7 @@ CLASS z2ui5_cl_util DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
val TYPE any
|
val TYPE any
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(result) TYPE ty_T_msg.
|
VALUE(result) TYPE ty_t_msg.
|
||||||
|
|
||||||
CLASS-METHODS rtti_get_t_attri_by_include
|
CLASS-METHODS rtti_get_t_attri_by_include
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
@ -458,6 +459,13 @@ CLASS z2ui5_cl_util DEFINITION
|
||||||
VALUE(result) TYPE abap_bool.
|
VALUE(result) TYPE abap_bool.
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
CLASS-METHODS msg_map
|
||||||
|
IMPORTING
|
||||||
|
name TYPE clike
|
||||||
|
val TYPE data
|
||||||
|
is_msg TYPE z2ui5_cl_util=>ty_s_msg
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE z2ui5_cl_util=>ty_s_msg.
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
@ -1404,7 +1412,7 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
|
||||||
CASE lv_kind.
|
CASE lv_kind.
|
||||||
|
|
||||||
WHEN cl_abap_datadescr=>typekind_table.
|
WHEN cl_abap_datadescr=>typekind_table.
|
||||||
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
FIELD-SYMBOLS <tab> TYPE ANY TABLE.
|
||||||
ASSIGN val TO <tab>.
|
ASSIGN val TO <tab>.
|
||||||
LOOP AT <tab> ASSIGNING FIELD-SYMBOL(<row>).
|
LOOP AT <tab> ASSIGNING FIELD-SYMBOL(<row>).
|
||||||
DATA(lt_tab) = msg_get( <row> ).
|
DATA(lt_tab) = msg_get( <row> ).
|
||||||
|
@ -1423,24 +1431,15 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
|
||||||
LOOP AT lt_attri REFERENCE INTO DATA(ls_attri).
|
LOOP AT lt_attri REFERENCE INTO DATA(ls_attri).
|
||||||
DATA(lv_name) = |VAL-{ ls_attri->name }|.
|
DATA(lv_name) = |VAL-{ ls_attri->name }|.
|
||||||
ASSIGN (lv_name) TO FIELD-SYMBOL(<comp>).
|
ASSIGN (lv_name) TO FIELD-SYMBOL(<comp>).
|
||||||
CASE ls_attri->name.
|
|
||||||
WHEN 'ID' OR 'MSGID'.
|
IF ls_attri->name = 'ITEM'.
|
||||||
ls_result-id = <comp>.
|
lt_tab = msg_get( <comp> ).
|
||||||
WHEN 'NO' OR 'NUMBER' OR 'MSGNO'.
|
INSERT LINES OF lt_tab INTO TABLE result.
|
||||||
ls_result-no = <comp>.
|
RETURN.
|
||||||
WHEN 'MESSAGE' OR 'TEXT'.
|
ELSE.
|
||||||
ls_result-text = <comp>.
|
ls_result = msg_map( name = ls_attri->name val = <comp> is_msg = ls_result ).
|
||||||
WHEN 'TYPE' OR 'MSGTY'.
|
ENDIF.
|
||||||
ls_result-type = <comp>.
|
|
||||||
WHEN 'MESSAGE_V1' OR 'MSGV1' OR 'V1'.
|
|
||||||
ls_result-v1 = <comp>.
|
|
||||||
WHEN 'MESSAGE_V2' OR 'MSGV2' OR 'V2'.
|
|
||||||
ls_result-v2 = <comp>.
|
|
||||||
WHEN 'MESSAGE_V3' OR 'MSGV3' OR 'V3'.
|
|
||||||
ls_result-v3 = <comp>.
|
|
||||||
WHEN 'MESSAGE_V4' OR 'MSGV4' OR 'V4'.
|
|
||||||
ls_result-v4 = <comp>.
|
|
||||||
ENDCASE.
|
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
IF ls_result-text IS INITIAL AND ls_result-id IS NOT INITIAL.
|
IF ls_result-text IS INITIAL AND ls_result-id IS NOT INITIAL.
|
||||||
MESSAGE ID ls_result-id TYPE 'I' NUMBER ls_result-no
|
MESSAGE ID ls_result-id TYPE 'I' NUMBER ls_result-no
|
||||||
|
@ -1458,28 +1457,55 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
|
||||||
WHERE visibility = 'U'.
|
WHERE visibility = 'U'.
|
||||||
lv_name = |VAL->{ ls_attri_o->name }|.
|
lv_name = |VAL->{ ls_attri_o->name }|.
|
||||||
ASSIGN (lv_name) TO <comp>.
|
ASSIGN (lv_name) TO <comp>.
|
||||||
CASE ls_attri_o->name.
|
ls_result = msg_map( name = ls_attri_o->name val = <comp> is_msg = ls_result ).
|
||||||
WHEN 'ID' OR 'MSGID'.
|
|
||||||
ls_result-id = <comp>.
|
|
||||||
WHEN 'NO' OR 'NUMBER' OR 'MSGNO'.
|
|
||||||
ls_result-no = <comp>.
|
|
||||||
WHEN 'MESSAGE'.
|
|
||||||
ls_result-text = <comp>.
|
|
||||||
WHEN 'TYPE' OR 'MSGTY'.
|
|
||||||
ls_result-type = <comp>.
|
|
||||||
WHEN 'MESSAGE_V1' OR 'MSGV1'.
|
|
||||||
ls_result-v1 = <comp>.
|
|
||||||
WHEN 'MESSAGE_V2' OR 'MSGV2'.
|
|
||||||
ls_result-v2 = <comp>.
|
|
||||||
WHEN 'MESSAGE_V3' OR 'MSGV3'.
|
|
||||||
ls_result-v3 = <comp>.
|
|
||||||
WHEN 'MESSAGE_V4' OR 'MSGV4'.
|
|
||||||
ls_result-v4 = <comp>.
|
|
||||||
ENDCASE.
|
|
||||||
|
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
INSERT ls_result INTO TABLE result.
|
INSERT ls_result INTO TABLE result.
|
||||||
CATCH cx_root.
|
CATCH cx_root.
|
||||||
|
|
||||||
|
DATA obj TYPE REF TO object.
|
||||||
|
obj = val.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
|
||||||
|
DATA lr_tab TYPE REF TO data.
|
||||||
|
CREATE DATA lr_tab TYPE ('if_bali_log=>ty_item_table').
|
||||||
|
ASSIGN lr_tab->* TO FIELD-SYMBOL(<tab2>).
|
||||||
|
|
||||||
|
CALL METHOD obj->(`IF_BALI_LOG~GET_ALL_ITEMS`)
|
||||||
|
RECEIVING
|
||||||
|
item_table = <tab2>.
|
||||||
|
|
||||||
|
DATA(lt_tab2) = msg_get( <tab2> ).
|
||||||
|
INSERT LINES OF lt_tab2 INTO TABLE result.
|
||||||
|
|
||||||
|
CATCH cx_root.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
|
||||||
|
CREATE DATA lr_tab TYPE ('BAPIRETTAB').
|
||||||
|
ASSIGN lr_tab->* TO <tab2>.
|
||||||
|
|
||||||
|
CALL METHOD obj->(`ZIF_LOGGER~EXPORT_TO_TABLE`)
|
||||||
|
RECEIVING
|
||||||
|
rt_bapiret = <tab2>.
|
||||||
|
|
||||||
|
lt_tab2 = msg_get( <tab2> ).
|
||||||
|
INSERT LINES OF lt_tab2 INTO TABLE result.
|
||||||
|
|
||||||
|
CATCH cx_root INTO DATA(lx2).
|
||||||
|
|
||||||
|
|
||||||
|
lt_attri_o = z2ui5_cl_util=>rtti_get_t_attri_by_oref( val ).
|
||||||
|
LOOP AT lt_attri_o REFERENCE INTO ls_attri_o
|
||||||
|
WHERE visibility = 'U'.
|
||||||
|
lv_name = |OBJ->{ ls_attri_o->name }|.
|
||||||
|
ASSIGN (lv_name) TO <comp>.
|
||||||
|
ls_result = msg_map( name = ls_attri_o->name val = <comp> is_msg = ls_result ).
|
||||||
|
ENDLOOP.
|
||||||
|
INSERT ls_result INTO TABLE result.
|
||||||
|
|
||||||
|
ENDTRY.
|
||||||
|
ENDTRY.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
WHEN OTHERS.
|
WHEN OTHERS.
|
||||||
|
@ -1516,4 +1542,29 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
|
||||||
).
|
).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD msg_map.
|
||||||
|
|
||||||
|
result = is_msg.
|
||||||
|
CASE name.
|
||||||
|
WHEN 'ID' OR 'MSGID'.
|
||||||
|
result-id = val.
|
||||||
|
WHEN 'NO' OR 'NUMBER' OR 'MSGNO'.
|
||||||
|
result-no = val.
|
||||||
|
WHEN 'MESSAGE' OR 'TEXT'.
|
||||||
|
result-text = val.
|
||||||
|
WHEN 'TYPE' OR 'MSGTY'.
|
||||||
|
result-type = val.
|
||||||
|
WHEN 'MESSAGE_V1' OR 'MSGV1' OR 'V1'.
|
||||||
|
result-v1 = val.
|
||||||
|
WHEN 'MESSAGE_V2' OR 'MSGV2' OR 'V2'.
|
||||||
|
result-v2 = val.
|
||||||
|
WHEN 'MESSAGE_V3' OR 'MSGV3' OR 'V3'.
|
||||||
|
result-v3 = val.
|
||||||
|
WHEN 'MESSAGE_V4' OR 'MSGV4' OR 'V4'.
|
||||||
|
result-v4 = val.
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
123
src/02/01/z2ui5_cl_pop_bal.clas.abap
Normal file
123
src/02/01/z2ui5_cl_pop_bal.clas.abap
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
CLASS z2ui5_cl_pop_bal DEFINITION
|
||||||
|
PUBLIC FINAL
|
||||||
|
CREATE PUBLIC.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
INTERFACES z2ui5_if_app.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_s_msg,
|
||||||
|
type TYPE string,
|
||||||
|
id TYPE string,
|
||||||
|
title TYPE string,
|
||||||
|
subtitle TYPE string,
|
||||||
|
number TYPE string,
|
||||||
|
time TYPE string,
|
||||||
|
date TYPE string,
|
||||||
|
message TYPE string,
|
||||||
|
message_v1 TYPE string,
|
||||||
|
message_v2 TYPE string,
|
||||||
|
message_v3 TYPE string,
|
||||||
|
message_v4 TYPE string,
|
||||||
|
group TYPE string,
|
||||||
|
END OF ty_s_msg.
|
||||||
|
TYPES ty_t_msg TYPE STANDARD TABLE OF ty_s_msg.
|
||||||
|
|
||||||
|
DATA mt_msg TYPE ty_t_msg.
|
||||||
|
|
||||||
|
CLASS-METHODS factory
|
||||||
|
IMPORTING
|
||||||
|
i_messages TYPE any
|
||||||
|
i_title TYPE string DEFAULT `abap2UI5 - Business Application Log`
|
||||||
|
RETURNING
|
||||||
|
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_bal.
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
|
DATA client TYPE REF TO z2ui5_if_client.
|
||||||
|
DATA title TYPE string.
|
||||||
|
DATA check_initialized TYPE abap_bool.
|
||||||
|
|
||||||
|
METHODS view_display.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
CLASS z2ui5_cl_pop_bal IMPLEMENTATION.
|
||||||
|
METHOD factory.
|
||||||
|
|
||||||
|
r_result = NEW #( ).
|
||||||
|
|
||||||
|
"read log infos
|
||||||
|
"handle
|
||||||
|
"..
|
||||||
|
|
||||||
|
"read messages..
|
||||||
|
DATA(lt_msg) = z2ui5_cl_util=>msg_get( i_messages ).
|
||||||
|
LOOP AT lt_msg REFERENCE INTO DATA(lr_row).
|
||||||
|
|
||||||
|
DATA(ls_row) = VALUE ty_s_msg( ).
|
||||||
|
ls_row-type = z2ui5_cl_util=>ui5_get_msg_type( lr_row->type ).
|
||||||
|
ls_row-title = lr_row->text.
|
||||||
|
* lr_row->title = `title`.
|
||||||
|
* lr_row->message = `message`.
|
||||||
|
ls_row-subtitle = |{ lr_row->id } { lr_row->no }|.
|
||||||
|
ls_row-date = z2ui5_cl_util=>time_get_date_by_stampl( lr_row->timestampl ).
|
||||||
|
ls_row-time = z2ui5_cl_util=>time_get_time_by_stampl( lr_row->timestampl ).
|
||||||
|
* lr_row->group = `001`.
|
||||||
|
|
||||||
|
INSERT ls_row INTO TABLE r_result->mt_msg.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
r_result->title = i_title.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD view_display.
|
||||||
|
|
||||||
|
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||||
|
popup = popup->dialog( title = `Messages`
|
||||||
|
contentheight = '50%'
|
||||||
|
contentwidth = '50%'
|
||||||
|
verticalScrolling = abap_false
|
||||||
|
afterclose = client->_event( 'BUTTON_CONTINUE' )
|
||||||
|
).
|
||||||
|
|
||||||
|
popup->message_view( items = client->_bind( mt_msg )
|
||||||
|
* groupitems = abap_true
|
||||||
|
)->message_item( type = `{TYPE}`
|
||||||
|
title = `{TITLE}`
|
||||||
|
subtitle = `{SUBTITLE}`
|
||||||
|
* description = `{MESSAGE}`
|
||||||
|
* groupname = `{GROUP}`
|
||||||
|
).
|
||||||
|
|
||||||
|
popup->buttons(
|
||||||
|
)->button( text = 'continue'
|
||||||
|
press = client->_event( 'BUTTON_CONTINUE' )
|
||||||
|
type = 'Emphasized' ).
|
||||||
|
|
||||||
|
client->popup_display( popup->stringify( ) ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD z2ui5_if_app~main.
|
||||||
|
|
||||||
|
me->client = client.
|
||||||
|
|
||||||
|
IF check_initialized = abap_false.
|
||||||
|
check_initialized = abap_true.
|
||||||
|
view_display( ).
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
CASE client->get( )-event.
|
||||||
|
WHEN `BUTTON_CONTINUE`.
|
||||||
|
client->popup_destroy( ).
|
||||||
|
client->nav_app_leave( ).
|
||||||
|
WHEN OTHERS.
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
ENDCLASS.
|
16
src/02/01/z2ui5_cl_pop_bal.clas.xml
Normal file
16
src/02/01/z2ui5_cl_pop_bal.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_POP_BAL</CLSNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>ui - business application log</DESCRIPT>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -26,7 +26,7 @@ CLASS z2ui5_cl_pop_messages DEFINITION
|
||||||
|
|
||||||
CLASS-METHODS factory
|
CLASS-METHODS factory
|
||||||
IMPORTING
|
IMPORTING
|
||||||
i_messages TYPE STANDARD TABLE
|
i_messages TYPE any
|
||||||
i_title TYPE string DEFAULT `abap2UI5 - Message Popup`
|
i_title TYPE string DEFAULT `abap2UI5 - Message Popup`
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_messages.
|
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_messages.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user