Skip to content

Commit c030dc3

Browse files
committed
Update
1 parent bf8a096 commit c030dc3

File tree

2 files changed

+168
-83
lines changed

2 files changed

+168
-83
lines changed

src/zsm30_cl_app_01.clas.abap

Lines changed: 128 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ CLASS zsm30_cl_app_01 DEFINITION
1313
DATA mv_table TYPE string.
1414
DATA mt_table_tmp TYPE REF TO data.
1515
DATA mt_table_del TYPE REF TO data.
16+
DATA mv_input TYPE string.
17+
DATA mv_max_rows TYPE int1 VALUE '50'.
1618

1719
PROTECTED SECTION.
1820
TYPES:
@@ -22,6 +24,8 @@ CLASS zsm30_cl_app_01 DEFINITION
2224
END OF ty_s_keys.
2325
TYPES ty_t_keys TYPE STANDARD TABLE OF ty_s_keys WITH EMPTY KEY.
2426

27+
DATA mv_input_visible TYPE abap_bool.
28+
2529
DATA mt_dfies TYPE z2ui5_cl_util=>ty_t_dfies.
2630
DATA client TYPE REF TO z2ui5_if_client.
2731
DATA check_initialized TYPE abap_bool.
@@ -107,6 +111,12 @@ CLASS zsm30_cl_app_01 DEFINITION
107111
METHODS view_model_update.
108112
METHODS on_after_popup.
109113

114+
METHODS redner_input
115+
IMPORTING
116+
!page TYPE REF TO z2ui5_cl_xml_view.
117+
118+
METHODS check_table_name.
119+
110120
PRIVATE SECTION.
111121

112122
ENDCLASS.
@@ -374,7 +384,8 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
374384

375385
SELECT *
376386
FROM (mv_table)
377-
INTO CORRESPONDING FIELDS OF TABLE @<table>.
387+
INTO CORRESPONDING FIELDS OF TABLE @<table>
388+
UP TO @mv_max_rows ROWS.
378389

379390
SORT <table>.
380391

@@ -384,7 +395,10 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
384395

385396
set_row_id( ).
386397

387-
mt_table_tmp->* = mt_table->*.
398+
IF mt_table IS BOUND.
399+
mt_table_tmp->* = mt_table->*.
400+
ENDIF.
401+
388402
ENDMETHOD.
389403

390404
METHOD get_dfies.
@@ -414,6 +428,10 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
414428
METHOD on_init.
415429
get_table_name( ).
416430

431+
IF mv_table IS INITIAL.
432+
RETURN.
433+
ENDIF.
434+
417435
get_data( ).
418436

419437
get_dfies( ).
@@ -439,17 +457,15 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
439457

440458
tab = to_upper( tab ).
441459

442-
IF tab IS INITIAL.
443-
mv_table = 'USR01'. " FALLBACK
444-
ELSE.
445-
mv_table = tab.
446-
ENDIF.
460+
mv_input_visible = COND #( WHEN tab IS INITIAL THEN abap_true ).
447461

448462
ENDMETHOD.
449463

450464
METHOD render_main.
451465
DATA(page) = render_main_head( ).
452466

467+
redner_input( page ).
468+
453469
IF mv_multi_edit = abap_false.
454470

455471
render_table( page ).
@@ -462,10 +478,14 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
462478

463479
render_main_footer( page ).
464480

481+
client->view_display( page->stringify( ) ).
482+
465483
ENDMETHOD.
466484

467485
METHOD render_table.
468486

487+
CHECK mt_table IS BOUND.
488+
469489
DATA(table) = page->table( growing = 'true'
470490
growingthreshold = '100'
471491
width = 'auto'
@@ -485,7 +505,7 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
485505
width = '17.5rem' ).
486506

487507
headder = z2ui5_cl_pop_display_layout=>render_layout_function( xml = headder
488-
client = client ).
508+
client = client ).
489509

490510
DATA(columns) = table->columns( ).
491511

@@ -512,13 +532,13 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
512532
ENDLOOP.
513533

