SAP ABAP Tree Control 对象与ALV Grid 对象关联

Tree Control 对象与ALV Grid 对象关联

在双击 Tree 对象时,变更ALV Trid 对象的显示,实现界面如图9-11 所示。

Screen 设计界面如图9-12 所示。

主程序:

REPORT ytest36.
DATA: ok_code TYPE sy-ucomm,save_ok TYPE sy-ucomm.
DATA: wa_container           TYPE scrfname VALUE 'TREE1',wa_containeralv        TYPE scrfname VALUE 'ALV1',wa_custom_container    TYPE REF TO cl_gui_custom_container,wa_custom_containeralv TYPE REF TO cl_gui_custom_container,wa_tree                TYPE REF TO cl_gui_simple_tree,wa_alv                 TYPE REF TO cl_gui_alv_grid.
DATA: node_table LIKE TABLE OF mtreesnode,node1      TYPE mtreesnode.
DATA wa_spfli TYPE TABLE OF spfli WITH HEADER LINE.
DATA wa_sflight TYPE TABLE OF sflight.
DATA: nodekey(200)  VALUE 'NODE',nodetext(200) VALUE 'NODE'.
CLASS lcl_application DEFINITION DEFERRED.
DATA event_receiver TYPE REF TO lcl_application.
*---------------------------------------------------------------------*
* CLASS lcl_application DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_application DEFINITION.PUBLIC SECTION.METHODS handle_node_double_clickFOR EVENT node_double_clickOF cl_gui_simple_treeIMPORTING node_key.
ENDCLASS. "lcl_application DEFINITION
*---------------------------------------------------------------------*
* CLASS lcl_application IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_application IMPLEMENTATION.METHOD handle_node_double_click.nodekey = node_key.READ TABLE node_table WITH KEY node_key = node_keyINTO node1.nodetext = node1-text.CLEAR wa_sflight.SELECT * INTO TABLE wa_sflight FROM sflightWHERE carrid = node1-node_key+2(2)AND connid = node1-node_key+4(4).
* CREATE OBJECT WA_ALV
* EXPORTING I_PARENT = WA_CUSTOM_CONTAINER.CALL METHOD wa_alv->set_table_for_first_displayEXPORTINGi_structure_name = 'SFLIGHT'CHANGINGit_outtab        = wa_sflight.ENDMETHOD. "handle_node_double_click
ENDCLASS. "lcl_application IMPLEMENTATION
DATA g_application TYPE REF TO lcl_application.START-OF-SELECTION.SELECT * INTO TABLE wa_spfli FROM spfliORDER BY countryfr carrid ASCENDING.CREATE OBJECT g_application.SET SCREEN 100.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.IF wa_custom_container IS INITIAL.PERFORM create_tree.ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.save_ok = ok_code.CLEAR ok_code.CASE save_ok.WHEN 'EXIT'.LEAVE PROGRAM.ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Form CREATE_TREE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_tree .DATA: events TYPE cntl_simple_events,event1 TYPE cntl_simple_event.CREATE OBJECT wa_custom_containerEXPORTINGcontainer_name = wa_container.CREATE OBJECT wa_custom_containeralvEXPORTINGcontainer_name = wa_containeralv.CREATE OBJECT wa_alvEXPORTINGi_parent = wa_custom_containeralv.CREATE OBJECT wa_treeEXPORTINGparent              = wa_custom_containernode_selection_mode = cl_gui_simple_tree=>node_sel_mode_single.IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.DATA: countryfr LIKE spfli-countryfr,carrid    LIKE spfli-carrid.DATA: str1(255).LOOP AT wa_spfli.IF countryfr NE wa_spfli-countryfr.CLEAR node1.node1-node_key = wa_spfli-countryfr.
*第一层CLEAR node1-relatkey.CLEAR node1-relatship.
*是文件夹node1-hidden = ''.node1-disabled = ''.node1-isfolder = 'X'.
*不带ICONCLEAR node1-n_image.CLEAR node1-exp_image.CLEAR node1-expander.node1-text = wa_spfli-countryfr.APPEND node1 TO node_table.ENDIF.IF ( countryfr NE wa_spfli-countryfr ) OR( carrid <> wa_spfli-carrid ).CLEAR node1.CONCATENATE wa_spfli-countryfr wa_spfli-carridINTO node1-node_key.
*上层关系node1-relatkey = wa_spfli-countryfr.node1-relatship = cl_gui_simple_tree=>relat_last_child.node1-hidden = ''.node1-disabled = ''.node1-isfolder = 'X'.CLEAR node1-n_image.CLEAR node1-exp_image.CLEAR node1-expander.
*节点显示CARRIDnode1-text = wa_spfli-carrid.APPEND node1 TO node_table.ENDIF.countryfr = wa_spfli-countryfr.carrid = wa_spfli-carrid.CLEAR node1.CONCATENATE wa_spfli-countryfr wa_spfli-carridwa_spfli-connid INTO node1-node_key.CONCATENATE wa_spfli-countryfr wa_spfli-carridINTO str1.node1-relatkey = str1.node1-relatship = cl_gui_simple_tree=>relat_last_child.node1-hidden = ''.node1-disabled = ''.node1-isfolder = 'X'.node1-n_image = '@5B@'.node1-exp_image = '@5B@'.CLEAR node1-expander.CONCATENATE wa_spfli-carrid ':' wa_spfli-cityfromINTO str1.node1-text = str1.APPEND node1 TO node_table.ENDLOOP.CALL METHOD wa_tree->add_nodesEXPORTINGtable_structure_name = 'MTREESNODE'node_table           = node_table
* EXCEPTIONS
*     ERROR_IN_NODE_TABLE  = 1
*     FAILED               = 2
*     DP_ERROF             = 3
*     TABLE_STRUCTURE_NAME_NOT_FOUND = 4
*     OTHERS               = 5.IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.
*定义双击事件event1-eventid = cl_gui_simple_tree=>eventid_node_double_click.event1-appl_event = 'X'.APPEND event1 TO events.CALL METHOD wa_tree->set_registered_eventsEXPORTINGevents = events.
* EXCEPTIONS
* CNTL_ERROR = 1
* CNTL_SYSTEM_ERROR = 2
* ILLEGAL_EVENT_COMBINATION = 3
* OTHERS = 4.IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.
*将已定义的双击事件分配至树对象SET HANDLER g_application->handle_node_double_click FOR wa_tree.
ENDFORM. " CREATE_TREE

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/198324.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】map和set的使用及注意事项

