Добрый день!
Вот тут как-то начал ваять, но бросил, так как я все же уже надеюсь что
в этом году мы приобретем шаблоны от Ultra Tree Platinum
Вообще посмотри, не все правда доделано, но просмотр, редактирование,
навигация используя Toolbox - есть.
Да, за основу взяты шаблоны В.Синявского версии от 8.10.2002
И еще: я не очень хороший шаблонописатель, так что сильно не пинайте.
Просто один раз мне очень нужно было дерево по одному файлу...
С уважением
Мартюшев Леонид
mailto:
leonid@opfr.komi.com
(Добавление)
Коллеги, мне нужен совет на тему как сделать
дерево по одной таблице (как в шаблонах Синявского).
Были какие-то варинты переноса этого шаблона на ABC - но они
базировались на обной из первых версий моего шаблона - т.е. были
весьма кривыми.
Но ничего не мешает посмотреть на логику работу шаблона и сделать
руками то же самое.
--
Best regards,
Vadym mailto:
vadim@softcreator.com
ICQ:
82308757
Добрый день.
Я пытаюсь создать шаблон, который бы работал под SQL (если ключевые поля
LONG - стандартный, в смысле Ваш работает очень медленно, если STRING - под
Access вообще не работает - Access вроде бы не хочет искать по ключам, в
которых есть числовые и строковые поля стандартными операторами). В Вашем
шаблоне при сворачивании веток Вы удаляете подчиненные записи из очереди,
хотя вроде бы и без этого дерево сворачивается/разворачивается. Отсюда
вопрос - почему ? (Если конечно смысл не в том, чтобы всегда брать из файла
актуальную информацию при многопользовательской работе.)
С уважением,
Марина.
(Добавление)
Для сиквела данный подход практически неприменим - такая куча SET-NEXT явно
противопоказана серверам. Реализация должна быть в виде скрипта - и
насколько я помню - для MS SQL она была сделана Василием Гончаренко.
В Вашем шаблоне при сворачивании веток Вы удаляете подчиненные записи из очереди,
хотя вроде бы и без этого дерево сворачивается/разворачивается. Отсюда
вопрос - почему ? (Если конечно смысл не в том, чтобы всегда брать из файла
актуальную информацию при многопользовательской работе.)
Честно говоря - не помню даже - очень давно это было, я детали
реализации не помню. Если свертка работает без удаления веток в данном
случае - тогда просто можно признать мой код неоптимальным. А может и
был какой-то глубокий смысл...
--
Best regards,
Vadym
Так может кто знает - есть ли глубокий смысл в коде Вадима (в смысле
удаления веток), или может есть какие то грабли в работе листбокса при
сворачивании/разворачивании без удаления дочерних веток ?
Марина
(Добавление)
Да нет там никаких "багов"!
А удаление, имхо, реализовано за ненадобностью закрытых
веток. При повторном раскрытии все равно ведь прийдется
заново "тянуть" записи из базы. Если, конечно, тебе важна
актуальная инфа в данном дереве.
Другое дело - справочник с неизменяемой инфой.
Но здесь, имхо, и подход другой - сразу выкачать весь
справочник из базы в очередь и уже работать только с ней.
=============================
С уважением,
Олег А. Руденко.
Oleg_Rudenko@mail.ru
Oleg_Rudenko@mail333.com
Библиотека DynaLib
http://dynalib.narod.ru
Спасибо, Олег за исчерпывающий ответ
Марина
Мне показался интересным другой вариант - параллельно дерево и Browse. Лазишь по веткам дерева-меняется позиция в Browse, лазишь в
Browse - меняется в дереве. Тогда все поиски и редактирование делаются средствами Browse (Например, 'Рыба свежая', 'Рыба солёная',
'Рыбные консервы' в Browse лежат рядом, а в дереве не найти. Класса не делал, но процедурку на ABC могу выложить. А для случая полной
загрузки дерева в память есть класс...
---------------------------------------
C уважением,
Юрий Философов,
Главный программист
Корпорация "Диполь", Саратов
E-mail
yufil@tacis-dipol.ru (служ)
yufil@mail.ru (дом)
ICQ#
75924439
ВыклаДАЙ!!!
--
С уважением,
Степанец Александр Валентинович.
Что именно? Да, всё уже под CW6
---------------------------------------
C уважением,
Юрий Философов
(Добавление)
Были какие-то варинты переноса этого шаблона на ABC - но они
базировались на обной из первых версий моего шаблона - т.е. были
весьма кривыми.
Относительно безглючным был тот, что я приаттачил. В шаблонах Щербы
для С5 помню что-то с редактированием мудрил и дописывал в ембедах -
видимо глюки где-нить и были, т.к. зазря я не то что код исать -
просто зад от кресла не оторву
--
WBR,
Тимур Ташбаев
(Добавление)
Так может кто знает - есть ли глубокий смысл в коде Вадима (в смысле
удаления веток), или может есть какие то грабли в работе листбокса при
сворачивании/разворачивании без удаления дочерних веток ?
Если уж Вадим про глубинный смысл сказать не может...
:):)
Но для SQL его дерево применимо только для того, чтобы понять
необходимость серверных процедур. Даже на драйвере MS SQL
можно добиться ускорения в десятки раз.
Кому-то, скорее всего - Кириллу Щербе, я отправлял свою статью
по построению SingleTree на стороне сервера. Вернее даже - про
опыт адаптации и использования чужих хранимых процедур к
своей задаче.
В результате сервер занимается построением временной таблицы
(уже упорядоченного дерева), остается только засунуть ручками эту
таблицу в очередь и показать. При необходимости, конечно, нужно
дорисовать еще код под Insert-Change-Delete. Но это не так уж и сложно.
Хотя признаюсь
В паре мест у меня для показа рукодельная таблица,
а для редактирования - шаблоны Вадима. Время при редактировании
было не критично.
С уважением,
Владимир Смелик
vovs@bigfoot.com
Как ускорить на пару порядков - это ясно и без серверных процедур. Можно на
всякий случай и записи из очереди удалять при сворачивании веток - накладных
расходов не так уж и много. Но хотелось бы знать - это надо или на всякий
случай?
Марина.
Как ускорить на пару порядков - это ясно и без серверных процедур.
А как - если не секрет (хотя бы на пальцах, без кода)? Ведь от
рекурсии никуда не уйти.
--
Best regards,
Vadym
Как это не смешно, но очень просто - сначала отфильтрованную табличку я
помещаю в буферную очередь и по ней строю дерево.
Марина
А как - если не секрет (хотя бы на пальцах, без кода)? Ведь от
рекурсии никуда не уйти.
Дык, вариант-то только один - сначала весь файл в очередь, а потом
ее уже перестраивать.
У тебя, я так припоминаю, качаются только раскрытые ветки. И как раз
для ускорения. Соответственно, сворачивание сопровождается удалением,
чтобы разворачивание всегда считывало свежие данные. Похоже на правду?
:):)
С уважением,
Владимир Смелик
Ну тогда разививаем мыслю далее - вначале тупо забрали
все сервака (а там 100 тыщ записей в таблице было), потом подготовили на
клиенте верхний уровень дерева - а там всего 10 записей оказалось
(нехило мы напрягли сервер и главное сетку - высосвав 100 тыщ и заюзав
10 записей из них).
Потом попили чайку и через 20 минут решили раскрыть одну из веток
(теперь уже из памяти - шустро!). Но вот за эти 20 минут уже часть
записей с других станций удалили - а мы их в качестве ссылок
собираемся использовать и используем. Чуешь какое веселье предвидится?
У тебя, я так припоминаю, качаются только раскрытые ветки. И как раз
для ускорения.
Ипсепственно - забираю из базы только то, что нужно показать сейчас.
Если хочу что-то раскрыть - тогда уж пососу из базы что нужно.
Соответственно, сворачивание сопровождается удалением,
чтобы разворачивание всегда считывало свежие данные. Похоже на правду?
:):)
Зело похоже. Видать не дурак я был когда-то
)
--
Best regards,
Vadym
(Добавление)
Вадим - Вы делаете УНИВЕРСАЛЬНЫЙ инструмент (Ваши шаблоны), мне нужно
решение МОЕЙ задачи. У меня SFT используется для реализации каталогов,
которых не бывает слишком много (По крайней мере больше 2000 тысяч записей
не попадалось) и меняются они по определению весьма редко (для этого есть
кнопка Refresh, которую можно нажать после чайка), а модификация простым смертным не доступна.
С уважением,
Марина
Если уж Вадим про глубинный смысл сказать не может...
:):)
Я не могу сказать по простейшей причине - было это лет 5 назад
А кто-то вполне возможно и недавно ковырялся с этой темой - вот и
сможет уточниить.
--
Best regards,
Vadym
(Добавление)
А что там хитрого? Это, как правило, как раз тот случай, когда дерево
составляет небольшую часть таблицы, или вовсе лежит в отдельной таблице,
например, справочник товаров с группами. Строишь ключик таким образом, чтобы
группы можно было кучей отобрать, потом заливаешь группы в очередь, строишь
по ней дерево, а потом в окошке выводишь рядом дерево и брауз по товарам, с
селектором по коду родительской группы. Ну и обновляешь его каждый раз при
выборе новой строки в дереве. Кстати, у меня на ClarionLife у Жени
Стефаненко проектик лежит с исходниками, "Регистратор электронных
документов", там этих деревьев... Если кому интересно.
WBR,
Igor Timofeev
Что именно?
ПроцеДУРКУ
Да, всё уже под CW6
А мы попробуем взглянуть
--
Best regards,
Alexander mailto:
clalists@partizansk.com
Где бы еще взглянуть на этот CW6 не дожидаясь праздников ?
С уважением,
Марина
Mail to:
parus@ufacom.ru
Написал: ClaList(2)