ITPUB论坛 » SAP R/3 » 系统开发及跨应用设置 » 关于alv tree 的问题
新一届的微软MVP评选已经开始,欢迎各位推荐!
2007-10-16 15:56 1dragonking1
关于alv tree 的问题

我找了很多资料,发现那里的alv tree的实现都是基于screen里面的control container创建的。不知道alv tree 能否象alv grid那样在report里面直接生成~

2007-10-17 09:33 sap_whittle
可能可以吧,但是没有去测试,你不要使用customer container,使用CL_GUI_DOCKING_CONTAINER,应该可以的吧?改天我自己写一个.

2007-10-25 15:57 no17_agl
什么时候写出来啊?alvtree我也不是很明白

2007-10-27 08:43 jerry.cui
期待二楼的例子

2007-10-29 15:57 James_Huangj
REPORT   Z_JAMES_TEST MESSAGE-ID ZMC95.

TABLES:  MARA.

DATA: BEGIN OF ITAB OCCURS 0,
        MTART  LIKE MARA-MTART,
        MATNR  LIKE MARA-MATNR,
        MEINS  LIKE MARA-MEINS,
      END OF ITAB.

DATA  BEGIN OF FTAB OCCURS 1.
DATA: FCODE(4).
DATA: END OF FTAB.

DATA: G_MTART  LIKE MARA-MTART,
      G_MATNR  LIKE MARA-MATNR.

DATA: BEGIN OF IT_TREE OCCURS 0.
        INCLUDE STRUCTURE SNODETEXT.
DATA: END OF IT_TREE.

DATA:  F15 TYPE C.

SELECT-OPTIONS:  S_MATNR FOR MARA-MATNR.

AT SELECTION-SCREEN.
  REFRESH FTAB. CLEAR FTAB.
  MOVE 'CANC' TO FTAB-FCODE.
  APPEND FTAB.
  MOVE 'EXIT' TO FTAB-FCODE.
  APPEND FTAB.
  MOVE 'FILT' TO FTAB-FCODE.
  APPEND FTAB.

START-OF-SELECTION.
  SELECT MTART
         MATNR
         MEINS
    INTO CORRESPONDING FIELDS OF TABLE ITAB
    FROM MARA
    WHERE MARA~MATNR IN S_MATNR.

  CHECK SY-SUBRC = 0.
  SORT ITAB BY MTART.

  LOOP AT ITAB.
    AT FIRST.
      PERFORM HEADER_NODE_FILL.
    ENDAT.

    AT NEW MTART.
      READ TABLE ITAB INDEX SY-TABIX.
      MOVE ITAB-MTART TO G_MTART.
      PERFORM MTART_NODE_FILL.
      LOOP AT ITAB WHERE MTART = G_MTART.
        PERFORM MATNR_NODE_FILL.
      ENDLOOP.
    ENDAT.
  ENDLOOP.
  PERFORM DISPLAY_TREE_LIST.
*&---------------------------------------------------------------------*
*&      Form  HEADER_NODE_FILL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM HEADER_NODE_FILL .
  IT_TREE-NAME        = 'MATERIAL ROOT'.
  IT_TREE-COLOR       = 3.
  IT_TREE-INTENSIV    = 0.
  IT_TREE-TEXT        = 'Hierarchy'.
  IT_TREE-TLENGTH     = STRLEN( IT_TREE-TEXT ).
  IT_TREE-TLEVEL      = 1.
  IT_TREE-TCOLOR      = 0.
  IT_TREE-TINTENSIV   = 0.
  IT_TREE-TEXT1       = '(1,2,3)'.
  IT_TREE-TLENGTH1    = STRLEN( IT_TREE-TEXT1 ).
  IT_TREE-TCOLOR1     = 0.
  IT_TREE-TINTENSIV1  = 0.
*  IT_TREE-KIND        = 'I'.
*  IT_TREE-HOTSPOT     = 1.
  APPEND IT_TREE. CLEAR:  IT_TREE.
ENDFORM.                    " HEADER_NODE_FILL
*&---------------------------------------------------------------------*
*&      Form  MTART_NODE_FILL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM MTART_NODE_FILL .
  IT_TREE-ID          = 2.
  IT_TREE-TLEVEL      = 2.
  IT_TREE-NAME        = 'LEVEL1'.
  IT_TREE-COLOR       = 4.
  IT_TREE-INTENSIV    = 0.
  IT_TREE-HIDE        = 'MM03'.
  IT_TREE-TEXT        = ITAB-MTART.
  IT_TREE-TLENGTH     = 10.
  IT_TREE-TCOLOR      = 4.
  IT_TREE-TINTENSIV   = 0.
  IT_TREE-TEXT1       = ITAB-MEINS.
  IT_TREE-TLENGTH1    = 10.
  IT_TREE-TCOLOR1     = 2.
  IT_TREE-TINTENSIV1  = 0.
  APPEND IT_TREE. CLEAR:  IT_TREE.
