Автор Тема: Работа с деревом  (Прочитано 3074 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн polkon

  • Newbie
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • YearsYearsYearsYearsYearsYearsYearsYears
Работа с деревом
« : Март 01, 2013, 09:13:08 am »
Есть дерево: этап-задача-атрибуты;
для каждого из них существует идентификатор,
причем идентификаторы не совпадают с вложенной в этап задачи
или вложенного в задачу атрибута

Как удалить в таблице все значения не равные введенному
идентификатору(lv_ext_id) оставив при этом отображаться дерево?

Код: You are not allowed to view links. Register or Login
IF lv_ext_id is not INITIAL.

 LOOP at lt_tree2 ASSIGNING <s_tree>.

  CASE <s_tree>-NLEVEL.
    when 03.                   " Значение NLEVEL для этапа
         CONTINUE.
    when 04.                   " Значение NLEVEL для задач

      read table lt_tree with key id = lv_ext_id ASSIGNING <s_tree>.
         DELETE lt_tree2." INDEX sy-tabix.
CONTINUE.
    when 05.                   " Значение NLEVEL для атрибутов
         READ TABLE lt_tree2 TRANSPORTING NO FIELDS WITH KEY  id = <s_tree>-parent.

         IF sy-subrc = 0.
            CONTINUE.
         ENDIF.

         IF sy-subrc NE 0.
            DELETE lt_tree2." INDEX sy-tabix.
         ENDIF.
  ENDCASE.
ENDLOOP.
ENDIF.

В итоге хочу добиться, что бы при вводе, к примеру идентификатора SAP/00023-111 - отображался и этап№1
« Последнее редактирование: Март 01, 2013, 09:16:23 am от polkon »

Оффлайн jacknk88

  • Newbie
  • *
  • Сообщений: 120
  • Репутация: +4/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Работа с деревом
« Ответ #1 : Март 04, 2013, 11:04:37 am »
дерево нужно перерисовать частично....что-то можно дернуть отсюда  BCALV_TREE_VERIFY и BCALV_GRID_DND_TREE
чтобы помочь нужно знать какой класс вы используете....и при каких действиях пользователя хотите сделать удаление...
сначало можно удалить строки с помощью метода DELETE_SUBTREE потом обновить дерево
Код: You are not allowed to view links. Register or Login
      call method tree1->update_calculations.
      call method tree1->frontend_update.


можете сюда заглянуть
You are not allowed to view links. Register or Login