дерево по одной таблице

Программы на Clarion, шаблоны, библиотеки и пр.
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Гость

Сообщение Гость » 17 Февраль 2004, 11:42

Привет всем.

Разработаваю приложение на С55, ABC.

Коллеги, мне нужен совет на тему как сделать
дерево по одной таблице (как в шаблонах Синявского).

Какие варианты можно использовать?
Может всё-таки есть какие-то шаблоны "соместимые" с АВС?

--
Best regards,
Дмитрий mailto:dmitri_kubrakov@mail.ru

(Добавление)

Есть. ШВС ;) Создаешь отдельную DLL с процедуркой на ШВС-SFT и юзаешь. В
ШВС заказываешь никогда не закрывать файлы, а в ABC вызов делаешь из
процедуры оболочки которая откроет/закроет нужные файлы по ABC-шному.

WBR, Nick Tsigouro Mailto:N.Tsigouro@mtu-net.ru
Написал: ClaList(2)

Гость

Сообщение Гость » 17 Февраль 2004, 11:45

Есть шаблон SFT для АВС. Даж не один. Например из комплекта КС-Тулз от
Кирилла Щербы. И еще какие-то были. Да вот хотяб тот, что в аттаче.
Кем сделан - не знаю. Я егог применял для С5.

--
WBR, Тимур Ташбаев, mailto:tim@vz111.bryansk.ru, http://www.oka.made.ru
=2.87 3.12 3.62 4.12 4.62 5.30 6.80 9.10 10.20 ...=
Написал: ClaList(2)

Гость

Сообщение Гость » 17 Февраль 2004, 11:47

Добрый день!

Вот тут как-то начал ваять, но бросил, так как я все же уже надеюсь что
в этом году мы приобретем шаблоны от 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)

Гость

Сообщение Гость » 17 Февраль 2004, 14:07

А мы попробуем взглянуть ;)
http://www.tacis-dipol.ru/fil/tree.zip

---------------------------------------
C уважением,
Юрий Философов
Написал: ClaList(2)

Гость

Сообщение Гость » 18 Февраль 2004, 9:55

Я не знаю что такое ШBC-SFT - могу только догадываться. Подобное
разделение на dll-и я пробовал с самого начала. На АВС и шаблонах
Синявского. Были проблемы. Если это интересно собранию готов
восстановить ситуацию и опубликовать её описание и пример.

Ещё раз спасибо за оперативный отклик и помощь.

--
Best regards,
Дмитрий mailto:dmitri_kubrakov@mail.ru
Я не знаю что такое ШBC-SFT - могу только догадываться.
;) Шаблоны Вадима Синявского - Singlе File Tree
На АВС и шаблонах
Синявского. Были проблемы. Если это интересно собранию готов
Какие проблемы? ИМХО д.б. решаемые. Хотя сам я такой симбиоз не пробовал, а
только читал. Кажется в КлаМаге.

Nick Tsigouro

ШВС - это, как раз, и есть - Шаблоны Вадима Синявского.
SFT - аббревиатура дерева по одному файлу - Single File Tree.

=============================
С уважением, Олег А. Руденко
Написал: ClaList(2)

Гость

Сообщение Гость » 19 Февраль 2004, 11:17

;) Шаблоны Вадима Синявского - Singlе File Tree
Я так и предполагал. Уверенности не было.
Какие проблемы? ИМХО д.б. решаемые. Хотя сам я такой симбиоз не пробовал, а
только читал. Кажется в КлаМаге.
Может и решаемые! однако, как всегда нет времени (а в тот момент
особенно)
ковырять...

--
Best regards,
Дмитрий
Написал: ClaList(2)

KoMap
Новичок
Сообщения: 21
Зарегистрирован: 13 Апрель 2006, 4:23
Откуда: Томск

Сообщение KoMap » 06 Февраль 2007, 14:25

А есть данный шаблон для CW-6.3-9053 ABC (лежащий на версию 5.5 к шестерке не подходит)?

Ответить