дерево по одной таблице
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Привет всем.
Разработаваю приложение на С55, ABC.
Коллеги, мне нужен совет на тему как сделать
дерево по одной таблице (как в шаблонах Синявского).
Какие варианты можно использовать?
Может всё-таки есть какие-то шаблоны "соместимые" с АВС?
--
Best regards,
Дмитрий mailto:dmitri_kubrakov@mail.ru
(Добавление)
Есть. ШВС Создаешь отдельную DLL с процедуркой на ШВС-SFT и юзаешь. В
ШВС заказываешь никогда не закрывать файлы, а в ABC вызов делаешь из
процедуры оболочки которая откроет/закроет нужные файлы по ABC-шному.
WBR, Nick Tsigouro Mailto:N.Tsigouro@mtu-net.ru
Написал: ClaList(2)
Разработаваю приложение на С55, ABC.
Коллеги, мне нужен совет на тему как сделать
дерево по одной таблице (как в шаблонах Синявского).
Какие варианты можно использовать?
Может всё-таки есть какие-то шаблоны "соместимые" с АВС?
--
Best regards,
Дмитрий mailto:dmitri_kubrakov@mail.ru
(Добавление)
Есть. ШВС Создаешь отдельную DLL с процедуркой на ШВС-SFT и юзаешь. В
ШВС заказываешь никогда не закрывать файлы, а в ABC вызов делаешь из
процедуры оболочки которая откроет/закроет нужные файлы по ABC-шному.
WBR, Nick Tsigouro Mailto:N.Tsigouro@mtu-net.ru
Написал: ClaList(2)
Есть шаблон 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)
Кирилла Щербы. И еще какие-то были. Да вот хотяб тот, что в аттаче.
Кем сделан - не знаю. Я егог применял для С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)
Добрый день!
Вот тут как-то начал ваять, но бросил, так как я все же уже надеюсь что
в этом году мы приобретем шаблоны от Ultra Tree Platinum
Вообще посмотри, не все правда доделано, но просмотр, редактирование,
навигация используя Toolbox - есть.
Да, за основу взяты шаблоны В.Синявского версии от 8.10.2002
И еще: я не очень хороший шаблонописатель, так что сильно не пинайте.
Просто один раз мне очень нужно было дерево по одному файлу...
С уважением Мартюшев Леонид
mailto:leonid@opfr.komi.com
(Добавление)
базировались на обной из первых версий моего шаблона - т.е. были
весьма кривыми.
Но ничего не мешает посмотреть на логику работу шаблона и сделать
руками то же самое.
--
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 уважением,
Юрий Философов
(Добавление)
для С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, которую можно нажать после чайка), а модификация простым смертным не доступна.
С уважением, Марина
А кто-то вполне возможно и недавно ковырялся с этой темой - вот и
сможет уточниить.
--
Best regards,
Vadym
(Добавление)
А что там хитрого? Это, как правило, как раз тот случай, когда дерево
составляет небольшую часть таблицы, или вовсе лежит в отдельной таблице,
например, справочник товаров с группами. Строишь ключик таким образом, чтобы
группы можно было кучей отобрать, потом заливаешь группы в очередь, строишь
по ней дерево, а потом в окошке выводишь рядом дерево и брауз по товарам, с
селектором по коду родительской группы. Ну и обновляешь его каждый раз при
выборе новой строки в дереве. Кстати, у меня на ClarionLife у Жени
Стефаненко проектик лежит с исходниками, "Регистратор электронных
документов", там этих деревьев... Если кому интересно.
WBR, Igor Timofeev
--
Best regards,
Alexander mailto:clalists@partizansk.com
Где бы еще взглянуть на этот CW6 не дожидаясь праздников ?
С уважением, Марина
Mail to: parus@ufacom.ru
Написал: ClaList(2)
Вот тут как-то начал ваять, но бросил, так как я все же уже надеюсь что
в этом году мы приобретем шаблоны от 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)
http://www.tacis-dipol.ru/fil/tree.zipА мы попробуем взглянуть
---------------------------------------
C уважением,
Юрий Философов
Написал: ClaList(2)
Я не знаю что такое ШBC-SFT - могу только догадываться. Подобное
разделение на dll-и я пробовал с самого начала. На АВС и шаблонах
Синявского. Были проблемы. Если это интересно собранию готов
восстановить ситуацию и опубликовать её описание и пример.
Ещё раз спасибо за оперативный отклик и помощь.
--
Best regards,
Дмитрий mailto:dmitri_kubrakov@mail.ru
только читал. Кажется в КлаМаге.
Nick Tsigouro
ШВС - это, как раз, и есть - Шаблоны Вадима Синявского.
SFT - аббревиатура дерева по одному файлу - Single File Tree.
=============================
С уважением, Олег А. Руденко
Написал: ClaList(2)
разделение на dll-и я пробовал с самого начала. На АВС и шаблонах
Синявского. Были проблемы. Если это интересно собранию готов
восстановить ситуацию и опубликовать её описание и пример.
Ещё раз спасибо за оперативный отклик и помощь.
--
Best regards,
Дмитрий mailto:dmitri_kubrakov@mail.ru
Шаблоны Вадима Синявского - Singlе File TreeЯ не знаю что такое ШBC-SFT - могу только догадываться.
Какие проблемы? ИМХО д.б. решаемые. Хотя сам я такой симбиоз не пробовал, аНа АВС и шаблонах
Синявского. Были проблемы. Если это интересно собранию готов
только читал. Кажется в КлаМаге.
Nick Tsigouro
ШВС - это, как раз, и есть - Шаблоны Вадима Синявского.
SFT - аббревиатура дерева по одному файлу - Single File Tree.
=============================
С уважением, Олег А. Руденко
Написал: ClaList(2)
Я так и предполагал. Уверенности не было.Шаблоны Вадима Синявского - Singlе File Tree
Может и решаемые! однако, как всегда нет времени (а в тот моментКакие проблемы? ИМХО д.б. решаемые. Хотя сам я такой симбиоз не пробовал, а
только читал. Кажется в КлаМаге.
особенно)
ковырять...
--
Best regards,
Дмитрий
Написал: ClaList(2)