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是一个非常复杂的一 ...
随机推荐
- CentOS7创建启动脚本
文件内容解释 [Unit]:服务的说明 Description:描述服务 After:描述服务类别 [Service]服务运行参数的设置 Type=forking是后台运行的形式 ExecStart为 ...
- nginx 常见的问题
1.server匹配优先级 nginx 读取文件名是按照文件排序优先读取的顺序 对与一样的server 优先使用先读取到的 2.location匹配优先级 = 进行普通字符精确匹配,也就是 ...
- eth0: ERROR while getting interface flags: No such device的解决方法、Linux怎么修改IP以及ping不通的处理方法
首先输入ifconfig命令查看当前的ip信息 发现没有eth0这个网卡设备,有ens33 接着输入命令:ifconfig ens33 192.168.2.110 -- 修改临时ip地址,系统 ...
- 阿里云重置CentOS的root默认密码
问题 今天使用阿里云开了一个云服务器,系统为 CentOS ,远程连接登录时不知道默认root密码 解决方法 在 控制台-实例-操作 中选择 更多-密码/秘钥-重置实例密码 即可
- Kettle Unable to get list of element types for namespace 'pentaho'
我把公司的kettle5.0升级到7.0之后遇到了这个问题,困扰了很久,百度谷歌都查不到结果,所以只能自己查找原因. 由于已经被搞好了,现在无法截图了,总之就是下面这行报错,遇到这个错误的同学估计也不 ...
- DIV+CSS+JS实现色彩渐变字体
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 生成指定python项目中所有的依赖文件
一. pipreqs工具 这个工具的好处是可以通过对项目目录的扫描,自动发现使用了那些类库,自动生成依赖清单. 缺点是可能会有些偏差,需要检查并自己调整下. 安装: pip install pipre ...
- [LeetCode] 922. Sort Array By Parity II 按奇偶排序数组之二
Given an array A of non-negative integers, half of the integers in A are odd, and half of the intege ...
- [LeetCode] 22. Generate Parentheses 生成括号
Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...
- Linux中Too many open files 问题分析和解决
今天某个服务的日志中出现了大量的异常: [WARN ] 2018-06-15 16:55:20,831 --New I/O server boss #1 ([id: 0x55007b59, /0.0. ...