Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Развернутое дерево / 7 сообщений из 7, страница 1 из 1
13.11.2003, 11:34
    #32322637
Bukovka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Развернутое дерево
У меня вопрос: как сделать так, чтобы при загрузке формы, на которой есть Treeview, дерево было развернутое, т.е. все вложенности до последнего уровня были раскрыты, а не только начальный уровень.
...
Рейтинг: 0 / 0
13.11.2003, 11:57
    #32322693
CtrlAlt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Развернутое дерево
Пробегаешь по всем узлам и делаешь Expanded=true
...
Рейтинг: 0 / 0
13.11.2003, 13:04
    #32322869
Bukovka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Развернутое дерево
Как работает Treeview я изучаю недавно, поэтому у меня еще многое не получается. Построить то я его постороила, а как обновлять не знаю.
Дерево я строю так, на OnActivate вызываю функцию:

Sub TreeLoad()
tvwODE.Nodes.Clear
Set rst = CurrentDb.OpenRecordset("SELECT * from YPSection Where YPSection.ParentID=0", dbOpenForwardOnly)
While Not rst.EOF
Set nodode = tvwODE.Nodes.Add(, , "in" & rst!YPSECTIONID, "" & rst!NAME)
nodode.Image = 2
nodode.Expanded = True 'разворачиваю узел
str1 = "Select * from YPSection where ParentID=" & rst!YPSECTIONID
Set rst1 = CurrentDb.OpenRecordset(str1, dbOpenForwardOnly)
While Not rst1.EOF
Set nodode = tvwODE.Nodes.Add("in" & rst!YPSECTIONID, tvwChild, "inin" & rst1!YPSECTIONID, "" & rst1!NAME)
nodode.Image = 1
nodode.Expanded = True ' дочерний узел разворачиваю

rst1.MoveNext
Wend '
rst.MoveNext
Wend

При добавлении узла из другой формы, надо перерисовать дерево, выделить новый узел. По событию Activate дерево перересуется, но вот как быть с нужным узлом?
...
Рейтинг: 0 / 0
13.11.2003, 13:13
    #32322888
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Развернутое дерево
А зачем перерисовывать?
.Nodes.Add
selectedNode.EnsureVisible
selectedNode.Selected = True
...
Рейтинг: 0 / 0
13.11.2003, 13:17
    #32322897
Bukovka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Развернутое дерево
У меня добавление идет в таблицу, поэтому надо обновить дерево.
...
Рейтинг: 0 / 0
13.11.2003, 13:21
    #32322908
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Развернутое дерево
Ну так ты и в таблицу запиши, и в дерево добавь:

Dim cmd As New Command, prm As New Parameter, nd As New Node
cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandText = "dbo.Proc_AddCategory"
cmd.CommandType = adCmdStoredProc
Set prm = cmd.CreateParameter("@Parent_category_id", adInteger, adParamInput, , s2k(CategoriesTree.SelectedItem.Key))
cmd.Parameters.Append prm
Set prm = cmd.CreateParameter("@Category_id", adInteger, adParamOutput)
cmd.Parameters.Append prm
Set prm = cmd.CreateParameter("@Category_name", adVarChar, adParamOutput, 255)
cmd.Parameters.Append prm
cmd.Prepared = False
cmd.Execute
Set nd = Me!CategoriesTree.Nodes.Add(Me!CategoriesTree.SelectedItem.Key, tvwChild, k2s(cmd.Parameters(1)), cmd.Parameters(2))
nd.EnsureVisible
nd.Selected = True
...
Рейтинг: 0 / 0
13.11.2003, 13:26
    #32322919
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Развернутое дерево
Забыл прокоментировать - выполняем хп, с параметрами (родительсктй элемент и новое имя), которая добавляет в таблицу элемент. Процедура возвращает код нового элемента, и спокойненько лепим его в контрол на нужное место.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Развернутое дерево / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]