Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите разобраться дереву
 
 автор: час   (25.01.2009 в 11:03)   личное сообщение
19 Кб.
 
 

Нужно добавить ветки, но что-то не выходит...

  Ответить  
 
 автор: Ми   (25.01.2009 в 11:59)   личное сообщение
31 Кб.
 
 

На.

  Ответить  
 
 автор: час   (25.01.2009 в 12:07)   личное сообщение
 
 

Привет !!!!
Смотрю...

  Ответить  
 
 автор: Ми   (25.01.2009 в 12:10)   личное сообщение
36 Кб.
 
 

Привет . На с украшательством.

  Ответить  
 
 автор: час   (25.01.2009 в 12:13)   личное сообщение
 
 

Я кода открыл...........
..ел, ну не то, что бы кушал..., но офигел - эт точно!!!

И как их туда всовывают???
А то ведь они - лица эти немного не по теме, надо бы что-то вроде Домиков
iml10 - я заметил, это коллекция видимо лиц.
И если туда на инсетить других иконок, то всё наладиться видимо....

  Ответить  
 
 автор: Ми   (25.01.2009 в 12:18)   личное сообщение
 
 

там на форме контрол с рисунками, увидишь....

  Ответить  
 
 автор: час   (25.01.2009 в 12:11)   личное сообщение
 
 

А как Вы думаете .....
теперь вот с одной таблицей - это будет правильное деревце???

  Ответить  
 
 автор: Ми   (25.01.2009 в 12:17)   личное сообщение
 
 

Принцип тот же самый, что и был. Правильное, это когда в таблице 2 столбика. А так ты если захочешь добавить программно в ветку годор ещё улицу, то ничо не выдет. Я ж дал пример правильного... рекурсивным методом оно строится....

  Ответить  
 
 автор: час   (25.01.2009 в 12:20)   личное сообщение
 
 

Тогда, мне таблицу (структуру) изменить ???

  Ответить  
 
 автор: Ми   (25.01.2009 в 12:25)   личное сообщение
 
 

А тебе это надо? хорошо подумай. Будешь в дерево ещё ветки вложенные добавлять или нет? Может и не стоит заморачиваться. Там программный код посложней будет....

  Ответить  
 
 автор: час   (25.01.2009 в 12:28)   личное сообщение
 
 

А ведь, рости - надо..
Познавать узнавать - универсалить..

  Ответить  
 
 автор: Ми   (25.01.2009 в 12:31)   личное сообщение
 
 

Пример есть, там аж 2 принципа построения как по науке, разбирайся.

  Ответить  
 
 автор: час   (25.01.2009 в 12:32)   личное сообщение
 
 

Спасибо

  Ответить  
 
 автор: час   (25.01.2009 в 12:31)   личное сообщение
 
 

Или , если позволите - такой вопрос
может без запросов можно обойтись - имея такую таблицу как у меня сейчас........

  Ответить  
 
 автор: Ми   (25.01.2009 в 12:42)   личное сообщение
 
 

Нужно чтоб значения уникальными были, иначе в дереве одинаковые ветки будут. Можно это попробовать программно просеить, но не стоит, заметно снизится скорость построения дерева.

  Ответить  
 
 автор: час   (25.01.2009 в 12:46)   личное сообщение
 
 

Значит - таблица - фиговая - мягко говоря.
Понятно......

  Ответить  
 
 автор: Гамлет   (25.01.2009 в 14:09)   личное сообщение
47 Кб.
 
 

Посмотри это
У тебя таблица не нормализ.
здесь только 1 таблица без всяких запросов.
Для дерева больше ничего не надо

  Ответить  
 
 автор: час   (25.01.2009 в 15:00)   личное сообщение
 
 

Офигеть рекурсия.
Блин.... а как же такую таблицу заполнить.................

А модули - это просто прилипли сами или они пригодятся?

Интересное имя у таблицы .....звучит знакомо так...

Здорово организована таблица единожды заносится наименование, присваивается ID и порядок.
А как же.....
видимо из списка надо выбирать - паренты ....

  Ответить  
 
 автор: Гамлет   (25.01.2009 в 15:18)   личное сообщение
10 Кб.
 
 

Модули приклеились случайно они не нужны
В прицепе немного теории

  Ответить  
 
 автор: час   (25.01.2009 в 15:26)   личное сообщение
 
 

Спасибо!!!
Забегая вперёд....
Можно проследить путь к самому верхнему родителю - это то из за чего весь сыр бор.
Надо находить во вновь создаваемых записях - нет ли уже на эту территорию претендентов.
Такая же террритория, либо территория, куда она входит .

Например если Россия - кому то уже отдана, тогда и тверь никому отдавать низя

  Ответить  
 
 автор: Гамлет   (25.01.2009 в 15:29)   личное сообщение
 
 

Можно.
Почитай теорию, второй вариант.
В принципе вторая таблица даже не нужна её можно получать запрсом, но при болльшом кол-ве записей будет притормаживать

  Ответить  
 
 автор: час   (25.01.2009 в 15:36)   личное сообщение
 
 

Даааааа Виноградов С.А.
я пока - притормаживаю, а не рекурсия...

create table Departments
(
Id int not null identity primary key,
Parent int not null references Departments(Id),
Name varchar(32) not null,
Left int not null,
Right int not null
)

Departments

  Ответить  
 
 автор: Гамлет   (25.01.2009 в 15:46)   личное сообщение
 
 

читаем всё кроме раздела Обход дерева

  Ответить  
 
 автор: час   (25.01.2009 в 15:49)   личное сообщение
 
 

Читаем.....читаем

  Ответить  
 
 автор: час   (25.01.2009 в 16:00)   личное сообщение
 
 

