@@ -4,6 +4,41 @@ CLASS z2ui5_sql_cl_app_01 DEFINITION PUBLIC.
44
55 INTERFACES z2ui5_if_app.
66
7+ TYPES :
8+ BEGIN OF ty_value_map,
9+ pc TYPE string ,
10+ ea TYPE string ,
11+ END OF ty_value_map.
12+
13+ TYPES :
14+ BEGIN OF ty_column_config,
15+ label TYPE string ,
16+ property TYPE string ,
17+ type TYPE string ,
18+ unit TYPE string ,
19+ delimiter TYPE abap_bool ,
20+ unit_property TYPE string ,
21+ width TYPE string ,
22+ scale TYPE i ,
23+ text_align TYPE string ,
24+ display_unit TYPE string ,
25+ true_value TYPE string ,
26+ false_value TYPE string ,
27+ template TYPE string ,
28+ input_format TYPE string ,
29+ wrap TYPE abap_bool ,
30+ auto_scale TYPE abap_bool ,
31+ timezone TYPE string ,
32+ timezone_property TYPE string ,
33+ display_timezone TYPE abap_bool ,
34+ utc TYPE abap_bool ,
35+ value_map TYPE ty_value_map,
36+ END OF ty_column_config.
37+
38+ DATA : mt_column_config TYPE STANDARD TABLE OF ty_column_config WITH EMPTY KEY .
39+ DATA : mv_column_config TYPE string .
40+
41+
742 TYPES :
843 BEGIN OF ty_history_out,
944 s_db TYPE z2ui5_sql_cl_history_api=>ty_s_entry,
@@ -71,7 +106,6 @@ CLASS z2ui5_sql_cl_app_01 DEFINITION PUBLIC.
71106 DATA client TYPE REF TO z2ui5_if_client.
72107
73108 METHODS z2ui5_view_display.
74- METHODS z2ui5_view_settings_popup.
75109 METHODS sql_db_read.
76110
77111
@@ -112,8 +146,7 @@ ENDCLASS.
112146
113147
114148
115- CLASS z2ui5_sql_cl_app_01 IMPLEMENTATION .
116-
149+ CLASS Z2UI5_SQL_CL_APP_01 IMPLEMENTATION .
117150
118151
119152 METHOD history_db_read .
@@ -340,6 +373,7 @@ CLASS z2ui5_sql_cl_app_01 IMPLEMENTATION.
340373 ASSIGN ms_draft-s_preview-tab->* TO <tab> .
341374
342375 DATA (tab ) = lo_view_nested->ui_table(
376+ id = `previewTab`
343377 rows = client->_bind_local( <tab> )
344378 editable = abap_false
345379 alternaterowcolors = abap_true
@@ -355,6 +389,12 @@ CLASS z2ui5_sql_cl_app_01 IMPLEMENTATION.
355389 )->input( width = `30%` value = client->_bind_edit( ms_draft-s_preview-search_field ) description = `All Column Search`
356390 submit = client->_event( `PREVIEW_SEARCH` )
357391 )->toolbar_spacer(
392+ )->_z2ui5( )->spreadsheet_export( tableid = `previewTab` icon = 'sap-icon://excel-attachment' type = 'Emphasized'
393+ columnconfig = client->_bind( val = mt_column_config
394+ custom_filter = NEW z2ui5_cl_cc_spreadsheet( )
395+ custom_mapper = z2ui5_cl_ajson_mapping=>create_lower_case( )
396+ )
397+ )->get_parent(
358398 ).
359399
360400 DATA (lt_fields ) = z2ui5_cl_util=>rtti_get_t_attri_by_struc( <tab> ).
@@ -373,6 +413,7 @@ CLASS z2ui5_sql_cl_app_01 IMPLEMENTATION.
373413
374414 ENDMETHOD .
375415
416+
376417 METHOD result_display .
377418
378419 DATA : lo_descr_table TYPE REF TO cl_abap_tabledescr,
@@ -398,6 +439,8 @@ CLASS z2ui5_sql_cl_app_01 IMPLEMENTATION.
398439
399440 MODIFY lt_comp FROM ls_comp.
400441
442+ APPEND VALUE ty_column_config( label = ls_comp-name property = ls_comp-name type = `String` ) TO mt_column_config.
443+
401444 ENDLOOP .
402445
403446 DATA (lo_new_type ) = cl_abap_structdescr=>create( lt_comp ).
@@ -425,6 +468,7 @@ CLASS z2ui5_sql_cl_app_01 IMPLEMENTATION.
425468 history_db_save( ).
426469 client->view_model_update( ).
427470
471+
428472 ENDMETHOD .
429473
430474
@@ -446,17 +490,18 @@ CLASS z2ui5_sql_cl_app_01 IMPLEMENTATION.
446490
447491 ENDMETHOD .
448492
493+
449494 METHOD sql_on_run .
450495
451496 z2ui5_scl_cl_query_on_prem=>sql_logic(
452497 EXPORTING
453498 query = ms_draft-sql_input
454499 max_rows = ms_draft-sql_max_rows
455500 IMPORTING
456- lw_from = data (lw_from )
457- lo_result = data (lo_result )
458- lw_query = data (lw_query )
459- lt_fieldlist2 = data (lt_fieldlist2 )
501+ lw_from = DATA (lw_from )
502+ lo_result = DATA (lo_result )
503+ lw_query = DATA (lw_query )
504+ lt_fieldlist2 = DATA (lt_fieldlist2 )
460505 ).
461506
462507 result_display(
@@ -486,7 +531,16 @@ CLASS z2ui5_sql_cl_app_01 IMPLEMENTATION.
486531
487532 IF ms_control-check_initialized = abap_false .
488533 ms_control-check_initialized = abap_true .
489- z2ui5_on_init_set_app( ).
534+
535+ client->view_display( z2ui5_cl_xml_view=>factory(
536+ )->_z2ui5( )->timer( client->_event( `START` )
537+ )->_generic( ns = `html` name = `script` )->_cc_plain_xml( z2ui5_cl_cc_spreadsheet=>get_js( )
538+ )->stringify( ) ).
539+
540+ * client->nav_app_call( z2ui5_cl_popup_js_loader=>factory( z2ui5_cl_cc_spreadsheet=>get_js( mv_column_config ) ) ).
541+
542+
543+ * z2ui5_on_init_set_app( ).
490544 RETURN .
491545 ENDIF .
492546
@@ -561,8 +615,8 @@ CLASS z2ui5_sql_cl_app_01 IMPLEMENTATION.
561615 z2ui5_sql_cl_history_api=>db_create_draft( client->get( )-s_draft-id ).
562616
563617 CASE client->get( )-event.
564- WHEN 'VIEW_SETTINGS_DIALOG ' .
565- z2ui5_view_settings_popup ( ).
618+ WHEN 'START ' .
619+ z2ui5_on_init_set_app ( ).
566620
567621 WHEN `PREVIEW_FILTER` .
568622 client->nav_app_call( z2ui5_cl_popup_get_range_multi=>factory( ms_draft-s_preview-t_filter ) ).
@@ -594,7 +648,7 @@ CLASS z2ui5_sql_cl_app_01 IMPLEMENTATION.
594648 ENDMETHOD .
595649
596650
597- METHOD z2ui5_on_init_set_app .
651+ METHOD z2ui5_on_init_set_app .
598652
599653 ms_draft-sql_input = `Select * from T100` .
600654 ms_draft-history_cont_size = `30%` .
@@ -662,26 +716,4 @@ CLASS z2ui5_sql_cl_app_01 IMPLEMENTATION.
662716 client->view_display( view->stringify( ) ).
663717
664718 ENDMETHOD .
665-
666-
667- METHOD z2ui5_view_settings_popup .
668- DATA (popup_settings ) = z2ui5_cl_xml_view=>factory_popup( ).
669-
670- popup_settings = popup_settings->view_settings_dialog(
671- confirm = client->_event( 'ALL_EVENT' )
672- sortitems = client->_bind_edit( t_tab_sort )
673- groupitems = client->_bind_edit( t_tab_group )
674- filteritems = client->_bind_edit( t_tab_filter )
675- )->sort_items(
676- )->view_settings_item( text = `{TEXT}` key = `{KEY}` selected = `{SELECTED}` )->get_parent( )->get_parent(
677- )->group_items(
678- )->view_settings_item( text = `{TEXT}` key = `{KEY}` selected = `{SELECTED}` )->get_parent( )->get_parent(
679- )->filter_items(
680- )->view_settings_filter_item( text = `{TEXT}` key = `{KEY}` multiselect = abap_true
681- )->items(
682- )->view_settings_item( text = `{TEXT}` key = `{KEY}` ).
683-
684- client->popup_display( popup_settings->stringify( ) ).
685-
686- ENDMETHOD .
687719ENDCLASS .
0 commit comments