创建list ALV tree[RS_TREE_LIST_DISPLAY]

ABAP程序中的ALV显示是很常用的一种数据展示手段,除了常规的alv,有时也会用到ALV tree这种有层次结构的展示方式更好的展现数据,下面介绍一个创建list alv tree的方法:

1)用函数RS_TREE_CONSTRUCT构造alv 树的层次结构,

alv tree的节点类型(node type)分两种:T和P,区别如下:区别就是个文件夹的图标。

2)调用函数RS_TREE_LIST_DISPLAY显示alv tree

完整代码:

用list alv tree来显示采购订单和采购订单行项目。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

REPORT ztest_tree_alv.

*Data declaration for additional node information

DATA : gwa_node TYPE snodetext.

*Internal table for nodes

DATA : git_node LIKE TABLE OF gwa_node.

DATA:git_ekko TYPE STANDARD TABLE OF ekko WITH HEADER LINE,

git_ekpo TYPE STANDARD TABLE OF ekpo WITH HEADER LINE.

CLEAR :  gwa_node.

REFRESH: git_node.

SELECT *

FROM ekko

INTO TABLE git_ekko

UP TO 10 ROWS.

SELECT *

INTO TABLE git_ekpo

FROM ekpo

FOR ALL ENTRIES IN git_ekko

WHERE ebeln = git_ekko-ebeln.

gwa_node-type = ‘T‘.                   "第一个

gwa_node-id   = ‘FIRST‘.

gwa_node-name = ‘采购‘.

gwa_node-tlevel = 1.                   "层次一

gwa_node-nlength = ‘15‘.

gwa_node-color = ‘4‘.

gwa_node-text = ‘采购订单信息‘.

gwa_node-tlength =‘20‘.

gwa_node-tcolor = 3.

APPEND gwa_node TO git_node.

LOOP AT git_ekko.

CLEAR gwa_node.

gwa_node-type = ‘P‘.

gwa_node-id   = ‘HEAD‘.

gwa_node-name = ‘采购订单号‘.

gwa_node-tlevel = 2.                  "层次二

gwa_node-nlength = ‘8‘.

gwa_node-color = ‘1‘.

gwa_node-text = git_ekko-ebeln.

gwa_node-tlength =‘20‘.

gwa_node-tcolor = 4.

APPEND gwa_node TO git_node.

CLEAR gwa_node.

LOOP AT git_ekpo where ebeln = git_ekko-ebeln.

CLEAR gwa_node.

gwa_node-type = ‘P‘.

gwa_node-id   = ‘ITEM‘.

gwa_node-name = ‘行项目‘.

gwa_node-tlevel = 3.                  "层次三

gwa_node-nlength = ‘6‘.

gwa_node-color = ‘1‘.

gwa_node-text = git_ekpo-ebelp.

gwa_node-tlength =‘5‘.

gwa_node-tcolor = 4.

APPEND gwa_node TO git_node.

CLEAR gwa_node.

ENDLOOP.

ENDLOOP.

*Fm for constructing the tree

CALL FUNCTION ‘RS_TREE_CONSTRUCT‘

TABLES

nodetab = git_node.

*FM for displaying the tree

CALL FUNCTION ‘RS_TREE_LIST_DISPLAY‘

EXPORTING

callback_program     = sy-repid

check_duplicate_name = ‘1‘

color_of_node        = ‘4‘

color_of_mark        = ‘3‘

color_of_link        = ‘1‘

color_of_match       = ‘5‘

node_length          = 30

text_length          = 75

use_control          = ‘L‘.

运行结果:

以上

原文地址:https://www.cnblogs.com/lvdong18847870057/p/12540551.html

时间: 2024-11-07 18:12:53

创建list ALV tree[RS_TREE_LIST_DISPLAY]的相关文章

OO方式下,ALV TREE和ALV GRID的不同之处

ALV TREE和ALV GRID的实现整体上是相似的,但也有一些不同之处,现总结如下 首先定义概念:文中的ALV GRID指的是由OO方式建立的.由类cl_gui_alv_grid实例化后产生的ALV GRID,而ALV TREE指的是由类cl_gui_alv_tree实例化后产生的ALV TREE 1,输出内容的构建方式 ALV GRID的输出数据是通过直接将查询结果内表作为参数传递到ALV GRID对象的 set_table_for_first_display方法而显示的.   在ALV

ALV Tree

找相关的alv tree demo:se38 -> bcalv_tree* 1.创建对话屏幕 由于ALV没有专门实现的控件,需要先在对话屏幕100上增加一个用户自定义控件区域(Custom Control),名为CONTAINER1 2.demo源码 *&---------------------------------------------------------------------* *& Report YALV_TREE *&-------------------

ALV Tree demo(WBS元素分层显示)[引用别人的]

原文地址:http://www.xuebuyuan.com/1666753.html 按层次显示WBS编码及描述,附加节点双击展开事件和Item双击跳转CJ03功能. 因为本人懒,本例代码都是从标准的BCALV_TREE_01和BCALV_TREE_02拷贝过来修改的,结构不好请别见怪. REPORT zmac_alvtree_test. DATA: g_alv_tree TYPE REF TO cl_gui_alv_tree, g_custom_container TYPE REF TO cl

ALV TREE中双击触发PAI事件的方法

用事件类实现双击事件,实例化后使用set handler注册到ALV对象.红字部分为事件方法的具体实现. 代码如下 CLASS lcl_tree_event_receiver DEFINITION.  PUBLIC SECTION.    METHODS handle_node_double_click                  FOR EVENT node_double_click OF cl_gui_alv_tree      IMPORTING node_key sender.EN

Chromium Frame Tree创建过程分析

Chromium在加载一个网页之前,需要在Browser进程创建一个Frame Tree.Browser进程为网页创建了Frame Tree之后,再请求Render进程加载其内容.Frame Tree将网页抽象为Render Frame.Render Frame是为实现Out-of-Process iframes设计的.本文接下来就分析Frame Tree的创建过程,为后面分析网页加载过程打基础. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! 关于Chr

Chromium网页Graphics Layer Tree创建过程分析

在前面一文中,我们分析了网页Render Layer Tree的创建过程.在创建Render Layer的同时,WebKit还会为其创建Graphics Layer.这些Graphics Layer形成一个Graphics Layer Tree.Graphics Layer可看作是一个图形缓冲区,被若干Render Layer共用.本文接下来就分析Graphics Layer Tree的创建过程. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! 网页的Re

Chromium网页Layer Tree创建过程分析

在Chromium中,WebKit会创建一个Graphics Layer Tree描述网页.Graphics Layer Tree是和网页渲染相关的一个Tree.网页渲染最终由Chromium的CC模块完成,因此CC模块又会根据Graphics Layer Tree创建一个Layer Tree,以后就会根据这个Layer Tree对网页进行渲染.本文接下来就分析网页Layer Tree的创建过程. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! 从前面Ch

Chromium网页Frame Tree创建过程分析

Chromium在加载一个网页之前,需要在Browser进程创建一个Frame Tree.Browser进程为网页创建了Frame Tree之后,再请求Render进程加载其内容.Frame Tree将网页抽象为Render Frame.Render Frame是为实现Out-of-Process iframes设计的.本文接下来就分析Frame Tree的创建过程,为后面分析网页加载过程打基础. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! 关于Chr

ALV详解:OO ALV

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4291373.html OO ALV.. 79 EnjoySAP Controls and CFW... 79 LVC_S_FCAT. 84 LVC_S_LAYO.. 88 set_table_for_first_dispaly()方法参数.