514534
DATA(cells) = columns->get_parent( )->items(
515-
)->column_list_item(
516-
valign = 'Middle'
517-
type = 'Navigation'
518-
* type = 'Active'
519-
press = client->_event( val = 'ROW_SELECT'
520-
t_arg = VALUE #( ( `${ROW_ID}` ) ) )
521-
)->cells( ).
535+
)->column_list_item(
536+
valign = 'Middle'
537+
type = 'Navigation'
538+
* type = 'Active'
539+
press = client->_event( val = 'ROW_SELECT'
540+
t_arg = VALUE #( ( `${ROW_ID}` ) ) )
541+
)->cells( ).
522542

523543
LOOP AT ms_layout-t_layout REFERENCE INTO layout.
524544

@@ -567,23 +587,26 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
567587

568588
METHOD render_main_head.
569589

570-
DATA(view) = z2ui5_cl_xml_view=>factory( )->shell( ).
590+
DATA(view) = z2ui5_cl_xml_view=>factory( )->shell( ).
571591

572-
IF client->get( )-check_launchpad_active = abap_true.
592+
IF client->get( )-check_launchpad_active = abap_true.
573593

574-
result = view->page( showheader = abap_false ).
575-
result->_z2ui5( )->lp_title( mv_table ).
594+
result = view->page( showheader = abap_false ).
595+
result->_z2ui5( )->lp_title( 'SM30' ).
576596

577-
ELSE.
578-
result = view->page( title = mv_table
579-
shownavbutton = abap_false ).
580-
ENDIF.
597+
ELSE.
598+
result = view->page( title = 'SM30'
599+
shownavbutton = abap_false ).
600+
ENDIF.
581601

582602
ENDMETHOD.
583603

584604
METHOD render_main_footer.
605+
606+
CHECK mv_table IS NOT INITIAL.
607+
585608
DATA(footer) = page->footer( )->overflow_toolbar(
586-
)->toolbar_spacer( ).
609+
)->toolbar_spacer( ).
587610

588611
IF mv_multi_edit = abap_true.
589612
footer->button( text = 'Delete'
@@ -616,14 +639,11 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
616639
press = client->_event( 'TRANSPORT_ALL' )
617640
)->menu_item( icon = 'sap-icon://shipping-status'
618641
text = 'Change Transportrequest'
619-
press = client->_event( 'TRANSPORT_CHANGE' )
620-
).
642+
press = client->_event( 'TRANSPORT_CHANGE' ) ).
621643
* ->menu_item( icon = 'sap-icon://key-user-settings'
622644
* text = 'Admin Mode'
623645
* press = client->_event( 'BUTTON_EDIT' ) ).
624646

625-
client->view_display( page->stringify( ) ).
626-
627647
ENDMETHOD.
628648

629649
METHOD row_select.
@@ -636,11 +656,11 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
636656
ENDIF.
637657

638658
client->nav_app_call( ZSM30_cl_app_01a=>factory( io_table = mt_table
639-
iv_row_id = ls_arg
640-
it_dfies = mt_dfies
641-
is_layout = ms_layout
642-
iv_edit_mode = abap_true
643-
iv_tabname = mv_table ) ).
659+
iv_row_id = ls_arg
660+
it_dfies = mt_dfies
661+
is_layout = ms_layout
662+
iv_edit_mode = abap_true
663+
iv_tabname = mv_table ) ).
644664

645665
ENDMETHOD.
646666

@@ -683,6 +703,10 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
683703

684704
ASSIGN mt_table->* TO <tab>.
685705

706+
IF <tab> IS NOT ASSIGNED.
707+
RETURN.
708+
ENDIF.
709+
686710
LOOP AT <tab> ASSIGNING <line>.
687711

688712
ASSIGN COMPONENT 'ROW_ID' OF STRUCTURE <line> TO FIELD-SYMBOL(<row>).
@@ -721,6 +745,10 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
721745

722746
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
723747

748+
WHEN 'INPUT_DONE'.
749+
750+
check_table_name( ).
751+
724752
WHEN 'BUTTON_REFRESH'.
725753

726754
get_data( ).
@@ -742,11 +770,11 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
742770
WHEN 'BUTTON_ADD'.
743771

