创建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,区别如下:区别就是个文件夹的图标。

创建list ALV tree[RS_TREE_LIST_DISPLAY]

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'.

运行结果:

创建list ALV tree[RS_TREE_LIST_DISPLAY]

以上

上一篇:观点类题目(补)


下一篇:05