mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 19:26:10 +08:00
update generic table (#193)
* update generic table * demos * Update README.md * abalint fixes * Update abaplint.jsonc
This commit is contained in:
parent
1571898a9f
commit
6a280baebb
|
@ -6,7 +6,7 @@ Development of UI5 Apps in pure ABAP. Follow this project on [Twitter](https://t
|
||||||
* pure ABAP – development using 100% ABAP (no JavaScript, DDL, EML or Customizing)
|
* pure ABAP – development using 100% ABAP (no JavaScript, DDL, EML or Customizing)
|
||||||
* low system footprint – based on a plain http handler (no BSP, OData, CDS, BOPF, FE or RAP)
|
* low system footprint – based on a plain http handler (no BSP, OData, CDS, BOPF, FE or RAP)
|
||||||
* cloud and on-premise ready – works with both language versions (ABAP for Cloud, Standard ABAP)
|
* cloud and on-premise ready – works with both language versions (ABAP for Cloud, Standard ABAP)
|
||||||
* high system compatibility – runs on all ABAP releases (from NW 7.02 to ABAP 2302)
|
* high system compatibility – runs on all ABAP releases (from NW 7.02 to ABAP 2305)
|
||||||
* easy installation – abapGit project, no additional app deployment needed
|
* easy installation – abapGit project, no additional app deployment needed
|
||||||
|
|
||||||
#### Compatibility
|
#### Compatibility
|
||||||
|
|
|
@ -4,8 +4,8 @@ CLASS z2ui5_cl_app_demo_35 DEFINITION PUBLIC.
|
||||||
|
|
||||||
INTERFACES z2ui5_if_app.
|
INTERFACES z2ui5_if_app.
|
||||||
|
|
||||||
DATA mt_draft TYPE REF TO data.
|
DATA mt_table TYPE REF TO data.
|
||||||
DATA mv_test TYPE REF TO data.
|
DATA mv_name TYPE string.
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS Z2UI5_CL_APP_DEMO_35 IMPLEMENTATION.
|
CLASS z2ui5_cl_app_demo_35 IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD z2ui5_if_app~main.
|
METHOD z2ui5_if_app~main.
|
||||||
|
@ -61,14 +61,21 @@ CLASS Z2UI5_CL_APP_DEMO_35 IMPLEMENTATION.
|
||||||
CASE app-get-event.
|
CASE app-get-event.
|
||||||
|
|
||||||
WHEN 'BUTTON_POST'.
|
WHEN 'BUTTON_POST'.
|
||||||
* client->popup_message_toast( |{ product } { quantity } - send to the server| ).
|
|
||||||
app-view_popup = 'POPUP_CONFIRM'.
|
CREATE DATA mt_table TYPE STANDARD TABLE OF (mv_name).
|
||||||
|
FIELD-SYMBOLS <tab> TYPE table.
|
||||||
|
ASSIGN mt_table->* TO <tab>.
|
||||||
|
|
||||||
|
SELECT FROM (mv_name)
|
||||||
|
FIELDS *
|
||||||
|
INTO CORRESPONDING FIELDS OF TABLE @<tab>
|
||||||
|
UP TO 100 ROWS.
|
||||||
|
|
||||||
|
|
||||||
WHEN 'BUTTON_CONFIRM'.
|
WHEN 'BUTTON_CONFIRM'.
|
||||||
client->popup_message_toast( |confirm| ).
|
client->popup_message_toast( |confirm| ).
|
||||||
app-view_popup = ''.
|
app-view_popup = ''.
|
||||||
|
|
||||||
|
|
||||||
WHEN 'BUTTON_CANCEL'.
|
WHEN 'BUTTON_CANCEL'.
|
||||||
client->popup_message_toast( |cancel| ).
|
client->popup_message_toast( |cancel| ).
|
||||||
app-view_popup = ''.
|
app-view_popup = ''.
|
||||||
|
@ -84,75 +91,56 @@ CLASS Z2UI5_CL_APP_DEMO_35 IMPLEMENTATION.
|
||||||
METHOD z2ui5_on_init.
|
METHOD z2ui5_on_init.
|
||||||
|
|
||||||
app-view_main = 'VIEW_MAIN'.
|
app-view_main = 'VIEW_MAIN'.
|
||||||
|
mv_name = `Z2UI5_T_DRAFT`.
|
||||||
CREATE DATA mv_test TYPE string.
|
|
||||||
FIELD-SYMBOLS <field> type string.
|
|
||||||
assign mv_test->* to <field>.
|
|
||||||
<field> = 'test'.
|
|
||||||
|
|
||||||
CREATE DATA mt_draft TYPE STANDARD TABLE OF z2ui5_t_draft.
|
|
||||||
|
|
||||||
SELECT FROM z2ui5_t_draft
|
|
||||||
FIELDS *
|
|
||||||
ORDER BY uuid
|
|
||||||
INTO TABLE @DATA(lt_data)
|
|
||||||
UP TO 10 ROWS
|
|
||||||
.
|
|
||||||
|
|
||||||
types ty_t_draft type STANDARD TABLE OF z2ui5_t_draft.
|
|
||||||
FIELD-SYMBOLS <tab> TYPE ty_t_draft.
|
|
||||||
|
|
||||||
assign mt_draft->* to <tab>.
|
|
||||||
<tab> = lt_data.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD z2ui5_on_render.
|
METHOD z2ui5_on_render.
|
||||||
|
|
||||||
DATA(lo_view) = Z2UI5_CL_XML_VIEW=>factory( )->shell( )->page(
|
DATA(lo_view) = z2ui5_cl_xml_view=>factory( )->shell( )->page(
|
||||||
title = 'abap2UI5 - First Example'
|
title = 'abap2UI5 - Change the table type with RTTI'
|
||||||
navbuttonpress = client->_event( 'BACK' )
|
navbuttonpress = client->_event( 'BACK' )
|
||||||
shownavbutton = abap_true
|
shownavbutton = abap_true
|
||||||
)->header_content(
|
)->header_content(
|
||||||
)->link(
|
)->link(
|
||||||
text = 'Source_Code' target = '_blank'
|
text = 'Source_Code' target = '_blank'
|
||||||
href = Z2UI5_CL_XML_VIEW=>hlp_get_source_code_url( app = me get = client->get( ) )
|
href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
|
||||||
)->get_parent(
|
)->get_parent(
|
||||||
)->simple_form( title = 'Form Title' editable = abap_true
|
)->simple_form( title = 'SE16' editable = abap_true
|
||||||
)->content( 'form'
|
)->content( `form`
|
||||||
)->title( 'Input'
|
)->title( 'Table'
|
||||||
)->label( 'quantity' ).
|
)->label( 'Name' ).
|
||||||
|
|
||||||
|
lo_view->input( client->_bind( mv_name ) ).
|
||||||
FIELD-SYMBOLS <field> type string.
|
|
||||||
ASSIGN mv_test->* to <field>.
|
|
||||||
|
|
||||||
lo_view->input( client->_bind( val = <field> check_gen_data = abap_true ) ).
|
|
||||||
|
|
||||||
lo_view->button(
|
lo_view->button(
|
||||||
text = 'post'
|
text = 'search'
|
||||||
press = client->_event( 'BUTTON_POST' )
|
press = client->_event( 'BUTTON_POST' )
|
||||||
).
|
).
|
||||||
|
|
||||||
FIELD-SYMBOLS <tab> type STANDARD TABLE.
|
IF mt_table IS BOUND.
|
||||||
assign mt_draft->* to <tab>.
|
|
||||||
DATA(tab) = lo_view->get_parent( )->get_parent( )->simple_form( title = 'Table' editable = abap_true
|
|
||||||
)->content( 'form' )->table(
|
|
||||||
items = client->_bind( val = <tab> check_gen_data = abap_true )
|
|
||||||
).
|
|
||||||
|
|
||||||
tab->columns(
|
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||||
)->column(
|
ASSIGN mt_table->* TO <tab>.
|
||||||
)->text( 'UUID' )->get_parent(
|
DATA(tab) = lo_view->get_parent( )->get_parent( )->simple_form( title = 'Table' editable = abap_true
|
||||||
)->column(
|
)->content( 'form' )->table(
|
||||||
)->text( 'UUID_PREV' ).
|
items = client->_bind( val = <tab> check_gen_data = abap_true )
|
||||||
|
).
|
||||||
|
|
||||||
tab->items( )->column_list_item(
|
DATA(lt_fields) = lcl_db=>get_fieldlist_by_table( <tab> ).
|
||||||
)->cells(
|
|
||||||
)->input( '{UUID}'
|
DATA(lo_columns) = tab->columns( ).
|
||||||
)->input( '{UUID_PREV}'
|
LOOP AT lt_fields INTO DATA(lv_field) FROM 2.
|
||||||
).
|
lo_columns->column( )->text( lv_field ).
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
DATA(lo_cells) = tab->items( )->column_list_item( selected = '{SELKZ}' )->cells( ).
|
||||||
|
LOOP AT lt_fields INTO lv_field FROM 2.
|
||||||
|
lo_cells->input( `{` && lv_field && `}` ).
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
app-next-xml_main = lo_view->get_root( )->xml_get( ).
|
app-next-xml_main = lo_view->get_root( )->xml_get( ).
|
||||||
|
|
||||||
|
|
312
src/00/z2ui5_cl_app_demo_35.clas.locals_imp.abap
Normal file
312
src/00/z2ui5_cl_app_demo_35.clas.locals_imp.abap
Normal file
|
@ -0,0 +1,312 @@
|
||||||
|
CLASS lcl_db DEFINITION.
|
||||||
|
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
|
||||||
|
TYPES ty_t_table TYPE z2ui5_cl_app_demo_13=>ty_t_table.
|
||||||
|
|
||||||
|
CLASS-DATA app TYPE REF TO z2ui5_cl_app_demo_13.
|
||||||
|
"CLASS-DATA st_table TYPE ty_t_table.
|
||||||
|
|
||||||
|
CLASS-METHODS generate_test_data.
|
||||||
|
|
||||||
|
CLASS-METHODS get_table_by_json
|
||||||
|
IMPORTING
|
||||||
|
val TYPE string
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE ty_t_table.
|
||||||
|
|
||||||
|
CLASS-METHODS get_table_by_xml
|
||||||
|
IMPORTING
|
||||||
|
val TYPE string
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE ty_t_table.
|
||||||
|
|
||||||
|
CLASS-METHODS get_table_by_csv
|
||||||
|
IMPORTING
|
||||||
|
val TYPE string
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE ty_t_table.
|
||||||
|
|
||||||
|
CLASS-METHODS get_csv_by_table
|
||||||
|
IMPORTING
|
||||||
|
val TYPE ty_t_table
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
CLASS-METHODS get_xml_by_table
|
||||||
|
IMPORTING
|
||||||
|
val TYPE ty_t_table
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
CLASS-METHODS get_json_by_table
|
||||||
|
IMPORTING
|
||||||
|
val TYPE ty_t_table
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
CLASS-METHODS get_fieldlist_by_table
|
||||||
|
IMPORTING
|
||||||
|
it_table TYPE table
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE string_table.
|
||||||
|
|
||||||
|
CLASS-METHODS db_save
|
||||||
|
IMPORTING
|
||||||
|
value TYPE ty_t_table.
|
||||||
|
|
||||||
|
CLASS-METHODS db_read
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE ty_t_table.
|
||||||
|
CLASS-METHODS get_test_data_json
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS lcl_db IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD generate_test_data.
|
||||||
|
|
||||||
|
app->st_db = VALUE #(
|
||||||
|
( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
|
||||||
|
( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
|
||||||
|
( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
|
||||||
|
( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
|
||||||
|
( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
|
||||||
|
( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
|
||||||
|
( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
|
||||||
|
( carrid = 'DL' connid = '0106' countryfr = 'US' cityfrom = 'NEW YORK' airpfrom = 'JFK' countryto = 'DE' cityto = 'FRANKFURT' airpto = 'FR' )
|
||||||
|
).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_table_by_json.
|
||||||
|
|
||||||
|
DATA lt_tab TYPE ty_t_table.
|
||||||
|
|
||||||
|
/ui2/cl_json=>deserialize(
|
||||||
|
EXPORTING
|
||||||
|
json = val
|
||||||
|
* jsonx =
|
||||||
|
* pretty_name =
|
||||||
|
* assoc_arrays =
|
||||||
|
* assoc_arrays_opt =
|
||||||
|
* name_mappings =
|
||||||
|
* conversion_exits =
|
||||||
|
* hex_as_base64 =
|
||||||
|
CHANGING
|
||||||
|
data = lt_tab
|
||||||
|
).
|
||||||
|
|
||||||
|
result = lt_tab.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_table_by_xml.
|
||||||
|
|
||||||
|
DATA lt_tab TYPE ty_t_table.
|
||||||
|
|
||||||
|
CALL TRANSFORMATION id SOURCE xml = val RESULT data = lt_tab.
|
||||||
|
|
||||||
|
result = lt_tab.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD get_table_by_csv.
|
||||||
|
|
||||||
|
SPLIT val AT ';' INTO TABLE DATA(lt_cols).
|
||||||
|
|
||||||
|
LOOP AT lt_cols INTO DATA(lv_field).
|
||||||
|
|
||||||
|
DATA(ls_row) = VALUE z2ui5_cl_app_demo_13=>ty_s_spfli( ).
|
||||||
|
DATA(lv_index) = 1.
|
||||||
|
DO.
|
||||||
|
ASSIGN COMPONENT lv_index OF STRUCTURE ls_row TO FIELD-SYMBOL(<field>).
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
EXIT.
|
||||||
|
ENDIF.
|
||||||
|
<field> = lv_field.
|
||||||
|
lv_index = lv_index + 1.
|
||||||
|
ENDDO.
|
||||||
|
INSERT ls_row INTO TABLE result.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD db_save.
|
||||||
|
|
||||||
|
"normally modify database here
|
||||||
|
|
||||||
|
"test scenario, therefore write internal table instead
|
||||||
|
app->st_db = value.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD db_read.
|
||||||
|
|
||||||
|
"normally read database here
|
||||||
|
|
||||||
|
"test scenario, therefore read internal table instead
|
||||||
|
|
||||||
|
result = app->st_db.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD get_csv_by_table.
|
||||||
|
|
||||||
|
LOOP AT val INTO DATA(ls_row).
|
||||||
|
|
||||||
|
DATA(lv_index) = 1.
|
||||||
|
DO.
|
||||||
|
ASSIGN COMPONENT lv_index OF STRUCTURE ls_row TO FIELD-SYMBOL(<field>).
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
EXIT.
|
||||||
|
ENDIF.
|
||||||
|
lv_index = lv_index + 1.
|
||||||
|
result = result && <field> && ';'.
|
||||||
|
ENDDO.
|
||||||
|
result = result && cl_abap_char_utilities=>cr_lf.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD get_json_by_table.
|
||||||
|
|
||||||
|
result = /ui2/cl_json=>serialize(
|
||||||
|
val
|
||||||
|
* compress =
|
||||||
|
* name =
|
||||||
|
* pretty_name =
|
||||||
|
* type_descr =
|
||||||
|
* assoc_arrays =
|
||||||
|
* ts_as_iso8601 =
|
||||||
|
* expand_includes =
|
||||||
|
* assoc_arrays_opt =
|
||||||
|
* numc_as_string =
|
||||||
|
* name_mappings =
|
||||||
|
* conversion_exits =
|
||||||
|
" format_output = abap_true
|
||||||
|
* hex_as_base64 =
|
||||||
|
).
|
||||||
|
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD get_xml_by_table.
|
||||||
|
|
||||||
|
CALL TRANSFORMATION id SOURCE values = val RESULT XML result.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD get_fieldlist_by_table.
|
||||||
|
|
||||||
|
DATA(lo_tab) = CAST cl_abap_tabledescr( cl_abap_datadescr=>describe_by_data( it_table ) ).
|
||||||
|
DATA(lo_struc) = CAST cl_abap_structdescr( lo_tab->get_table_line_type( ) ).
|
||||||
|
|
||||||
|
DATA(lt_comp) = lo_struc->get_components( ).
|
||||||
|
|
||||||
|
LOOP AT lt_comp INTO DATA(ls_comp).
|
||||||
|
INSERT ls_comp-name INTO TABLE result.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_test_data_json.
|
||||||
|
|
||||||
|
result = `[` && |\n| &&
|
||||||
|
` {` && |\n| &&
|
||||||
|
` "CARRID": "DL",` && |\n| &&
|
||||||
|
` "CONNID": 106,` && |\n| &&
|
||||||
|
` "COUNTRYFR": "US",` && |\n| &&
|
||||||
|
` "CITYFROM": "NEW YORK",` && |\n| &&
|
||||||
|
` "AIRPFROM": "JFK",` && |\n| &&
|
||||||
|
` "COUNTRYTO": "DE",` && |\n| &&
|
||||||
|
` "CITYTO": "FRANKFURT",` && |\n| &&
|
||||||
|
` "AIRPTO": "FR"` && |\n| &&
|
||||||
|
` },` && |\n| &&
|
||||||
|
` {` && |\n| &&
|
||||||
|
` "CARRID": "DL",` && |\n| &&
|
||||||
|
` "CONNID": 106,` && |\n| &&
|
||||||
|
` "COUNTRYFR": "US",` && |\n| &&
|
||||||
|
` "CITYFROM": "NEW YORK",` && |\n| &&
|
||||||
|
` "AIRPFROM": "JFK",` && |\n| &&
|
||||||
|
` "COUNTRYTO": "DE",` && |\n| &&
|
||||||
|
` "CITYTO": "FRANKFURT",` && |\n| &&
|
||||||
|
` "AIRPTO": "FR"` && |\n| &&
|
||||||
|
` },` && |\n| &&
|
||||||
|
` {` && |\n| &&
|
||||||
|
` "CARRID": "DL",` && |\n| &&
|
||||||
|
` "CONNID": 106,` && |\n| &&
|
||||||
|
` "COUNTRYFR": "US",` && |\n| &&
|
||||||
|
` "CITYFROM": "NEW YORK",` && |\n| &&
|
||||||
|
` "AIRPFROM": "JFK",` && |\n| &&
|
||||||
|
` "COUNTRYTO": "DE",` && |\n| &&
|
||||||
|
` "CITYTO": "FRANKFURT",` && |\n| &&
|
||||||
|
` "AIRPTO": "FR"` && |\n| &&
|
||||||
|
` },` && |\n| &&
|
||||||
|
` {` && |\n| &&
|
||||||
|
` "CARRID": "DL",` && |\n| &&
|
||||||
|
` "CONNID": 106,` && |\n| &&
|
||||||
|
` "COUNTRYFR": "US",` && |\n| &&
|
||||||
|
` "CITYFROM": "NEW YORK",` && |\n| &&
|
||||||
|
` "AIRPFROM": "JFK",` && |\n| &&
|
||||||
|
` "COUNTRYTO": "DE",` && |\n| &&
|
||||||
|
` "CITYTO": "FRANKFURT",` && |\n| &&
|
||||||
|
` "AIRPTO": "FR"` && |\n| &&
|
||||||
|
` },` && |\n| &&
|
||||||
|
` {` && |\n| &&
|
||||||
|
` "CARRID": "DL",` && |\n| &&
|
||||||
|
` "CONNID": 106,` && |\n| &&
|
||||||
|
` "COUNTRYFR": "US",` && |\n| &&
|
||||||
|
` "CITYFROM": "NEW YORK",` && |\n| &&
|
||||||
|
` "AIRPFROM": "JFK",` && |\n| &&
|
||||||
|
` "COUNTRYTO": "DE",` && |\n| &&
|
||||||
|
` "CITYTO": "FRANKFURT",` && |\n| &&
|
||||||
|
` "AIRPTO": "FR"` && |\n| &&
|
||||||
|
` },` && |\n| &&
|
||||||
|
` {` && |\n| &&
|
||||||
|
` "CARRID": "DL",` && |\n| &&
|
||||||
|
` "CONNID": 106,` && |\n| &&
|
||||||
|
` "COUNTRYFR": "US",` && |\n| &&
|
||||||
|
` "CITYFROM": "NEW YORK",` && |\n| &&
|
||||||
|
` "AIRPFROM": "JFK",` && |\n| &&
|
||||||
|
` "COUNTRYTO": "DE",` && |\n| &&
|
||||||
|
` "CITYTO": "FRANKFURT",` && |\n| &&
|
||||||
|
` "AIRPTO": "FR"` && |\n| &&
|
||||||
|
` },` && |\n| &&
|
||||||
|
` {` && |\n| &&
|
||||||
|
` "CARRID": "DL",` && |\n| &&
|
||||||
|
` "CONNID": 106,` && |\n| &&
|
||||||
|
` "COUNTRYFR": "US",` && |\n| &&
|
||||||
|
` "CITYFROM": "NEW YORK",` && |\n| &&
|
||||||
|
` "AIRPFROM": "JFK",` && |\n| &&
|
||||||
|
` "COUNTRYTO": "DE",` && |\n| &&
|
||||||
|
` "CITYTO": "FRANKFURT",` && |\n| &&
|
||||||
|
` "AIRPTO": "FR"` && |\n| &&
|
||||||
|
` },` && |\n| &&
|
||||||
|
` {` && |\n| &&
|
||||||
|
` "CARRID": "DL",` && |\n| &&
|
||||||
|
` "CONNID": 106,` && |\n| &&
|
||||||
|
` "COUNTRYFR": "US",` && |\n| &&
|
||||||
|
` "CITYFROM": "NEW YORK",` && |\n| &&
|
||||||
|
` "AIRPFROM": "JFK",` && |\n| &&
|
||||||
|
` "COUNTRYTO": "DE",` && |\n| &&
|
||||||
|
` "CITYTO": "FRANKFURT",` && |\n| &&
|
||||||
|
` "AIRPTO": "FR"` && |\n| &&
|
||||||
|
` }` && |\n| &&
|
||||||
|
`]`.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
|
@ -5,21 +5,16 @@ CLASS z2ui5_cl_app_demo_44 DEFINITION PUBLIC.
|
||||||
INTERFACES z2ui5_if_app.
|
INTERFACES z2ui5_if_app.
|
||||||
INTERFACES if_oo_adt_classrun.
|
INTERFACES if_oo_adt_classrun.
|
||||||
|
|
||||||
protected section.
|
|
||||||
private section.
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS Z2UI5_CL_APP_DEMO_44 IMPLEMENTATION.
|
CLASS Z2UI5_CL_APP_DEMO_44 IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD if_oo_adt_classrun~main.
|
METHOD if_oo_adt_classrun~main.
|
||||||
out->write( `Hello World` ).
|
out->write( `Hello World` ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD z2ui5_if_app~main.
|
METHOD z2ui5_if_app~main.
|
||||||
client->set_next( VALUE #( xml_main = z2ui5_cl_xml_view=>factory( )->label( 'Hello World!' )->get_root( )->xml_get( ) ) ).
|
client->set_next( VALUE #( xml_main = z2ui5_cl_xml_view=>factory( )->label( 'Hello World!' )->get_root( )->xml_get( ) ) ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
110
src/00/z2ui5_cl_app_demo_46.clas.abap
Normal file
110
src/00/z2ui5_cl_app_demo_46.clas.abap
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
CLASS z2ui5_cl_app_demo_46 DEFINITION PUBLIC.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
INTERFACES z2ui5_if_app.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_row,
|
||||||
|
title TYPE string,
|
||||||
|
value TYPE string,
|
||||||
|
descr TYPE string,
|
||||||
|
icon TYPE string,
|
||||||
|
info TYPE string,
|
||||||
|
selected TYPE abap_bool,
|
||||||
|
checkbox TYPE abap_bool,
|
||||||
|
END OF ty_row.
|
||||||
|
|
||||||
|
DATA t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
|
||||||
|
DATA check_initialized TYPE abap_bool.
|
||||||
|
DATA mv_display TYPE string.
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CLASS z2ui5_cl_app_demo_46 IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD z2ui5_if_app~main.
|
||||||
|
|
||||||
|
IF check_initialized = abap_false.
|
||||||
|
check_initialized = abap_true.
|
||||||
|
|
||||||
|
mv_display = 'LIST'.
|
||||||
|
|
||||||
|
t_tab = VALUE #(
|
||||||
|
( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
|
||||||
|
( title = 'Peter' info = 'incompleted' descr = 'this is a description' icon = 'sap-icon://account' )
|
||||||
|
( title = 'Peter' info = 'working' descr = 'this is a description' icon = 'sap-icon://account' )
|
||||||
|
( title = 'Peter' info = 'working' descr = 'this is a description' icon = 'sap-icon://account' )
|
||||||
|
( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
|
||||||
|
( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
|
||||||
|
).
|
||||||
|
|
||||||
|
ELSE.
|
||||||
|
|
||||||
|
CASE client->get( )-event.
|
||||||
|
WHEN 'BACK'.
|
||||||
|
client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
|
||||||
|
WHEN OTHERS.
|
||||||
|
mv_display = client->get( )-event.
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
DATA(page) = z2ui5_cl_xml_view=>factory( )->shell(
|
||||||
|
)->page(
|
||||||
|
title = 'abap2UI5 - Table output in two different Ways - Changing UI without Model'
|
||||||
|
navbuttonpress = client->_event( 'BACK' )
|
||||||
|
shownavbutton = abap_true
|
||||||
|
)->header_content(
|
||||||
|
)->button( text = 'Display List' press = client->_event( 'LIST' )
|
||||||
|
)->button( text = 'Display Table' press = client->_event( 'TABLE' )
|
||||||
|
)->link(
|
||||||
|
text = 'Source_Code' target = '_blank'
|
||||||
|
href = z2ui5_cl_xml_view=>hlp_get_source_code_url( app = me get = client->get( ) )
|
||||||
|
)->get_parent( ).
|
||||||
|
|
||||||
|
CASE mv_display.
|
||||||
|
|
||||||
|
WHEN 'LIST'.
|
||||||
|
page->list(
|
||||||
|
headertext = 'List Control'
|
||||||
|
items = client->_bind( t_tab )
|
||||||
|
)->standard_list_item(
|
||||||
|
title = '{TITLE}'
|
||||||
|
description = '{DESCR}'
|
||||||
|
icon = '{ICON}'
|
||||||
|
info = '{INFO}'
|
||||||
|
).
|
||||||
|
|
||||||
|
WHEN 'TABLE'.
|
||||||
|
|
||||||
|
DATA(tab) = page->table(
|
||||||
|
headertext = 'Table Control'
|
||||||
|
items = client->_bind( t_tab ) ).
|
||||||
|
|
||||||
|
tab->columns(
|
||||||
|
)->column(
|
||||||
|
)->text( 'Title' )->get_parent(
|
||||||
|
)->column(
|
||||||
|
)->text( 'Descr' )->get_parent(
|
||||||
|
)->column(
|
||||||
|
)->text( 'Icon' )->get_parent(
|
||||||
|
)->column(
|
||||||
|
)->text( 'Info' ).
|
||||||
|
|
||||||
|
tab->items( )->column_list_item( )->cells(
|
||||||
|
)->text( '{TITLE}'
|
||||||
|
)->text( '{DESCR}'
|
||||||
|
)->text( '{ICON}'
|
||||||
|
)->text( '{INFO}' ).
|
||||||
|
|
||||||
|
ENDCASE.
|
||||||
|
client->set_next( VALUE #( xml_main = page->get_root( )->xml_get( ) ) ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
ENDCLASS.
|
16
src/00/z2ui5_cl_app_demo_46.clas.xml
Normal file
16
src/00/z2ui5_cl_app_demo_46.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_APP_DEMO_46</CLSNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>tab and list change</DESCRIPT>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
Loading…
Reference in New Issue
Block a user