powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Развернутое дерево
7 сообщений из 7, страница 1 из 1
Развернутое дерево
    #32322637
Bukovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня вопрос: как сделать так, чтобы при загрузке формы, на которой есть Treeview, дерево было развернутое, т.е. все вложенности до последнего уровня были раскрыты, а не только начальный уровень.
...
Рейтинг: 0 / 0
Развернутое дерево
    #32322693
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробегаешь по всем узлам и делаешь Expanded=true
...
Рейтинг: 0 / 0
Развернутое дерево
    #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
Развернутое дерево
    #32322888
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем перерисовывать?
.Nodes.Add
selectedNode.EnsureVisible
selectedNode.Selected = True
...
Рейтинг: 0 / 0
Развернутое дерево
    #32322897
Bukovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня добавление идет в таблицу, поэтому надо обновить дерево.
...
Рейтинг: 0 / 0
Развернутое дерево
    #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
Развернутое дерево
    #32322919
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл прокоментировать - выполняем хп, с параметрами (родительсктй элемент и новое имя), которая добавляет в таблицу элемент. Процедура возвращает код нового элемента, и спокойненько лепим его в контрол на нужное место.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Развернутое дерево
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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