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

FPM八:FPM TREE的更多相关文章
- Nginx与Lua利用fpm打成rpm包
1.下载相关软件 需要软件有:Nginx,LuaJIT,ngx_devel_kit,ngx_lua等安装文件 安装Lua或者LuaJIT都是可以的,但是出于效率的考虑,推荐安装LuaJITshell& ...
- FPM定制RPM包实践
1.1 快速部署方案 ✔ 问题:当领导给你 100 台已经安装好系统的服务器,然后让优化,让你提出一个快速部署方案. 解答: 1.tar 打包 先编译安装 打包-->分发-->解包(比如 ...
- 基于FPM制作nginx RPM包
目录 环境 配置 FPM安装 环境 系统 其它 CentOS 7.5 需提前配置好epel 配置 [root@localhost ~]# yum clean all && yum ma ...
- fpm制作rpm包
一.前言 在企业中我们有事安装软件包.部分都是源码安装,如nginx安装路径都已经固化了,但实际业务中,我们都是把软件包安装到固定目录下,不满足需要,这是其一.其二,编译安装很耗时,比如mysql,特 ...
- centos6上使用fpm打python2.7 rpm包并兼容python2.6
centos6上使用fpm打python2.7 rpm包并兼容python2.6 作者 运维小兵_加油 关注 2016.09.22 00:28 字数 501 阅读 45评论 0喜欢 1 工作中我们常常 ...
- FPM工具 实战定制nginx包
FPM主要特点: 把一种包打包成另一种包的格式 支持的源类型包 DIR 将目录打包成所需要的类型,可以用于源码编译的安装包. RPM 对rpm进行转换 gem 对rubygem包进行转换. ...
- Linux基于FPM制作RPM包(以Nginx为例)
1.搭建Epel Yum源 安装在线yum源 [root@localhost ~]# rpm -ivh epel-release-latest-.noarch.rpm //安装扩展源 [root@ ...
- FPM简介(定制rpm包)
FPM简介 fpm是生成rpm包的工具.rpm包的制作,采用fpm工具完成,FPM非常易用,此命令可以把rpm包的安装.卸载做得更加优雅,在安装前可以做一些准备工作,安装后可以做一些收尾工作,在卸载前 ...
- 基于FPM制作RPM软件包!
工作中有如下情况需要将文件打包rpm: 避免重复工作,将源码程序打包为rpm 使用yum发布项目,项目打包为rpm 将自己写好的程序打包为rpm,提供给用户下载 其他 以前打包rpm是一个非常复杂的一 ...
随机推荐
- 逆向工程文件example完美结合使用PageHelper分页插件及分页不成功原因
原生的mybatis需要手写sql语句,项目数据库表多了之后,可以让你写sql语句写到手软,于是mybatis官方提供了mybatis-generator:mybatis逆向工程代码生成工具,用于简化 ...
- 重新学习SpringMVC——高级
30. SpringMVC_RESTRUL_CRUD_显示所有员工信息31. SpringMVC_RESTRUL_CRUD_添加操作&表单标签32. SpringMVC_RESTRUL_CRU ...
- springboot shiro 基本整合
springboot shiro 基本整合 https://www.w3cschool.cn/shiro/c52r1iff.html http://shiro.apache.org/configura ...
- NOIP 2004 合并果子
洛谷P1090 https://www.luogu.org/problemnew/show/P1090 JDOJ 1270 题目描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分 ...
- .Net反射-两种方式获取Enum中的值
public enum EJobType { 客服 = , 业务员 = , 财务 = , 经理 = } Type jobType = typeof(EJobType); 方式1: Array enum ...
- isinstance 与 issubclass
isinstance与issubclass都是用于判断的,有什么区别呢? 1. isinstance字面意思:实列, 用户判断对象所属类型,包含类的继承关系. 2. issubclass字面理解:是子 ...
- Linux性能优化实战学习笔记:第十七讲
一.缓存命中率 1.引子 1.我们想利用缓存来提升程序的运行效率,应该怎么评估这个效果呢? 用衡量缓存好坏的指标 2.有没有哪个指标可以衡量缓存使用的好坏呢? 缓存命中率 3.什么是缓存命中率? 所谓 ...
- vue图片放大、缩小、旋转等
用于图片浏览的Vue组件,支持旋转.缩放.翻转等操作,基于viewer.js. 效果: 安装 使用npm命令安装 npm install v-viewer 使用 引入v-viewer及必需的css样式 ...
- java、ajax 跨域请求解决方案('Access-Control-Allow-Origin' header is present on the requested resource. Origin '请求源' is therefore not allowed access.)
1.情景展示 ajax调取java服务器请求报错 报错信息如下: 'Access-Control-Allow-Origin' header is present on the requested ...
- Mysql load data infile 导入数据出现:Data truncated for column
[1]Mysql load data infile 导入数据出现:Data truncated for column .... 可能原因分析: (1)数据库表对应字段类型长度不够或修改为其他数据类型( ...