Получается таблицу лучше иметь такую
Id ........Родитель...........Имя............Уровень........Низший\нет
1 ..................0 ..................A1.................1..................0
2 ..................1.................B1.................2 ..................0
3 ..................1 ..................B2 ..................2 ..................0
4 ..................2 ..................С1 ..................3 ..................1
5 ..................3 ..................С2 ..................3 ..................1
6 ..................3 ..................С3 ..................3 ..................1

  Ответить  
 
 автор: Ми   (25.01.2009 в 16:11)   личное сообщение
23 Кб.
 
 

На добавление (через конт. меню).

  Ответить  
 
 автор: Ми   (25.01.2009 в 16:13)   личное сообщение
 
 

Я например не вижу в такой таблице никакого смысла, по-моему 2 поля достаточно. И всё дерево со всеми его функциями полность реализуется.

  Ответить  
 
 автор: Гамлет   (25.01.2009 в 16:18)   личное сообщение
 
 

Надо две таблицы
1) Departments
Id .... Parent ...Name
1 .........0 .........A1
2 .........1 .........B1
3 .........1 .........B2
4 .........2 .........С1
5 .........3 .........С2
6 .........3 .........С3

2) DepartmentsAncestors
Department…...Ancestor
2..........................1
3..........................1
4..........................2
4..........................1
5..........................3
5..........................1
6..........................3
6..........................1

Пользуясь двумя такими таблицами, можно легко строить практически любые запросы, характерные для иерархических объектов

  Ответить  
 
 автор: час   (25.01.2009 в 16:24)   личное сообщение
 
 

А Ancestor - это самый первый предок?
A нет тут во второй таблице перечислены все его предки и родиелии..
взять к примеру :6 .........3 .........С3

у него и 3 - предок и 1 - предок
6..........................3
6..........................1

  Ответить  
 
 автор: Гамлет   (25.01.2009 в 16:33)   личное сообщение
 
 

Department это Id департамента
Ancestor это Id всех его предков

например
отдел 2 имеет предка 1
отдел 4 имеет предка 2 и 1
отдел 5 имеет предка 3 и 1

Добавлено
Если Ancestor Id вывести в строку через разделитель, то получим весь путь до главного предка
путь для отдела 5 = 3/1

  Ответить  
 
 автор: час   (25.01.2009 в 16:42)   личное сообщение
 
 

Да если уже занесено всё во вторую таблицу Вы правы - уже всё понятно - как глубоко детё заброшено, а вот по созданию этой второй таблицы - я правильно понял тут ниже описалово...

  Ответить  
 
 автор: час   (25.01.2009 в 16:36)   личное сообщение
 
 

Так ...
проясняется..

превую таблицу заполнить - раз плюнуть
id - счётчик
Наимнование - это известно
Кто родитель - это выбрать из списка можно
всё готово.

А как заполнять таблицу номер два....

это надо взять какой то ID и ID его родителя, записать во вторую таблицу ID ребёнка и ID найденого родителя, сходить посмотреть кто у родителя родитель и записать в таблицу ID первого взятого и вновь найденное ID . и так далее

j[htytnm

  Ответить  
 
 автор: Гамлет   (25.01.2009 в 16:42)   личное сообщение
 
 

как заполнять таблицу номер два- это уже совсем другой вопрос

в принципе она не нужна потому что её можно получать запросом на основе первой таблицы

посмотри здесь
http://hiprog.com/forum/read.php?id_forum=1&id_theme=3661&page=3

  Ответить  
 
 автор: час   (25.01.2009 в 16:47)   личное сообщение
 
 

Спасибо Вам огромное - Вы мне всё разжевали!!!
Пиду гляну!!

  Ответить  
 
 автор: час   (25.01.2009 в 16:51)   личное сообщение
 
 

Вот это Вы меня послали........
Тама стока понаписано, что читать не перечитать

А как очистить дерево, чтобы заполнить вновь?
видимо
[tree].Nodes.Clear

  Ответить  
 
 автор: Гамлет   (25.01.2009 в 17:47)   личное сообщение
 
 

Clear - удаляет из семейства все узлы
Remove - удаляет узел из семейства Nodes

  Ответить  
 
 автор: час   (25.01.2009 в 18:15)   личное сообщение
29 Кб.
 
 

Спасибо!!!
Во что выходит

  Ответить  
 
 автор: Гамлет   (25.01.2009 в 18:50)   личное сообщение
 
 

Правильным курсом идёте товарисчь

  Ответить  
 
 автор: час   (25.01.2009 в 18:52)   личное сообщение
 
 


Спасибо - Направляющим товарисчам
фух........

  Ответить  
 
 автор: час   (26.01.2009 в 10:17)   личное сообщение
 
 

А можно ли из дерева выковырнуть код элнмента
напимер выбранное значение -

tree.SelectedItem.Text

  Ответить  
 
 автор: час   (26.01.2009 в 11:53)   личное сообщение
 
 

помогите дереву

  Ответить  
 
 автор: Ми   (26.01.2009 в 13:43)   личное сообщение
 
 

tree.SelectedItem.Key

  Ответить  
 
 автор: час   (26.01.2009 в 15:02)   личное сообщение
 
 

Огромное сасибо - и откуда Вы всё это черпаете!!!???

  Ответить  
 
 автор: час   (27.01.2009 в 15:02)   личное сообщение
 
 

А кто нибудь знает ссылочку откуда скачать данные остранах, регионах, округах, обласях городах????

  Ответить  
 
 автор: час   (03.02.2009 в 11:22)   личное сообщение
 
 

http://hiprog.com/index.php?option=com_content&task=view&id=218&Itemid=38

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList