![]() |
#1 |
MCTS
|
Как вывести инфолог свернутым во всех узлах дерева
Сабж?
У меня результатом получается огромное дерево. Причем все узлы - развернутые. И очень неудобно такое читать... |
|
![]() |
#2 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Eldar9x (1). |
![]() |
#3 |
Axapta
|
Можно я немного побурчу? Инфолог не предназначен для вывода "огромного дерева". Ни один пользователь не будет/не сможет читать всю эту огромную простыню (не говоря уже о том, что и строится такой инфолог долго). Если предполагается вывод "огромного" кол-ва сообщений, то в инфолог лучше выводить какую-либо сводную (или частичную) информацию, а сами сообщения сохранять в каком-либо виде в лог-файле или таблице, в которой можно бы было и сортировать и фильтровать. И не будет никакого "неудобно такое читать".
Цитата:
Infolog Best Practices
Infolog messages interrupt a user's work. Make the interruption as brief as possible and help the user quickly resume their work. Limit the Number of Messages To limit the number of messages under each heading, use: int errorsPerBatch(int number = errorsPerBatch) For example, if a table already contains a record, several thousand errors could be generated for the table during data import, saying: 'Record already exists'. You could choose to just show the first ten errors for each table. The user would have to take a look at these tables anyway, because data is incomplete. Limiting the number of Infolog messages will also avoid an unnecessary drain on memory. It is bad practice to report any errors that come from errors that have already been reported. |
|
|
За это сообщение автора поблагодарили: gl00mie (2). |
![]() |
#4 |
MCTS
|
Ну оно не то чтобы уж совсем огромное... Но по удобству просмотра для меня самым удобным, вот в этом конкретном случае, является дерево инфолога. Почему я должен использовать что-то другое?
Вообще, хотелось бы сразу какую то функцию вызвать, чтобы до или после дерево оказалось сжатым... Но вот в коде править - не пойдет. |
|
![]() |
#5 |
Участник
|
Добавь на форму для отображения infolog (это форма SysInfologBrowser) кнопку/галку с названием врде "Свернуть все узлы" и пропиши там код свертки всех узлов, отображенных в дереве на форме. После отображения infolog одним щелчком можешь свернуть/развернуть узлы
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
![]() |
#6 |
MCTS
|
Цитата:
![]() |
|
![]() |
#7 |
MCTS
|
Нашел, вроде )
X++: void clicked() { void expandTree(int idx) { int childidx; ; formTreeControl.expand(idx,FormTreeExpand::Collapse); childidx = formTreeControl.getChild(idx); while ( childidx ) { expandTree(childidx); childidx = formTreeControl.getNextSibling(childidx); } } ; super(); expandTree(0); } |
|
![]() |
#8 |
Участник
|
Подсмотрел как то в одной системе интересный механизм.
Выводится на экран ветки корневого узла. Далее пользователь нажимает на узел который ему нужен. Идёт обращение к базе и налету строится всё что должно быть в этой ветке. Дальше он идёт в другой узел и снова обращение к базе и снова появляется то что должно быть в узле. Никаго моргания нет. Делается всё моментально. Как будто эти узлы там всегда были, а не только что построились. Чем понравилось? В плане производительности капец как круто. Потому что пока построится всё дерево, пройдёт куча времени. (не меньше 10 минут точно). А тут куда нужно туда иди, чё нужно то и смотри. Так вдруг пригодится. Потому что технически это и в Аксе можно реализовать.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
![]() |
#9 |
Administrator
|
Более того, именно это в Аксапте и реализовано. Посмотрите, например, как работают стандартные формы Cost explorer или BOM designer
![]()
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|