Разработка баз данныхРазработка баз данных

 Программирование  Программы  Ссылки  Обратная связь
     
. . .
. . .
startpage.htm Новости
about.htm О сайте
fileformat.htm I. Выбор технологии
clientserver.htm Преимущества клиент-серверной технологи
prepare.htm Переход от MDB к ADP
upsizing.htm Инструменты переноса данных
setupserver.htm Выбор версии и установка сервера
selectclient.htm Выбор версии MSAccess
formsreports.htm II. Формы, Отчеты MSAccess
queries.htm Запросы / ADO
inputparameters.htm Передача входных параметров
data_drivers.htm Библиотеки доступа к данным
forms.htm Формы MSAccess
requery.htm Обновление данных в форме
updatableform.htm Обновляемость данных в форме
dialogform.htm Остановка кода пока открыта форма
formsaverecord.htm Сохранить текущую запись
formgotorecord.htm Переход по записям формы
sumform.htm Итоги в формах
serverfiltersample.htm Пример серверного фильтра
formerror.htm Причина Ошибки #Error
menubarevent.htm Перехват нажатия на кнопку меню
woconditionalformat.htm Раскраска строк ленточной формы без условного форматирования
currrec.htm Выделение цветом текущей записи
subform.htm Подчиненные Формы
textboxenter.htm Ввод перевода строки
twimagelistbug.htm treview + imagelist + подч. форма
reports.htm Отчеты, общие рекомендации
report_input_parameters.htm Входные параметры
vbaprog.htm III. Программирование VBA
dbpic.htm Картинки в базе данных
binbmp.htm Двоичные данные картинки в поле таблицы базы данных
piclink.htm Хранение ссылок на файлы
picjpg.htm Бинарное содержимое JPG, Gif файла в бинарном поле базы данных
playsound.htm Воспроизведение звуков
tv.htm Функции для тривью
restartaccess.htm Перезапуск Аксесса
publicvariables.htm Передача и хранение параметров и настроек
collectionfunctions.htm Коллекция полезных функций
datepicker.htm Всплывающий календарик
menuhummer.htm Меню и тулбары
padeg.htm Склонение по падежам
comborowsource.htm Источник данных для поля со списком
filedialog.htm Диалог выбора файла / папки
sendmapi.htm Отправка почты (4 способа) + архивация
autoupdateclient.htm Автоматическое обновление клиентской части
licenses.htm  Устранение проблем с регистрацией компонентов
uncommented.htm Без коментариев
filetime.htm Время и дата файла
reportsample.htm Пример настраивомого отчета
adpformfilter.htm Серверный Фильтр by GEO
tempmdb.htm ADP: Временный MDB для временных таблиц
mutex.htm Запрет запуска нескольких копий приложения
translit.htm Транслитерация всего проекта.
updateident.htm Изменение счетчика
webinterface.htm IV WEB
accessinternet.htm Работа с аксесс через интернет
webupdate.htm Обновление приложения аксесс через интернет
msiecom.htm Программное управление веббраузером
sqlserver.htm MS SQL
mssqltransfer2.htm Перенос/копирование баз
mssqlperm.htm Adp проверка прав пользователя перед открытием формы или управление доступностью полей формы
mssqlcrossdatabase.htm  Межбазовые разрешения
tsqlcollection.htm T-sql коллекция
similarity.htm Сортировка по созвучности
esp.htm расширенные хранимые процедуры
mssqloptimizing.htm Оптимизация быстродействия
    

Функции для тривью

 
Построение тривью по одному рекордсету возвращающему все дерево  
Private Sub btree(Tv, idroot As Integer)  
Dim nodx As Node  
Dim nodetype  
Dim rs As New ADODB.Recordset  
Dim IdParent  
 
'Рекордсет должен выдавать дерево в отсортрованном порядке сначала родитель затем наследники  
rs.Open "SELECT ... as id_parent, ... as ID, ... as НазваниеУзла, ... as ИконкаУзла FROM ... where Id = " & idroot & " order by parentpath ", CurrentProject.Connection, adOpenKeyset, adLockReadOnly  
 
Do Until rs.EOF  
IdParent = "id" & rs!id_parent 'Код Родителя этого узла, для корневого null  
If rs.AbsolutePosition = 1 Then IdParent = Null 'Первый узел всегда корневой  
If IsNull(IdParent) Then nodetype = Null Else nodetype = tvwChild 'Если добавляем корневой элемент то тип Null  
Set nodx = Tv.Nodes.add(IdParent, nodetype, "id" & rs!ID, rs!НазваниеУзла , rs!ИконкаУзла)  
nodx.EnsureVisible  
rs.MoveNext  
Loop  
rs.Close  
Set rs = Nothing  
End Sub  
 
 
Пример использования:  
Private Sub Form_Load()  
Call btree(Me.TreeView1, 100)  
Call btree(Me.TreeView2, 105)  
End Sub  
 
 
Функция установки чекбокса всех дочерних узлов тривью на выбираемое для текущего родительского.  
 
Private Sub CheckChilds(ByVal Node As Object)  
Dim ChN  
If Node.Children > 0 Then  
Set ChN = Node.Child  
While ChN.Index <> ChN.LastSibling.Index  
ChN.Checked = Node.Checked  
If ChN.Children > 0 Then Call CheckChilds(ChN)  
Set ChN = ChN.Next  
Wend  
ChN.LastSibling.Checked = Node.Checked  
If ChN.LastSibling.Children > 0 Then Call CheckChilds(ChN.LastSibling)  
End If  
End Sub  
 
 
Функция снятия выделения у родительских узлов тривью  
Private Sub UnCheckParents(ByVal Node As Object)  
If Node.Parent Is Nothing Then Exit Sub  
Node.Parent.Checked = False  
Call UnCheckParents(Node.Parent)  
End Sub  
 
 
Типовой код вызова:  
Private Sub Treeview1_NodeCheck(ByVal Node As Object)  
Call CheckChilds(Node)  
Call UnCheckParents(Node)  
End Sub  
 
 
Функция возвращающая строку - список ID через запятую Записей рекордсета отмеченных (Checked) на уровне листьев тривью  
 
Private Function LastLevelSelNodesIDtoList(TV As Object)  
Dim ListStr  
Dim N  
For Each N In TV.Nodes  
If N.Children = 0 And N.Checked Then  
ListStr = ListStr & N.key & ","  
End If  
Next  
ListStr = Replace(ListStr, "id", "", , , vbTextCompare)  
If Len(ListStr) <> 0 Then LastLevelSelNodesIDtoList = Left(ListStr, Len(ListStr) - 1)  
End Function  
 
Функция Восстанавливающая отметки (Checked) узлов из строки-списка ID:  
Private Sub SelectNodeByList(ByRef TV As Object, KeyList)  
 
Dim arr, key, N  
arr = Split(KeyList, ",")  
For Each key In arr  
Set N = TV.Nodes("id" & key)  
N.Checked = True  
N.EnsureVisible  
Next key  
 
End Sub  
 
'Прим: функцию надо запускать из события таймер а затем отключать его:  
(при загрузке включить таймер)  
 
Private Sub Form_Timer()  
If RaspredTOIdFindepList <> "" Then Call SelectNodeByList(Me.Treeview1, RaspredTOIdFindepList)  
Me.TimerInterval = 0  
End Sub  
 
 
 
 
 
Полный Help по работе с контролом тривью находится в файле: CMCTL198.CHM  
обычное расположение файла: windows\help\
 
. . .
. . .
© 2000 - 2009 Алексей Козин эта вебстраница является зеркалом сайта www.msdatabase.ru Рейтинг@Mail.ru
Hosted by uCoz