WDA学习(16):Creat Total in ALV
2.8 Creat Total or Subtotal in ALV
本實例展示如何創建ALV顯示航班信息,並且根據不同幣別匯眾價格Price欄位。
1.創建Web Dynpro Component,聲明使用ALV組件
2.這次直接在組件控制器上下文創建節點
設置NODE_SFLIGHT和ALV接口控制器的上下文Context:DATA綁定
3.設置MAIN視圖組件
Properties頁簽
聲明使用ALV組件及組件接口控制器
Layout頁簽
創建ViewContainterUIElement視圖控件,作為顯示ALV的容器
Context頁簽
直接將組件控制器的上下文節點拖動到MAIN視圖組件上下文節點下,創建映射關係
Methods頁簽
實現WDDOINIT方法,查詢sflight表數據,將數據綁定到Context:Node_Sflight節點;
創建Total匯總規則;
代碼實例:
method WDDOINIT . DATA:lo_node TYPE REF TO if_wd_context_node. DATA:lt_sflight TYPE wd_this->Elements_node_sflight. "查詢數據 SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_sflight FROM sflight. "獲取節點 lo_node = wd_context->get_child_node( 'NODE_SFLIGHT' ). lo_node->bind_table( lt_sflight ). "實例化ALV組件 DATA:lo_cmp_usage type ref to if_wd_component_usage. lo_cmp_usage = wd_this->wd_cpuse_alv( ). if lo_cmp_usage->has_active_component( ) is initial. lo_cmp_usage->create_component( ). endif. "因為在ALV:INTERFACECONTROLLER_USAGE中設置DATA和NODE_SFLIGHT綁定 "這裡不需要使用set_data方法綁定 "獲取config model DATA:lo_INTERFACECONTROLLER TYPE REF TO IWCI_SALV_WD_TABLE . lo_INTERFACECONTROLLER = wd_this->wd_cpifc_alv( ). DATA:lv_value TYPE ref to cl_salv_wd_config_table. lv_value = lo_interfacecontroller->get_model( ). "設置字段 DATA:lo_field TYPE REF TO cl_salv_wd_field. "獲取PRICE字段 lo_field = lv_value->IF_SALV_WD_FIELD_SETTINGS~GET_FIELD( 'PRICE' ). "設置匯總 lo_field->IF_SALV_WD_AGGR~CREATE_AGGR_RULE( AGGREGATION_TYPE = IF_SALV_WD_C_AGGREGATION=>AGGRTYPE_TOTAL ). lo_field = lv_value->IF_SALV_WD_FIELD_SETTINGS~GET_FIELD( 'CURRENCY' ). "設置CURR排序 lo_field->IF_SALV_WD_SORT~CREATE_SORT_RULE( EXPORTING SORT_ORDER = IF_SALV_WD_C_SORT=>SORT_ORDER_ASCENDING SORT_POSITION = 0 GROUP_AGGREGATION = abap_true ). endmethod.
4.設置Window窗口組件
5.創建Web Dynpro Application,運行測試
本文来自博客园,作者:渔歌晚唱,转载请注明原文链接:https://www.cnblogs.com/tangToms/p/12900724.html