zoukankan      html  css  js  c++  java
  • FPM八:FPM TREE

    先上效果图:

    1,新建类:ZCL_FPM_TREE,并添加接口:IF_FPM_GUIBB,IF_FPM_GUIBB_TREE。激活所有方法

    2.定义tree结构,在class的public section里添加:

      types:
        "add by ly 20190919 for data structure
        BEGIN OF ty_tree.
                INCLUDE TYPE fpmgb_s_tree_master_column.
        TYPES:
          land1 TYPE land1,
          landx TYPE landx,
          bland TYPE regio,
          bezei TYPE bezei,
          END OF ty_tree .
    
      data GT_TREE type TABLE OF TY_TREE .
      data GW_TREE TYPE TY_TREE .

    3.定义TREE字段目录:在方法GET_DEFINITION中:

      METHOD if_fpm_guibb_tree~get_definition.
        DATA:ls_field TYPE fpmgb_s_treefield_descr.
        eo_field_catalog ?= cl_abap_tabledescr=>describe_by_data( gt_tree ).
    
        "tree
        ls_field-name = 'PARENT_KEY'.
        ls_field-column_type = if_fpm_guibb_constants=>gc_guibb_tree_columns-parent_key.
        APPEND ls_field TO et_field_description.
    
        ls_field-name = 'ROW_KEY'.
        ls_field-column_type = if_fpm_guibb_constants=>gc_guibb_tree_columns-row_key.
        APPEND ls_field TO et_field_description.
    
        ls_field-name = 'EXPANDED'.
        ls_field-column_type = if_fpm_guibb_constants=>gc_guibb_tree_columns-expanded.
        APPEND ls_field TO et_field_description.
    
        ls_field-name = 'IS_LEAF'.
        ls_field-column_type = if_fpm_guibb_constants=>gc_guibb_tree_columns-is_leaf.
        APPEND ls_field TO et_field_description.
    
        ls_field-name = 'TEXT'.
        ls_field-column_type = if_fpm_guibb_constants=>gc_guibb_tree_columns-text.
        APPEND ls_field TO et_field_description.
    
        ls_field-name = 'CHILDREN_LOADED'.
        ls_field-column_type = if_fpm_guibb_constants=>gc_guibb_tree_columns-child_load.
        APPEND ls_field TO et_field_description.
    
        ls_field-name = 'IMAGE_SRC'.
        ls_field-column_type = if_fpm_guibb_constants=>gc_guibb_tree_columns-img_src.
        APPEND ls_field TO et_field_description.
    
      ENDMETHOD.

    4.在GET_DATA中添加初始化tree结构的内表代码:

      METHOD if_fpm_guibb_tree~get_data.
        DATA:gt_t005t TYPE TABLE OF t005t,
             gw_t005t LIKE LINE OF gt_t005t,
             gt_t005u TYPE TABLE OF t005u,
             gw_t005u LIKE LINE OF gt_t005u.
        IF io_event->mv_event_id = 'FPM_START'.
          SELECT * INTO TABLE gt_t005t FROM t005t WHERE spras = 'E'.
          SELECT * INTO TABLE gt_t005u FROM t005u WHERE spras = 'E'.
    
          LOOP AT gt_t005t INTO gw_t005t.
            MOVE-CORRESPONDING gw_t005t TO gw_tree.
            gw_tree-row_key = gw_t005t-land1.
            gw_tree-is_leaf = abap_false.
            gw_tree-expanded = abap_false.
            gw_tree-text = gw_t005t-landx.
            APPEND gw_tree TO gt_tree.
    
          ENDLOOP.
    
          LOOP AT gt_t005u INTO gw_t005u.
              CLEAR:gw_tree.
              MOVE-CORRESPONDING gw_t005u TO gw_tree.
              gw_tree-row_key = gw_t005u-bland.
              gw_tree-is_leaf = abap_true.
              gw_tree-parent_key = gw_t005u-land1.
              gw_tree-text = gw_t005u-bezei.
              APPEND gw_tree TO gt_tree.
            ENDLOOP.
    
          ct_data = gt_tree.
          ev_data_changed = 'X'.
        ENDIF.
      ENDMETHOD.

    5.打开FPM工作台,点击新建空的FPM程序:

    6.输入程序名称,选择VOP类型,选择本地包,保存。

    7.保存之后会出现两个链接的页面,选择编辑配置:

    8.输入配置描述,进入配置主界面,在UIBB中选择添加TREE类型UIBB。

    9.输入一个配置编号,回车,然后选择当前行,点击配置UIBB。

    10.在新开的配置页面中,输入描述,保存。这时候会进入配置UIBB页面,提示输入FEEDER CLASS,输入上面上面创建的类。

    11.在配置列里添加需要展示的字段。保存,测试即可。

  • 相关阅读:
    前端知识点总结——VUE
    面试智力题
    LeetCode——最大单词长度乘积
    微软2020.4.13STCA实习面试
    360 2020.4.16笔试
    LeetCode——俄罗斯套娃信封问题
    LeetCode——区间交集
    属性排序报错:java.lang.IllegalArgumentException: Comparison method violates its general contract!
    LeetCode——合并区间
    LeetCode——覆盖?
  • 原文地址:https://www.cnblogs.com/sapSB/p/11548841.html
Copyright © 2011-2022 走看看