diff --git a/src/01/01/z2ui5_cl_fw_client.clas.abap b/src/01/01/z2ui5_cl_fw_client.clas.abap index c68c6b0f..8545d398 100644 --- a/src/01/01/z2ui5_cl_fw_client.clas.abap +++ b/src/01/01/z2ui5_cl_fw_client.clas.abap @@ -29,6 +29,16 @@ CLASS z2ui5_cl_fw_client DEFINITION RETURNING 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. ENDCLASS. @@ -37,6 +47,35 @@ ENDCLASS. CLASS z2ui5_cl_fw_client IMPLEMENTATION. + METHOD bind_struc_comp. + + FIELD-SYMBOLS TYPE any. + FIELD-SYMBOLS TYPE any. + DATA lr_ref_in TYPE REF TO data. + DATA lr_ref TYPE REF TO data. + + ASSIGN i_struc TO . + DATA(lt_attri) = z2ui5_cl_util_func=>rtti_get_t_comp_by_data( i_struc ). + + LOOP AT lt_attri ASSIGNING FIELD-SYMBOL(). + + ASSIGN COMPONENT -name OF STRUCTURE TO . + lr_ref_in = REF #( ). + + lr_ref = REF #( i_val ). + IF lr_ref = lr_ref_in. + r_result = `{` && iv_name && '/' && -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. FIELD-SYMBOLS TYPE any. @@ -274,6 +313,18 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION. 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. + DATA(lo_binder) = z2ui5_cl_fw_binding=>factory( app = mo_handler->ms_db-app attri = mo_handler->ms_db-t_attri @@ -328,6 +379,19 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION. i_val = val ). 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. diff --git a/src/01/01/z2ui5_if_client.intf.abap b/src/01/01/z2ui5_if_client.intf.abap index 783ab7fb..4e77157d 100644 --- a/src/01/01/z2ui5_if_client.intf.abap +++ b/src/01/01/z2ui5_if_client.intf.abap @@ -24,8 +24,8 @@ INTERFACE z2ui5_if_client main TYPE string VALUE `MAIN`, nested TYPE string VALUE `NEST`, nested2 TYPE string VALUE `NEST2`, - popover TYPE string VALUE `POPOVER`, - popup TYPE string VALUE `POPUP`, +* popover TYPE string VALUE `POPOVER`, +* popup TYPE string VALUE `POPUP`, END OF cs_view. CONSTANTS: @@ -174,6 +174,7 @@ INTERFACE z2ui5_if_client compress TYPE clike DEFAULT cs_compress_mode-standard tab TYPE STANDARD TABLE OPTIONAL tab_index TYPE i OPTIONAL + struc TYPE data OPTIONAL RETURNING VALUE(result) TYPE string. @@ -184,8 +185,9 @@ INTERFACE z2ui5_if_client view TYPE string DEFAULT cs_view-main pretty_name TYPE clike DEFAULT /ui2/cl_json=>pretty_mode-none compress TYPE clike DEFAULT cs_compress_mode-standard - tab TYPE STANDARD TABLE OPTIONAL + tab TYPE STANDARD TABLE OPTIONAL tab_index TYPE i OPTIONAL + struc TYPE data OPTIONAL RETURNING VALUE(result) TYPE string.