map和set的使用及注意事项 1.关联式容器2. 键值对3.set3.1接口介绍3.1.1构造3.1.2迭代器3.1.3容量3.1.4修改 3.2set使用及注意事项 4.multiset5.map6.multimap349. 两个数组的交集 1.关联式容器 在初阶阶段&#xff0c;我们已经接触过STL中的部分容器&#xff0c;比如&#xf…

vue项目解决计算后浮点数精度问题

1.1 问题描述 计算出的结果本来应该为13.8386&#xff0c;但是这里因为js精度问题&#xff0c;导致后边多了一串的0000001。 1.2 使用场景 求和&#xff0c;每个物品的单价*数量 1.3 解决办法 引入第三方库Decimal 1.4 vue项目中Decimal安装步骤 1.4.1 安装Decimal np…

C语言枚举详解,typedef简介(能看懂文字就能明白系列)

系列文章目录 C语言基础专栏 笔记详解 &#x1f31f; 个人主页&#xff1a;古德猫宁- &#x1f308; 信念如阳光&#xff0c;照亮前行的每一步 文章目录 系列文章目录&#x1f308; *信念如阳光&#xff0c;照亮前行的每一步* 前言一、枚举类型的声明枚举常量三、枚举类型的优…

索尼PMW580视频帧EC碎片重组开启方法

索尼PMW580视频帧EC碎片重组开启方法 索尼PMW-580摄像机生成的MXF文件存在严重的碎片化&#xff0c;目前CHS零壹视频恢复程序MXF版、专业版、高级版已经支持重组结构体正常的碎片&#xff0c;同时也支持对于结构体破坏或者覆盖后仅存在音视频帧EC数据的重组&#xff0c;需要注…

开关电源有哪些EMI整改?|深圳比创达电子EMC

某控制产品在进行辐射发射测试时&#xff0c;发现测试结果超标&#xff0c;辐射发射测试结果如下图所示&#xff1a; 控制产品在去掉发射源之前&#xff0c;就在各外部端口采取了各种滤波措施&#xff0c;结果并无明显作用&#xff0c;即使把所有相关外部引线全部拿走(只剩下电…

快速学习PyQt5的动画和图形效果

Pyqt5相关文章: 快速掌握Pyqt5的三种主窗口 快速掌握Pyqt5的2种弹簧 快速掌握Pyqt5的5种布局 快速弄懂Pyqt5的5种项目视图&#xff08;Item View&#xff09; 快速弄懂Pyqt5的4种项目部件&#xff08;Item Widget&#xff09; 快速掌握Pyqt5的6种按钮 快速掌握Pyqt5的10种容器&…

菜鸟学习日记(python)——运算符

我们进行运算时&#xff0c;需要两类数据&#xff0c;操作数和运算符&#xff0c;例如&#xff1a;ab就是一个运算&#xff0c;它的操作数是a和b&#xff0c;运算符是‘’ 在python中运算符包括以下几大类&#xff1a; 算数运算符比较&#xff08;关系&#xff09;运算符赋值…

spark无法执行pi_如何验证spark搭建完毕

