Текущее время: Чт, июл 31 2025, 21:37

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: ALV-Tree. Каким классом воспользоваться
СообщениеДобавлено: Ср, дек 20 2006, 12:00 
Специалист
Специалист

Зарегистрирован:
Ср, июн 07 2006, 11:41
Сообщения: 103
Всем драсьте.

Буду очень признателен тому, кто подскажет каким классом воспользоваться для построения отчета древовидной формы. А еще лучше - подскажет толковый пример.

Условия:
1. Глубина дерева на разных ветвях может быть разной (преимущественно 3-4)
2. Данные о структуре дерева хранятся в таблице типа (ID,PID,ISFOLDER,NAME,...)
3. Кроме самой структуры дерева в отчете отображается еще по 2 суммы для каждого узла.

Требования:
1. Красивый наглядный вид с суммами по промежуточным узлам
2. Должна быть возможность сворачивать/разворачивать узлы

Я взял cl_gui_simple_tree. Вроде бы с построением дерева все понятно, но как прицепить к нему суммы???

Заранее благодарю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 20 2006, 12:55 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Программка BCALV_TREE_DEMO, да и вообще, поиск программ по маске *TREE*DEMO*.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 20 2006, 14:26 
Специалист
Специалист

Зарегистрирован:
Ср, июн 07 2006, 11:41
Сообщения: 103
Сергей Королев написал:
Программка BCALV_TREE_DEMO, да и вообще, поиск программ по маске *TREE*DEMO*.


Этот пример мне не подходит, т.к. дерево в нем состоит из трех уровней и листья располагаются только на последнем уровне. Я же не знаю наперед, сколько уровней у меня будет и, кроме того, листья могут располагаться в одном узле рядом с другими узлами.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 20 2006, 15:18 
Специалист
Специалист

Зарегистрирован:
Пт, июн 16 2006, 11:39
Сообщения: 178
Откуда: Москва
Не уверен, что удовлетворит все Ваши требования :roll:
Класс cl_gui_column_tree
Пример SAPCOLUMN_TREE_CONTROL_DEMO


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 20 2006, 16:41 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
lexoftech написал(а):
Этот пример мне не подходит, т.к. дерево в нем состоит из трех уровней и листья располагаются только на последнем уровне.

Это сильно.... :roll:
Ради прикола я за 5 мин переделал этот пример так, чтобы лист был на самом верхнем уровне. Вы что думаете, там используется объект, в котором где-то определено что уровней может быть только 3???? Смотрите в код внимательно.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 21 2006, 10:55 
Менеджер
Менеджер

Зарегистрирован:
Вт, авг 17 2004, 13:14
Сообщения: 664
Откуда: Москва
Пол: Мужской
Мне подсказали идею работать с cl_gui_alv_tree_simple так же, как и с cl_gui_alv_grid Я за основу взял обычную демо-программу с ALV-grid, работающую с форматами BCALV_GRID_10. Заменил класс ALV
Code:
      grid1  TYPE REF TO cl_gui_alv_tree_simple, " cl_gui_alv_grid.


Добавил таблицу сортировки gt_sort в метод set_table_for_first_display (gt_sort определяет, какие поля будут узлами при первоначальной загрузке)

Code:
    CALL METHOD grid1->set_table_for_first_display
         EXPORTING "i_structure_name = c_struct
* gs_variant-report must not be initial!
                   is_variant       = gs_variant
                   i_save           = x_save
                   i_default        = p_def
*                   is_layout        = gs_layout
         CHANGING
                   it_sort          = gt_sort
                   it_outtab        = gt_result
                   it_fieldcatalog  = gt_fcat.


и получил отличный микс ежа и ужа. Можно на ходу менять узлы, разворачивать отчет до неузнаваемости и сохранять все в форматах! Т.к. база одна и таже, то я сделал отчет, который может выводить как grid, так и tree. Форматы сделанные для grid работают для tree и наоборот! Итоговые и промежуточные суммы, типичные для grid срабатывают на ура и в дереве! Наслаждайтесь :)[/b]


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 21 2006, 10:59 
Специалист
Специалист

Зарегистрирован:
Ср, июн 07 2006, 11:41
Сообщения: 103
Спасибо за ответы. Теперь начинаю въезжать.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 21 2006, 11:54 
Специалист
Специалист

Зарегистрирован:
Ср, июн 07 2006, 11:41
Сообщения: 103
2 Tim

А как ваша программа отрисует такое дерево:
1 -> 11 -> 111 -> 1111(лист)
1 -> 11 -> 112(лист)
2 -> 21(лист)
?

Как я понимаю, таблица должна выглядеть для этого так:
1 -> 11 -> 111 -> 1111(лист)
1 -> 11 -> null -> 112(лист)
2 -> null -> null ->21(лист)

Не окажется ли, что все листья будут находиться на четвертом уровне? А нужно, чтоб 1111(лист) - на четвертом, 112(лист) - на третьем, а 21(лист) - на втором.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 21 2006, 11:59 
Менеджер
Менеджер

Зарегистрирован:
Вт, авг 17 2004, 13:14
Сообщения: 664
Откуда: Москва
Пол: Мужской
В моем случае действительно все будет на 4-ом уровне.


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

Зарегистрирован:
Вт, ноя 20 2007, 15:20
Сообщения: 139
Откуда: Казань
Пол: Мужской
too: Автор
Как удалось решить проблему?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, ноя 30 2007, 13:06 
Начинающий
Начинающий

Зарегистрирован:
Пт, ноя 30 2007, 12:53
Сообщения: 3
Пользуйся CL_GUI_ALV_TREE. Он позволяет конструировать дерево прямо указывая подчиненность строк. Сначала создаешь корень, а потом в рекурсии - остальное дерево.

Количество уровней в каждой ветке может быть разным. Правда класс глючный, частенько хочет CALL METHOD cl_gui_cfw=>flush.


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

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


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

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


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

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