Текущее время: Пн, авг 04 2025, 00:31

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Заполнение ALV Tree
СообщениеДобавлено: Чт, ноя 29 2007, 17:56 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 07 2006, 16:32
Сообщения: 131
Откуда: Украина, Мариуполь
Пол: Мужской
Вроде все по науке... а не выходит.
Code:
*&---------------------------------------------------------------------*
*& Report  Z_TREE                                                      *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  Z_TREE.

INCLUDE <ICON>.

TYPES:  BEGIN OF ALV_TREE_TAB,
                 field01(10),
                 field02(10),
                 field03(10),
        END OF ALV_TREE_TAB.



DATA:
      ALV_TREE_TAB        TYPE STANDARD TABLE OF ALV_TREE_TAB,
      ALV_TREE_TAB_line   LIKE LINE OF ALV_TREE_TAB,

      ALV_FC              TYPE LVC_T_FCAT,
      ALV_FC_line         LIKE LINE OF ALV_FC,

      ALV_HIERARCHY_HEAD  TYPE TREEV_HHDR,

      ALV_LYOUT_NODE      TYPE LVC_S_LAYN,

      ALV_last_key          TYPE LVC_NKEY,


      ALV_TREE            TYPE REF TO CL_GUI_ALV_TREE,
      CUSTOM_CONTAINER    TYPE REF TO CL_GUI_CUSTOM_CONTAINER.

SET SCREEN 0001.

*&---------------------------------------------------------------------*
*&      Form  ALV_FILL_TREE_TAB
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM ALV_FILL_TREE_TAB.

  CLEAR ALV_TREE_TAB[].

  CLEAR ALV_TREE_TAB_line.
  ALV_TREE_TAB_line-field01 = '1.1'.
  ALV_TREE_TAB_line-field02 = '1.2'.
  ALV_TREE_TAB_line-field03 = '1.3'.
  APPEND ALV_TREE_TAB_line TO ALV_TREE_TAB.

  CLEAR ALV_TREE_TAB_line.
  ALV_TREE_TAB_line-field01 = '2.1'.
  ALV_TREE_TAB_line-field02 = '2.2'.
  ALV_TREE_TAB_line-field03 = '2.3'.
  APPEND ALV_TREE_TAB_line TO ALV_TREE_TAB.

  CLEAR ALV_TREE_TAB_line.
  ALV_TREE_TAB_line-field01 = '3.1'.
  ALV_TREE_TAB_line-field02 = '3.2'.
  ALV_TREE_TAB_line-field03 = '3.3'.
  APPEND ALV_TREE_TAB_line TO ALV_TREE_TAB.

  CLEAR ALV_TREE_TAB_line.
  ALV_TREE_TAB_line-field01 = '4.1'.
  ALV_TREE_TAB_line-field02 = '4.2'.
  ALV_TREE_TAB_line-field03 = '4.3'.
  APPEND ALV_TREE_TAB_line TO ALV_TREE_TAB.

ENDFORM.                    "ALV_FILL_TREE_TAB
*&---------------------------------------------------------------------*
*&      Form  ALV_BUILD_FC
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM ALV_BUILD_FC.

  CLEAR ALV_FC[].

  CLEAR ALV_FC_line.
  ALV_FC_line-fieldname   = 'FIELD01'.
  ALV_FC_line-outputlen   = 8.
  ALV_FC_line-scrtext_s   = 'Поле1'.
  APPEND ALV_FC_line TO ALV_FC.

  CLEAR ALV_FC_line.
  ALV_FC_line-fieldname   = 'FIELD02'.
  ALV_FC_line-outputlen   = 8.
  ALV_FC_line-scrtext_s   = 'Поле2'.
  APPEND ALV_FC_line TO ALV_FC.

  CLEAR ALV_FC_line.
  ALV_FC_line-fieldname   = 'FIELD03'.
  ALV_FC_line-outputlen   = 8.
  ALV_FC_line-scrtext_s   = 'Поле3'.
  APPEND ALV_FC_line TO ALV_FC.


ENDFORM.                    "ALV_BUILD_FC

*&---------------------------------------------------------------------*
*&      Form  ALV_ADD_NODE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM ALV_ADD_NODE USING
                        TAB_line    TYPE ALV_TREE_TAB
                        p_relat_key TYPE lvc_nkey
                  CHANGING
                        p_node_key  TYPE lvc_nkey.

  CALL METHOD ALV_TREE->ADD_NODE
    EXPORTING
      i_relat_node_key = p_relat_key
      i_relationship   = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD
      is_outtab_line   = TAB_line
      i_node_text      = 'asadasd'
    IMPORTING
      e_new_node_key   = p_node_key.

ENDFORM.                    "ALV_ADD_NODE


*&---------------------------------------------------------------------*
*&      Module  PBO_0001  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE PBO_0001 OUTPUT.

  SET PF-STATUS '0001'.

  IF CUSTOM_CONTAINER IS INITIAL.

    CREATE OBJECT CUSTOM_CONTAINER
      EXPORTING
        container_name = 'CUSTOM_CONTAINER'.


    CREATE OBJECT ALV_TREE
      EXPORTING
        parent              = CUSTOM_CONTAINER
        node_selection_mode = CL_GUI_COLUMN_TREE=>NODE_SEL_MODE_SINGLE
        item_selection      = 'X'
        no_html_header      = 'X'
        no_toolbar          = 'X'.

    PERFORM ALV_BUILD_FC.

    ALV_HIERARCHY_HEAD-heading = 'Ключевой столбец'(300).
    ALV_HIERARCHY_HEAD-tooltip = ''.
    ALV_HIERARCHY_HEAD-width = 35.
    ALV_HIERARCHY_HEAD-width_pix = ''.

    CALL METHOD ALV_TREE->SET_TABLE_FOR_FIRST_DISPLAY
      EXPORTING
        is_hierarchy_header = ALV_HIERARCHY_HEAD
      CHANGING
        it_fieldcatalog     = ALV_FC
        it_outtab           = ALV_TREE_TAB.

    PERFORM ALV_FILL_TREE_TAB.



ВОТ ИЗ ЭТОГО ЦИКЛА ПРОГРАММА НЕ ВЫХОДИТ, А ЗАВИСАЕТ НАВЕЧНО! ДАЖЕ В ДАМП НЕ СВАЛИВАЕТСЯ.... Почему?
Code:
    LOOP AT ALV_TREE_TAB INTO ALV_TREE_TAB_line.

      PERFORM ALV_ADD_NODE USING
                                ALV_TREE_TAB_line
                                ALV_last_key
                           CHANGING
                                ALV_last_key.

    ENDLOOP.

    CALL METHOD ALV_TREE->FRONTEND_UPDATE.

  ENDIF.

ENDMODULE.                 " PBO_0001  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  PAI_USER_COMMAND_0001  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE PAI_USER_COMMAND_0001 INPUT.

  DATA pai_ucomm_0001 LIKE SY-ucomm.

  pai_ucomm_0001 = SY-ucomm.


  CASE pai_ucomm_0001.

    WHEN 'CANCEL'.

      CALL METHOD CUSTOM_CONTAINER->FREE.
      LEAVE PROGRAM.

  ENDCASE.

ENDMODULE.                 " PAI_USER_COMMAND_0001  INPUT

_________________
я в пути и нет у меня никаких тревог и забот. одинокая лодка моя рассекая волну плывет...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, ноя 29 2007, 19:40 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
ALV_TREE->ADD_NODE добавляет строчку в ALV_TREE_TAB. Но просходит это в цикле по ALV_TREE_TAB. В дебаггере это должно быть хорошо видно.

Например, в программе BCALV_TREE_02 "по науке" — это две разные внутренние таблицы. И комментарий, решающий Вашу проблему, написан перед set_table_for_first_display:
Цитата:
* IMPORTANT: Table 'gt_sflight' must be empty. Do not change this table
* (even after this method call). You can change data of your table
* by calling methods of CL_GUI_ALV_TREE.
* Furthermore, the output table 'gt_outtab' must be global and can
* only be used for one ALV Tree Control.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 30 2007, 00:24 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Не поверите... В BCALV_TREE_01 таже фигня написана :)
Пора собираться и писать ФАК.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 30 2007, 09:03 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 07 2006, 16:32
Сообщения: 131
Откуда: Украина, Мариуполь
Пол: Мужской
не... ну могла прога хоть бы в дамп свалиться ради приличия :D. Тупонул. Всем спасибо! :oops:

_________________
я в пути и нет у меня никаких тревог и забот. одинокая лодка моя рассекая волну плывет...


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB