mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 22:04:38 +08:00
parent
4a514c688d
commit
e4f0f44c56
|
@ -31,6 +31,14 @@ CLASS z2ui5_cl_util_api DEFINITION
|
|||
table TYPE string,
|
||||
END OF ty_s_sql_result.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_fix_val,
|
||||
low TYPE string,
|
||||
high TYPE string,
|
||||
descr TYPE string,
|
||||
END OF ty_s_fix_val.
|
||||
TYPES ty_t_fix_val TYPE STANDARD TABLE OF ty_s_fix_val WITH EMPTY KEY.
|
||||
|
||||
CLASS-METHODS rtti_get_t_attri_by_include
|
||||
IMPORTING
|
||||
type TYPE REF TO cl_abap_datadescr
|
||||
|
@ -43,7 +51,7 @@ CLASS z2ui5_cl_util_api DEFINITION
|
|||
val TYPE data
|
||||
langu TYPE clike DEFAULT sy-langu
|
||||
RETURNING
|
||||
VALUE(result) TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
VALUE(result) TYPE ty_t_fix_val ##NEEDED.
|
||||
|
||||
CLASS-METHODS source_get_method
|
||||
IMPORTING
|
||||
|
@ -358,33 +366,8 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_util_api IMPLEMENTATION.
|
||||
CLASS Z2UI5_CL_UTIL_API IMPLEMENTATION.
|
||||
|
||||
METHOD rtti_tab_get_relative_name.
|
||||
|
||||
FIELD-SYMBOLS <table> TYPE any.
|
||||
|
||||
TRY.
|
||||
DATA(typedesc) = cl_abap_typedescr=>describe_by_data( table ).
|
||||
|
||||
CASE typedesc->kind.
|
||||
|
||||
WHEN cl_abap_typedescr=>kind_table.
|
||||
DATA(tabledesc) = CAST cl_abap_tabledescr( typedesc ).
|
||||
DATA(structdesc) = CAST cl_abap_structdescr( tabledesc->get_table_line_type( ) ).
|
||||
result = structdesc->get_relative_name( ).
|
||||
RETURN.
|
||||
|
||||
WHEN typedesc->kind_ref.
|
||||
|
||||
ASSIGN table->* TO <table>.
|
||||
result = rtti_tab_get_relative_name( <table> ).
|
||||
|
||||
ENDCASE.
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD boolean_abap_2_json.
|
||||
|
||||
|
@ -849,7 +832,6 @@ CLASS z2ui5_cl_util_api IMPLEMENTATION.
|
|||
* DATA(lo_ele) = CAST cl_abap_elemdescr( cl_abap_typedescr=>describe_by_data( val ) ).
|
||||
*
|
||||
* DATA lv_langu TYPE c LENGTH 1.
|
||||
*
|
||||
* lv_langu = langu.
|
||||
*
|
||||
* lo_ele->get_ddic_fixed_values(
|
||||
|
@ -865,14 +847,39 @@ CLASS z2ui5_cl_util_api IMPLEMENTATION.
|
|||
* LOOP AT lt_values REFERENCE INTO DATA(lr_fix).
|
||||
*
|
||||
* INSERT VALUE #(
|
||||
* n = lr_fix->low
|
||||
* v = lr_fix->ddtext
|
||||
* low = lr_fix->low
|
||||
* high = lr_fix->high
|
||||
* descr = lr_fix->ddtext
|
||||
* ) INTO TABLE result.
|
||||
*
|
||||
* ENDLOOP.
|
||||
|
||||
ASSERT 1 = 0.
|
||||
result = VALUE #( ( n = val v = langu ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD rtti_tab_get_relative_name.
|
||||
|
||||
FIELD-SYMBOLS <table> TYPE any.
|
||||
|
||||
TRY.
|
||||
DATA(typedesc) = cl_abap_typedescr=>describe_by_data( table ).
|
||||
|
||||
CASE typedesc->kind.
|
||||
|
||||
WHEN cl_abap_typedescr=>kind_table.
|
||||
DATA(tabledesc) = CAST cl_abap_tabledescr( typedesc ).
|
||||
DATA(structdesc) = CAST cl_abap_structdescr( tabledesc->get_table_line_type( ) ).
|
||||
result = structdesc->get_relative_name( ).
|
||||
RETURN.
|
||||
|
||||
WHEN typedesc->kind_ref.
|
||||
|
||||
ASSIGN table->* TO <table>.
|
||||
result = rtti_tab_get_relative_name( <table> ).
|
||||
|
||||
ENDCASE.
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
|
|
@ -72,15 +72,29 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION.
|
|||
attri = REF #( mt_attri )
|
||||
app = mo_app ).
|
||||
lo_model->attri_before_save( ).
|
||||
|
||||
result = z2ui5_cl_util=>xml_stringify( me ).
|
||||
|
||||
CATCH cx_root INTO DATA(x2).
|
||||
TRY.
|
||||
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `<p>` && x2->get_text( ) && `<p> Please check if all generic data references are public attributes of your class`.
|
||||
DATA(lo_dissolver) = NEW z2ui5_cl_core_dissolve_srv(
|
||||
attri = REF #( mt_attri )
|
||||
app = mo_app ).
|
||||
|
||||
lo_dissolver->main( ).
|
||||
lo_dissolver->main( ).
|
||||
lo_model = NEW z2ui5_cl_core_attri_srv(
|
||||
attri = REF #( mt_attri )
|
||||
app = mo_app ).
|
||||
lo_model->attri_before_save( ).
|
||||
|
||||
result = z2ui5_cl_util=>xml_stringify( me ).
|
||||
|
||||
CATCH cx_root.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `<p>` && x2->get_text( ) && `<p> Please check if all generic data references are public attributes of your class`.
|
||||
ENDTRY.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
340
src/02/02/z2ui5_cl_popup_get_variant.clas.abap
Normal file
340
src/02/02/z2ui5_cl_popup_get_variant.clas.abap
Normal file
|
@ -0,0 +1,340 @@
|
|||
CLASS z2ui5_cl_popup_get_variant DEFINITION
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_layo,
|
||||
layout TYPE c LENGTH 12,
|
||||
tab TYPE c LENGTH 30,
|
||||
descr TYPE c LENGTH 50,
|
||||
classname TYPE c LENGTH 30,
|
||||
def TYPE c LENGTH 1,
|
||||
uname TYPE c LENGTH 12,
|
||||
selkz TYPE abap_bool,
|
||||
END OF ty_s_layo.
|
||||
TYPES ty_t_layo TYPE STANDARD TABLE OF ty_s_layo WITH EMPTY KEY.
|
||||
|
||||
DATA mv_layout TYPE string.
|
||||
DATA mv_descr TYPE string.
|
||||
DATA mv_usr TYPE string.
|
||||
DATA mv_def TYPE string.
|
||||
|
||||
DATA mt_t001 TYPE ty_t_layo.
|
||||
|
||||
CLASS-METHODS factory_save
|
||||
IMPORTING
|
||||
val TYPE z2ui5_cl_util=>ty_t_filter_multi
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO z2ui5_cl_popup_get_variant.
|
||||
|
||||
CLASS-METHODS factory_load
|
||||
IMPORTING
|
||||
val TYPE z2ui5_cl_util=>ty_t_filter_multi
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO z2ui5_cl_popup_get_variant.
|
||||
|
||||
METHODS db_read_multi.
|
||||
METHODS db_save.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_result,
|
||||
t_sql TYPE z2ui5_cl_util=>ty_t_filter_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.
|
||||
METHODS render_open.
|
||||
METHODS render_delete.
|
||||
METHODS render_save.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_popup_get_variant IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD db_read_multi.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD db_save.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD factory_load.
|
||||
|
||||
r_result = NEW #( ).
|
||||
r_result->ms_result-t_sql = val.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD factory_save.
|
||||
|
||||
r_result = NEW #( ).
|
||||
r_result->ms_result-t_sql = val.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD popup_display.
|
||||
|
||||
render_delete( ).
|
||||
render_open( ).
|
||||
render_save( ).
|
||||
|
||||
DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
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 render_delete.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
|
||||
DATA(dialog) = popup->dialog( title = 'Layout'
|
||||
afterclose = client->_event( 'CLOSE' ) ).
|
||||
|
||||
dialog->table(
|
||||
headertext = 'Layout'
|
||||
mode = 'SingleSelectLeft'
|
||||
items = client->_bind_edit( mt_t001 )
|
||||
)->columns(
|
||||
)->column( )->text( 'Layout' )->get_parent(
|
||||
)->column( )->text( 'Description'
|
||||
)->get_parent( )->get_parent(
|
||||
)->items(
|
||||
)->column_list_item( selected = '{SELKZ}'
|
||||
)->cells(
|
||||
)->text( '{LAYOUT}'
|
||||
)->text( '{DESCR}' ).
|
||||
|
||||
dialog->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
)->button(
|
||||
text = 'Back'
|
||||
icon = 'sap-icon://nav-back'
|
||||
press = client->_event( 'CLOSE' )
|
||||
)->button(
|
||||
text = 'Delete'
|
||||
press = client->_event( 'DELETE_SELECT' )
|
||||
type = 'Reject'
|
||||
icon = 'sap-icon://delete' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD render_open.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
|
||||
DATA(dialog) = popup->dialog( title = 'Layout'
|
||||
afterclose = client->_event( 'CLOSE' ) ).
|
||||
|
||||
dialog->table(
|
||||
headertext = 'Layout'
|
||||
mode = 'SingleSelectLeft'
|
||||
items = client->_bind_edit( mt_t001 )
|
||||
)->columns(
|
||||
)->column( )->text( 'Layout' )->get_parent(
|
||||
)->column( )->text( 'Description' )->get_parent(
|
||||
)->column( )->text( 'Default' )->get_parent(
|
||||
)->get_parent(
|
||||
)->items(
|
||||
)->column_list_item( selected = '{SELKZ}'
|
||||
)->cells(
|
||||
)->text( '{LAYOUT}'
|
||||
)->text( '{DESCR}'
|
||||
)->text( '{DEF}' ).
|
||||
|
||||
dialog->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
)->button(
|
||||
text = 'Back'
|
||||
icon = 'sap-icon://nav-back'
|
||||
press = client->_event( 'CLOSE' )
|
||||
)->button(
|
||||
text = 'Open'
|
||||
icon = 'sap-icon://accept'
|
||||
press = client->_event( 'OPEN_SELECT' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD render_save.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
|
||||
DATA(dialog) = popup->dialog( title = 'Save'
|
||||
afterclose = client->_event( 'SAVE_CLOSE' ) ).
|
||||
|
||||
DATA(form) = dialog->simple_form( title = 'Layout'
|
||||
editable = abap_true
|
||||
labelspanxl = `4`
|
||||
labelspanl = `4`
|
||||
labelspanm = `4`
|
||||
labelspans = `4`
|
||||
adjustlabelspan = abap_false
|
||||
).
|
||||
|
||||
form->toolbar( )->title( 'Layout' ).
|
||||
|
||||
form->content( 'form'
|
||||
)->label( 'Layout'
|
||||
)->input( client->_bind_edit( mv_layout )
|
||||
)->label( 'Description'
|
||||
)->input( client->_bind_edit( mv_descr ) ).
|
||||
|
||||
form->toolbar( )->title( `` ).
|
||||
|
||||
form->content( 'form'
|
||||
)->label( 'Default Layout'
|
||||
)->switch( type = 'AcceptReject' state = client->_bind_edit( mv_def )
|
||||
)->label( 'User specific'
|
||||
)->switch( type = 'AcceptReject' state = client->_bind_edit( mv_usr )
|
||||
).
|
||||
|
||||
dialog->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
)->button(
|
||||
text = 'Back'
|
||||
icon = 'sap-icon://nav-back'
|
||||
press = client->_event( 'SAVE_CLOSE' )
|
||||
)->button(
|
||||
text = 'Save'
|
||||
press = client->_event( 'SAVE_SAVE' )
|
||||
type = 'Success'
|
||||
icon = 'sap-icon://save' ).
|
||||
|
||||
client->popup_display( popup->get_root( )->xml_get( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD result.
|
||||
result = ms_result.
|
||||
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=>filter_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/02/02/z2ui5_cl_popup_get_variant.clas.xml
Normal file
16
src/02/02/z2ui5_cl_popup_get_variant.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_VARIANT</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>ui - popup get sel variants</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -15,6 +15,7 @@ CLASS z2ui5_cl_popup_layout_v2 DEFINITION
|
|||
ddlanguage TYPE string,
|
||||
ddtext TYPE string,
|
||||
END OF fixvalue.
|
||||
|
||||
TYPES fixvalues TYPE STANDARD TABLE OF fixvalue WITH EMPTY KEY.
|
||||
TYPES ty_s_t001 TYPE z2ui5_t001.
|
||||
TYPES ty_t_t001 TYPE STANDARD TABLE OF ty_s_t001 WITH EMPTY KEY.
|
||||
|
|
Loading…
Reference in New Issue
Block a user