mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-30 01:46:19 +08:00
binding on structure level (#815)
This commit is contained in:
parent
a117201de5
commit
02af594f49
|
@ -29,6 +29,16 @@ CLASS z2ui5_cl_fw_client DEFINITION
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(r_result) TYPE string.
|
VALUE(r_result) TYPE string.
|
||||||
|
|
||||||
|
METHODS bind_struc_comp
|
||||||
|
IMPORTING
|
||||||
|
iv_name TYPE string
|
||||||
|
i_struc type data
|
||||||
|
* i_tab_index TYPE i
|
||||||
|
* i_tab TYPE STANDARD TABLE
|
||||||
|
i_val TYPE data
|
||||||
|
RETURNING
|
||||||
|
VALUE(r_result) TYPE string.
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -37,6 +47,35 @@ ENDCLASS.
|
||||||
CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD bind_struc_comp.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS <ele> TYPE any.
|
||||||
|
FIELD-SYMBOLS <row> TYPE any.
|
||||||
|
DATA lr_ref_in TYPE REF TO data.
|
||||||
|
DATA lr_ref TYPE REF TO data.
|
||||||
|
|
||||||
|
ASSIGN i_struc TO <row>.
|
||||||
|
DATA(lt_attri) = z2ui5_cl_util_func=>rtti_get_t_comp_by_data( i_struc ).
|
||||||
|
|
||||||
|
LOOP AT lt_attri ASSIGNING FIELD-SYMBOL(<comp>).
|
||||||
|
|
||||||
|
ASSIGN COMPONENT <comp>-name OF STRUCTURE <row> TO <ele>.
|
||||||
|
lr_ref_in = REF #( <ele> ).
|
||||||
|
|
||||||
|
lr_ref = REF #( i_val ).
|
||||||
|
IF lr_ref = lr_ref_in.
|
||||||
|
r_result = `{` && iv_name && '/' && <comp>-name && `}`.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||||
|
EXPORTING
|
||||||
|
val = `BINDING_ERROR - No class attribute for binding found - Please check if the binded values are public attributes of your class`.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD bind_tab_cell.
|
METHOD bind_tab_cell.
|
||||||
|
|
||||||
FIELD-SYMBOLS <ele> TYPE any.
|
FIELD-SYMBOLS <ele> TYPE any.
|
||||||
|
@ -274,6 +313,18 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
IF struc IS NOT INITIAL.
|
||||||
|
|
||||||
|
DATA(lv_name_struc) = z2ui5_if_client~_bind_edit( val = struc path = abap_true pretty_name = pretty_name ).
|
||||||
|
result = bind_struc_comp(
|
||||||
|
iv_name = lv_name_struc
|
||||||
|
i_struc = struc
|
||||||
|
i_val = val ).
|
||||||
|
|
||||||
|
RETURN.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
DATA(lo_binder) = z2ui5_cl_fw_binding=>factory(
|
DATA(lo_binder) = z2ui5_cl_fw_binding=>factory(
|
||||||
app = mo_handler->ms_db-app
|
app = mo_handler->ms_db-app
|
||||||
attri = mo_handler->ms_db-t_attri
|
attri = mo_handler->ms_db-t_attri
|
||||||
|
@ -328,6 +379,19 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
||||||
i_val = val ).
|
i_val = val ).
|
||||||
|
|
||||||
RETURN.
|
RETURN.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
IF struc IS NOT INITIAL.
|
||||||
|
|
||||||
|
DATA(lv_name_struc) = z2ui5_if_client~_bind_edit( val = struc path = abap_true pretty_name = pretty_name ).
|
||||||
|
result = bind_struc_comp(
|
||||||
|
iv_name = lv_name_struc
|
||||||
|
i_struc = struc
|
||||||
|
i_val = val ).
|
||||||
|
|
||||||
|
RETURN.
|
||||||
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -24,8 +24,8 @@ INTERFACE z2ui5_if_client
|
||||||
main TYPE string VALUE `MAIN`,
|
main TYPE string VALUE `MAIN`,
|
||||||
nested TYPE string VALUE `NEST`,
|
nested TYPE string VALUE `NEST`,
|
||||||
nested2 TYPE string VALUE `NEST2`,
|
nested2 TYPE string VALUE `NEST2`,
|
||||||
popover TYPE string VALUE `POPOVER`,
|
* popover TYPE string VALUE `POPOVER`,
|
||||||
popup TYPE string VALUE `POPUP`,
|
* popup TYPE string VALUE `POPUP`,
|
||||||
END OF cs_view.
|
END OF cs_view.
|
||||||
|
|
||||||
CONSTANTS:
|
CONSTANTS:
|
||||||
|
@ -174,6 +174,7 @@ INTERFACE z2ui5_if_client
|
||||||
compress TYPE clike DEFAULT cs_compress_mode-standard
|
compress TYPE clike DEFAULT cs_compress_mode-standard
|
||||||
tab TYPE STANDARD TABLE OPTIONAL
|
tab TYPE STANDARD TABLE OPTIONAL
|
||||||
tab_index TYPE i OPTIONAL
|
tab_index TYPE i OPTIONAL
|
||||||
|
struc TYPE data OPTIONAL
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(result) TYPE string.
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
@ -184,8 +185,9 @@ INTERFACE z2ui5_if_client
|
||||||
view TYPE string DEFAULT cs_view-main
|
view TYPE string DEFAULT cs_view-main
|
||||||
pretty_name TYPE clike DEFAULT /ui2/cl_json=>pretty_mode-none
|
pretty_name TYPE clike DEFAULT /ui2/cl_json=>pretty_mode-none
|
||||||
compress TYPE clike DEFAULT cs_compress_mode-standard
|
compress TYPE clike DEFAULT cs_compress_mode-standard
|
||||||
tab TYPE STANDARD TABLE OPTIONAL
|
tab TYPE STANDARD TABLE OPTIONAL
|
||||||
tab_index TYPE i OPTIONAL
|
tab_index TYPE i OPTIONAL
|
||||||
|
struc TYPE data OPTIONAL
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(result) TYPE string.
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user