mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 02:58:20 +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)
|
||||
* 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)
|
||||
* 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
|
||||
|
||||
#### Compatibility
|
||||
|
|
|
@ -4,8 +4,8 @@ CLASS z2ui5_cl_app_demo_35 DEFINITION PUBLIC.
|
|||
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
DATA mt_draft TYPE REF TO data.
|
||||
DATA mv_test TYPE REF TO data.
|
||||
DATA mt_table TYPE REF TO data.
|
||||
DATA mv_name TYPE string.
|
||||
|
||||
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.
|
||||
|
@ -61,14 +61,21 @@ CLASS Z2UI5_CL_APP_DEMO_35 IMPLEMENTATION.
|
|||
CASE app-get-event.
|
||||
|
||||
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'.
|
||||
client->popup_message_toast( |confirm| ).
|
||||
app-view_popup = ''.
|
||||
|
||||
|
||||
WHEN 'BUTTON_CANCEL'.
|
||||
client->popup_message_toast( |cancel| ).
|
||||
app-view_popup = ''.
|
||||
|
@ -84,75 +91,56 @@ CLASS Z2UI5_CL_APP_DEMO_35 IMPLEMENTATION.
|
|||
METHOD z2ui5_on_init.
|
||||
|
||||
app-view_main = 'VIEW_MAIN'.
|
||||
|
||||
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.
|
||||
mv_name = `Z2UI5_T_DRAFT`.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_on_render.
|
||||
|
||||
DATA(lo_view) = Z2UI5_CL_XML_VIEW=>factory( )->shell( )->page(
|
||||
title = 'abap2UI5 - First Example'
|
||||
DATA(lo_view) = z2ui5_cl_xml_view=>factory( )->shell( )->page(
|
||||
title = 'abap2UI5 - Change the table type with RTTI'
|
||||
navbuttonpress = client->_event( 'BACK' )
|
||||
shownavbutton = abap_true
|
||||
)->header_content(
|
||||
)->link(
|
||||
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(
|
||||
)->simple_form( title = 'Form Title' editable = abap_true
|
||||
)->content( 'form'
|
||||
)->title( 'Input'
|
||||
)->label( 'quantity' ).
|
||||
)->simple_form( title = 'SE16' editable = abap_true
|
||||
)->content( `form`
|
||||
)->title( 'Table'
|
||||
)->label( '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->input( client->_bind( mv_name ) ).
|
||||
|
||||
lo_view->button(
|
||||
text = 'post'
|
||||
text = 'search'
|
||||
press = client->_event( 'BUTTON_POST' )
|
||||
).
|
||||
|
||||
FIELD-SYMBOLS <tab> type STANDARD TABLE.
|
||||
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 )
|
||||
).
|
||||
IF mt_table IS BOUND.
|
||||
|
||||
tab->columns(
|
||||
)->column(
|
||||
)->text( 'UUID' )->get_parent(
|
||||
)->column(
|
||||
)->text( 'UUID_PREV' ).
|
||||
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||
ASSIGN mt_table->* 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->items( )->column_list_item(
|
||||
)->cells(
|
||||
)->input( '{UUID}'
|
||||
)->input( '{UUID_PREV}'
|
||||
).
|
||||
DATA(lt_fields) = lcl_db=>get_fieldlist_by_table( <tab> ).
|
||||
|
||||
DATA(lo_columns) = tab->columns( ).
|
||||
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( ).
|
||||
|
||||
|
|
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 if_oo_adt_classrun.
|
||||
|
||||
protected section.
|
||||
private section.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_APP_DEMO_44 IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD if_oo_adt_classrun~main.
|
||||
out->write( `Hello World` ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
client->set_next( VALUE #( xml_main = z2ui5_cl_xml_view=>factory( )->label( 'Hello World!' )->get_root( )->xml_get( ) ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
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