Текущее время: Пт, авг 08 2025, 17:19

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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