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

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


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

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


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

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