@@ -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
112122ENDCLASS .
@@ -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+
10361118ENDCLASS .
0 commit comments