[phpBB Debug] PHP Notice: in file /includes/functions_genders.php on line 46: Undefined index: GENDER_X
[phpBB Debug] PHP Notice: in file /includes/functions_genders.php on line 46: Undefined index: GENDER_X
[phpBB Debug] PHP Notice: in file /includes/functions_genders.php on line 46: Undefined index: GENDER_X
[phpBB Debug] PHP Notice: in file /includes/functions_genders.php on line 46: Undefined index: GENDER_X
[phpBB Debug] PHP Notice: in file /includes/replacer.php on line 22: Array to string conversion
[phpBB Debug] PHP Notice: in file /includes/replacer.php on line 22: Array to string conversion
[phpBB Debug] PHP Notice: in file /includes/replacer.php on line 22: Array to string conversion
[phpBB Debug] PHP Notice: in file /includes/replacer.php on line 22: Array to string conversion
[phpBB Debug] PHP Notice: in file /includes/replacer.php on line 22: Array to string conversion
[phpBB Debug] PHP Notice: in file /includes/replacer.php on line 22: Array to string conversion
[phpBB Debug] PHP Notice: in file /includes/replacer.php on line 22: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
SAPфорум.RU • Просмотр темы - cl_salv_tree событие сворачивания ветки
Текущее время: Вт, янв 23 2018, 12:02

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: cl_salv_tree событие сворачивания ветки
СообщениеДобавлено: Пн, ноя 21 2016, 19:06 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, май 23 2012, 15:38
Сообщения: 30
Пол: Мужской
Коллеги, доброго времени суток.

Экран поделен на две части - слева дерево, справа грид. В дереве выводятся заголовки, а в гриде подробная инфа по ним. Соотношение один к одному.
Соответственно при раскрытии или сворачивании ветки в дереве нужно перерисовывать грид (добавлять/удалять строки).
Пока нашел только событие раскрытия пустой ветки.
Есть ли возможность перехватить раскрытия/сворачивания непустых веток?

Использую cl_salv_tree. Но это не критично, могу заменить на другой инструмент.

Если такой возможности нет, то наверное придется использовать только дерево, и всю инфу выводить в нем. Но будут ли работать все функции грида? Например фильтр, суммирование и т.д.?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: cl_salv_tree событие сворачивания ветки
СообщениеДобавлено: Пт, ноя 25 2016, 11:07 
Ассистент
Ассистент

Зарегистрирован:
Пн, дек 02 2013, 10:42
Сообщения: 33
Arrayоотношение один к одному.
а почему не писать строку сразу(как в примере программа - SALV_DEMO_TREE_SIMPLE) , зачем нужно ALV? как

Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: cl_salv_tree событие сворачивания ветки
СообщениеДобавлено: Вс, дек 04 2016, 18:38 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, май 23 2012, 15:38
Сообщения: 30
Пол: Мужской
Так и сделал, но работает очень медленно из-за большого количества столбцов.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: cl_salv_tree событие сворачивания ветки
СообщениеДобавлено: Ср, дек 14 2016, 17:13 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, май 23 2012, 15:38
Сообщения: 30
Пол: Мужской
Проблема в быстродействии осталась, и она критична.

Причем, как я заметил, дерево тормозит именно в момент добавления новых узлов. Я их добавляю по событию разворачивания вышестоящего узла (по другому никак - иерархия очень глубокая).

Например 10 узлов добавляются секунд 5(!!).

Думаю, проблема в том, что дерево перерисовывается после каждого вызова метода ADD_NODE(). Но способа это исправить не нашел =(

Кто-нибудь сталкивался с подобным? Может, лучше всё-таки использовать класс CL_GUI_ALV_TREE?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: cl_salv_tree событие сворачивания ветки
СообщениеДобавлено: Чт, дек 15 2016, 00:34 
Специалист
Специалист

Зарегистрирован:
Чт, май 12 2011, 17:06
Сообщения: 240
По мотивам личного опыта. cl_salv_tree имеет смысл использовать, если дерево нужно только просто для отображения данных иерархической структуры. При разворачивании дерева или при изменении иерархии узлов внутри этого класса происходят какие-то подозрительно излишние обновления фронтэнда. Если дерево должно быть интерактивным, предпочтительнее использование cl_gui_alv_tree. Но это имхо.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: cl_salv_tree событие сворачивания ветки
СообщениеДобавлено: Чт, дек 15 2016, 00:36 
Специалист
Специалист

Зарегистрирован:
Чт, май 12 2011, 17:06
Сообщения: 240
И вообще. SALV-классы (и для грида, и для дерева) делали какие-то вредители.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: cl_salv_tree событие сворачивания ветки
СообщениеДобавлено: Чт, дек 15 2016, 08:45 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, июл 27 2007, 14:06
Сообщения: 98
Arrayроблема в быстродействии осталась, и она критична.

Причем, как я заметил, дерево тормозит именно в момент добавления новых узлов. Я их добавляю по событию разворачивания вышестоящего узла (по другому никак - иерархия очень глубокая).

Например 10 узлов добавляются секунд 5(!!).

Думаю, проблема в том, что дерево перерисовывается после каждого вызова метода ADD_NODE(). Но способа это исправить не нашел =(

Кто-нибудь сталкивался с подобным? Может, лучше всё-таки использовать класс CL_GUI_ALV_TREE?


Тормозит именно добавление узлов или выборка данных для этих узлов? У меня есть большое дерево и тоже добавляю узлы при разворачивании, но все работает очень быстро. К моменту работы все данные лежат во внутренней таблице, поэтому нет никаких селектов. Да, программа в таком варианте жрет больше памяти. Зато работает быстрее.

Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: cl_salv_tree событие сворачивания ветки
СообщениеДобавлено: Пт, дек 16 2016, 11:53 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, май 23 2012, 15:38
Сообщения: 30
Пол: Мужской
Array вообще. SALV-классы (и для грида, и для дерева) делали какие-то вредители.


Я тоже так думаю, но почему-то в нашей компании есть требование использовать именно их =(

Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: cl_salv_tree событие сворачивания ветки
СообщениеДобавлено: Пт, дек 16 2016, 11:55 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, май 23 2012, 15:38
Сообщения: 30
Пол: Мужской
Arrayормозит именно добавление узлов или выборка данных для этих узлов? У меня есть большое дерево и тоже добавляю узлы при разворачивании, но все работает очень быстро. К моменту работы все данные лежат во внутренней таблице, поэтому нет никаких селектов. Да, программа в таком варианте жрет больше памяти. Зато работает быстрее.


Да, смотрел в анализе производительности - 90% времени отрисовка дерева...

Можно увидеть ваш код создания дерева, добавления узла?

Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: cl_salv_tree событие сворачивания ветки
СообщениеДобавлено: Пт, дек 16 2016, 12:55 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, июл 27 2007, 14:06
Сообщения: 98


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: cl_salv_tree событие сворачивания ветки  Тема решена
СообщениеДобавлено: Вт, май 02 2017, 19:36 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, май 23 2012, 15:38
Сообщения: 30
Пол: Мужской
События разворачивания узла увы нет ни в одном инструменте.

Переход на CL_GUI_ALV_TREE и отключение опции автоподбора ширины на порядок увеличило быстродействие.


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

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


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

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


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
[ Time : 0.222s | 21 Queries | GZIP : Off ]