在配置yarn环境下的spark时&#xff0c;执行尚硅谷的以下命令发现报错&#xff0c;找不到这个也找不到那个&#xff0c;尚硅谷的代码是 bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode cluster \ ./examples/jars/spark-exam…

Android AIDL实现开放系统级API 提供三方app调用

需求场景 当上层app需要调用一些系统底层的资源以及属性操作&#xff08;比如Settings.system 属性的读写&#xff09;&#xff0c;甚至驱动节点的读写操作&#xff0c;上层app毫无疑问是没有权限的&#xff0c;所以就需要我们在framework 系统层做一个中转和代理&#xff0c;也…

java 下载文件,复制文件

1&#xff0c;java通过浏览器下载文件 ApiOperation(value "导出", notes "", response String.class)GetMapping("/export")public HttpServletResponse export(String path, HttpServletResponse response) { // String path "…

Linux C语言 42-进程间通信IPC之网络通信(套接字)

Linux C语言 42-进程间通信IPC之网络通信&#xff08;套接字&#xff09; 本节关键字&#xff1a;C语言 进程间通信 网络通信 套接字 TCP UDP 相关库函数&#xff1a;socket、bind、listen、accept、send、recv、sendto、recvfrom 参考之前的文章 Linux C语言 30-套接字操作…

k8s部署单机模式的minio

k8s部署单机模式的minio 一、说明二、yaml内容三、步骤3.1 创建资源3.2 查看启动日志3.2 查看svc并访问控制台 一、说明 项目使用minio&#xff0c;准备在k8s环境部署一套minio试用。 1.关于minio的原理和概念参考: https://mp.weixin.qq.com/s?__bizMzI3MDM5NjgwNg&mid…

国防科技大博士招生入学考试【50+论文主观题】

目录 回答模板大意创新和学术价值启发 论文分类&#xff08;根据问题/场景分类&#xff09;数学问题Efficient Multiset Synchronization&#xff08;高效的多集同步【简单集合/可逆计数Bloom过滤器】&#xff09;大意创新和学术价值启发 An empirical study of Bayesian netwo…

Python中函数添加超时时间,Python中signal使用

from time import time, sleepimport signal# 模拟要删除5条数据,中间有超时的i 5# 超时后执行的方法def timeout_handler(signal, frame):# 引发异常raise TimeoutError("删除第" str(i) "条,超时!")# 或者执行其他操作,不往外抛异常(超时的函数不会被…

JAVA代码优化:字符串工具类

字符串工具类&#xff0c;提供了一系列处理字符串的常用方法&#xff0c;包括判空、截取、格式化、转换等功能。 nvl(T value, T defaultValue)&#xff1a;用于获取参数不为空的值&#xff0c;如果参数为空则返回默认值。 isEmpty和isNotEmpty系列方法&#xff1a;用于判断集…

使用Spring Cloud搭建一个项目框架之父子模块的创建

前言 说实在的&#xff0c;Spring Cloud的这个系列&#xff0c;很多人都写过&#xff0c;写的比博主好的一大堆&#xff0c;网友们百度一下&#xff0c;就可以发现很多很多&#xff0c;甚至有一批都是系列文章&#xff0c;我只不过之前学过一段时间&#xff0c;但是过了一段时…

ubuntu 系统部署 Stable Video Diffusion

11月21日&#xff0c;stability.ai 发布了生成式视频模型 Stable Video Diffusion&#xff08;SVD&#xff09; 。 官方博客链接&#xff1a;Introducing Stable Video Diffusion — Stability AIgit地址&#xff1a;GitHub - Stability-AI/generative-models: Generative Mod…

Failure[ERROR_GET_BUNDLE_INSTALLER_FAILED]【Bug已解决-鸿蒙开发】

文章目录 项目场景:问题描述原因分析(Bug已找到原因):解决方案(Bug已解决):Bug解决总结项目场景: 在运行/调试过程中出现“Failure[ERROR_GET_BUNDLE_INSTALLER_FAILED]”错误。 报错如下: 11/17 11:14:05: Launching com.example.helloworld $ hdc shell am force-…

ElasticSearch基础知识

ElasticSearch是一个高扩展的分布式全文搜索引擎&#xff0c;基于Lucene作为核心实现所有索引和搜索的功能。 使用场景&#xff1a; &#xff08;1&#xff09;搜索领域&#xff1a;如维基百科、谷歌&#xff0c;全文检索等。 &#xff08;2&#xff09;网站具体内容&#xf…

CentOS部署python Flask项目

CentOS部署python Flask项目 将项目打包成tar.gz包并上传到公网linux服务器(centos) 将整个文件夹压缩为xxx.tar.gz tar -zcvf xxx.tar.gz 文件夹名挑选文件进行打包 tar -zcvf xxx.tar.gz file1 file2 file3上传到linux服务器 scp xxx.tar.gz 用户名服务器ip:上传到服务…