先上效果图:

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.在配置列里添加需要展示的字段。保存,测试即可。

最新文章

  1. nyoj 218 Dinner(贪心专题)
  2. 安装mysql后ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var mysql 启动不了
  3. [cross compile]cygwin和mingw
  4. [译] Angular 2 VS. React: 血色将至
  5. 《Linux内核设计的艺术》学习笔记(五)INT 0x10中断
  6. C语言基础:指针类型与指针和数组、字符串的关系
  7. 超轻量级spring模板方案
  8. opals 开发记录
  9. BaseActivity的定义——作为所有Activity类的父类
  10. Linux学习笔记——举例说,makefile 多个文件
  11. 为RadComboBox添加SelectionChanging事件
  12. Python并发编程之线程中的信息隔离(五)
  13. 前端框架Angular、react、vue在github上的数据统计-2018-05
  14. JavaScript之Math
  15. Markdown语法参考
  16. 使用Fiddler远程抓包(转载)
  17. matlab 中fft的用法
  18. JVM源码---教你傻瓜式编译openjdk7(JAVA虚拟机爱好者必看)
  19. CF1010D Mars rover [位运算,DP]
  20. PHP求并集,交集,差集

热门文章

  1. 201871010133-赵永军《面向对象程序设计(java)》第十一周学习总结
  2. HDU5050:Divided Land(大数的进制转化与GCD)
  3. hbase配置hdfs的HA之后需要修改的路径
  4. Push to origin/master was rejected
  5. linux下python解释器的sys.path路径如何添加
  6. xBIM之二:构建墙和门窗
  7. 8.5 NOIP模拟测试13 矩阵游戏+跳房子+优美序列
  8. 慕课网springboot博客系统开发(一)----spring initializr的使用 gradle构建项目
  9. Visual Studio 调试系列12 远程调试部署在远程计算机IIS上的ASP.NET应用程序
  10. BCompare注册文件+密钥被撤销解决方案