ENDFORM.                    " MTART_NODE_FILL
*&---------------------------------------------------------------------*
*&      Form  MATNR_NODE_FILL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM MATNR_NODE_FILL .
  IT_TREE-ID          = 3.
  IT_TREE-TLEVEL      = 3.
  IT_TREE-NAME        = 'LEVEL2'.
  IT_TREE-COLOR       = 1.
  IT_TREE-INTENSIV    = 0.
  IT_TREE-HIDE        = 'MM03'.
  IT_TREE-TEXT        = ITAB-MATNR.
  IT_TREE-TLENGTH     = 18.
  IT_TREE-TCOLOR      = 4.
  IT_TREE-TINTENSIV   = 0.
  APPEND IT_TREE. CLEAR:  IT_TREE.
ENDFORM.                    " MATNR_NODE_FILL
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_TREE_LIST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_TREE_LIST .
  CALL FUNCTION 'RS_TREE_CONSTRUCT'
*   EXPORTING
*     INSERT_ID                = '000000'
*     RELATIONSHIP             = ' '
*     LOG                      =
    TABLES
      NODETAB                  =  IT_TREE
*   EXCEPTIONS
*     TREE_FAILURE             = 1
*     ID_NOT_FOUND             = 2
*     WRONG_RELATIONSHIP       = 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.
  ELSE.
     SY-LSIND = 0.
     SET PF-STATUS 'TREE_STATUS' EXCLUDING FTAB.

     PERFORM EXPAND_WHOLE_TREE.

     CALL FUNCTION 'RS_TREE_LIST_DISPLAY'
        EXPORTING
          CALLBACK_PROGRAM                =  SY-CPROG
          CALLBACK_USER_COMMAND           =  'NODE_COMMAND'
*        CALLBACK_TEXT_DISPLAY           =
*        CALLBACK_MOREINFO_DISPLAY       =
*        CALLBACK_COLOR_DISPLAY          =
*        CALLBACK_TOP_OF_PAGE            =
*        CALLBACK_GUI_STATUS             =
*        CALLBACK_CONTEXT_MENU           =
         STATUS                          = 'OWN'
*        CHECK_DUPLICATE_NAME            = '1'
*        COLOR_OF_NODE                   = '4'
*        COLOR_OF_MARK                   = '3'
*        COLOR_OF_LINK                   = '1'
*        COLOR_OF_MATCH                  = '5'
*        LOWER_CASE_SENSITIVE            = ' '
*        MODIFICATION_LOG                = ' '
*        NODE_LENGTH                     = 30
*        TEXT_LENGTH                     = 75
*        TEXT_LENGTH1                    = 0
*        TEXT_LENGTH2                    = 0
         RETURN_MARKED_SUBTREE           = 'X'
*        SCREEN_START_COLUMN             = 0
*        SCREEN_START_LINE               = 0
*        SCREEN_END_COLUMN               = 0
*        SCREEN_END_LINE                 = 0
*        SUPPRESS_NODE_OUTPUT            = ' '
*        LAYOUT_MODE                     = ' '
*        USE_CONTROL                     = STREE_USE_LIST
        IMPORTING
          F15                             = SY-UCOMM
               .

  ENDIF.

ENDFORM.                    " DISPLAY_TREE_LIST
*&---------------------------------------------------------------------*
*&      Form  NODE_COMMAND
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM NODE_COMMAND TABLES  WA_NODE  STRUCTURE  SEUCOMM
                  USING   COMMAND
                  CHANGING  EXIT
                            LIST_REFRESH.

  BREAK HUANGJIAN_CN.

ENDFORM.                    " NODE_COMMAND
*&---------------------------------------------------------------------*
*&      Form  EXPAND_WHOLE_TREE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM EXPAND_WHOLE_TREE .
    CALL FUNCTION 'RS_TREE_EXPAND'
      EXPORTING
        NODE_ID           =  1
        ALL               = 'X'
*       LIST_SCROLL       =
*       DEPTH             = 1
      EXCEPTIONS
        NOT_FOUND         = 1
        OTHERS            = 2
              .
    IF SY-SUBRC <> 0.
     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

ENDFORM.                    " EXPAND_WHOLE_TREE

2007-11-1 12:21 laziows
RS_TREE_CONSTRUCT
RS_TREE_LIST_DISPLAY
测试过,不错。

2007-11-2 12:23 no17_agl
很好很强大,收藏了

2008-3-26 15:37 renken158
测试了,基本没有问题,感谢James_Huangj,不过好像双击执行的功能有些问题,不知其他兄弟们是否测过了?

2008-7-4 16:59 xiebinren
感谢James_Huangj

2008-9-13 17:53 ryq0000
[quote]原帖由 [i]renken158[/i] 于 2008-3-26 15:37 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=9942157&ptid=872894][img]http://www.itpub.net/images/common/back.gif[/img][/url]
测试了,基本没有问题,感谢James_Huangj,不过好像双击执行的功能有些问题,不知其他兄弟们是否测过了? [/quote]
没有做双击的功能 吧.

页: [1]
查看完整版本: 关于alv tree 的问题


Powered by ITPUB论坛