744772
client->nav_app_call( ZSM30_cl_app_01a=>factory( io_table = mt_table
745-
iv_row_id = ``
746-
it_dfies = mt_dfies
747-
is_layout = ms_layout
748-
iv_edit_mode = abap_false
749-
iv_tabname = mv_table ) ).
773+
iv_row_id = ``
774+
it_dfies = mt_dfies
775+
is_layout = ms_layout
776+
iv_edit_mode = abap_false
777+
iv_tabname = mv_table ) ).
750778

751779
WHEN 'BUTTON_EDIT'.
752780

@@ -773,10 +801,9 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
773801
ENDCASE.
774802
ENDMETHOD.
775803

776-
777804
METHOD on_event_layout.
778805
client = z2ui5_cl_pop_display_layout=>on_event_layout( client = client
779-
layout = ms_layout ).
806+
layout = ms_layout ).
780807
ENDMETHOD.
781808

782809
METHOD on_after_layout.
@@ -818,10 +845,10 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
818845
control = z2ui5_cl_pop_display_layout=>ui_table.
819846
ENDIF.
820847
ms_layout = z2ui5_cl_pop_display_layout=>init_layout( control = control
821-
data = mt_table
822-
handle01 = CONV #( class )
823-
handle02 = CONV #( mv_table )
824-
handle03 = CONV #( 'SIMPLE_VIEW' ) ).
848+
data = mt_table
849+
handle01 = CONV #( class )
850+
handle02 = CONV #( mv_table )
851+
handle03 = CONV #( 'SIMPLE_VIEW' ) ).
825852

826853
ENDMETHOD.
827854

@@ -888,7 +915,7 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
888915
DATA(toolbar) = table->ui_extension( )->overflow_toolbar( )->toolbar_spacer( ).
889916

890917
toolbar = z2ui5_cl_pop_display_layout=>render_layout_function( xml = toolbar
891-
client = client ).
918+
client = client ).
892919

893920
DATA(columns) = table->ui_columns( ).
894921

@@ -1004,7 +1031,7 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
10041031

10051032
METHOD view_model_update.
10061033

1007-
client->view_model_update( ).
1034+
client->view_model_update( ).
10081035

10091036
ENDMETHOD.
10101037

@@ -1033,4 +1060,59 @@ CLASS zsm30_cl_app_01 IMPLEMENTATION.
10331060

10341061
ENDMETHOD.
10351062

1063+
METHOD redner_input.
1064+
1065+
DATA(form) = page->_z2ui5( )->focus( focusid = `ZINPUT`
1066+
1067+
)->simple_form( editable = abap_true
1068+
layout = `ResponsiveGridLayout`
1069+
labelspans = '3'
1070+
labelspanm = '3'
1071+
labelspanl = '3'
1072+
labelspanxl = '3'
1073+
adjustlabelspan = abap_false
1074+
emptyspanxl = '4'
1075+
emptyspanl = '4'
1076+
emptyspanm = '2'
1077+
emptyspans = '0'
1078+
columnsxl = '1'
1079+
columnsl = '1'
1080+
columnsm = '1'
1081+
singlecontainerfullsize = abap_false
1082+
visible = mv_input_visible
1083+
)->content( ns = `form` ).
1084+
1085+
form->label( 'Tablename' )->input( id = `ZINPUT`
1086+
value = client->_bind_edit( mv_input )
1087+
submit = client->_event( 'INPUT_DONE' )
1088+
placeholder = 'Please enter Table Name' ).
1089+
1090+
form->label( 'Rows' )->input( value = client->_bind_edit( mv_max_rows )
1091+
showvaluehelp = abap_false
1092+
submit = client->_event( 'INPUT_DONE' )
1093+
maxlength = '3' ).
1094+
1095+
ENDMETHOD.
1096+
1097+
METHOD check_table_name.
1098+
1099+
mv_table = mv_input.
1100+
1101+
IF mv_table IS INITIAL.
1102+
CLEAR mt_table->*.
1103+
CLEAR mt_table.
1104+
ENDIF.
1105+
1106+
IF mv_max_rows IS INITIAL.
1107+
mv_max_rows = '999'.
1108+
ENDIF.
1109+
1110+
on_init( ).
1111+
1112+
client->view_model_update( ).
1113+
1114+
render_main( ).
1115+
1116+
ENDMETHOD.
1117+
10361118
ENDCLASS.

0 commit comments

Comments
 (0)