Модуль RsTree download предназначен отображение каскадных объектов баз данных совместно с RSODBC.
Список функций и методов:
Load- создает объект дерево.
Close- уничтожает объект дерево.
Show- отображает дерево.
Selected- возвращает номер выбранной записи.
Append- добавляет запись в дерево.
Edit- редактирует запись дерева.
Delete- удаляет запись из дерева.
hWnd- возвращает описатель окна дерева.
Find- ищет в дереве первый подходящий элемент.
FindAll- ищет в дереве все подходящие элементы.
FindNext- выделяет следующий найденный элемент.
Index- возвращает номер эаписи по значению ключа.
Drag- Drag and drop елемент дерева.
Назначение.Создает объект дерево.
Load( LONG<hWnd> ) LONG<pClass>
hWnd - описатель родительского окна.
Пример:
SET Tree= RSTREE.Load( HWND ) IF EMPTY(Tree) GOTO CLOSE RES= ATTACH( Tree.hWnd(),0,0 ) EVENT 4000,RECORD EVENT $EDBLCLK,EDIT EVENT $EKEY,KEYDOWN IF NOT Tree.Show( Rs, "EVENT=4000;ID=ID;OWN=OWN" ) GOTO CLOSE EVENT 40203, EDIT EVENT 40201, APPEND EVENT 40202, DELETE EVENT $EDRAG,DRAGBEG END CLOSE: ERASE Tree.Close ERASE Rs.Close ERASE Shop.BaseClose BREAK END
Назначение.Уничтожает объект дерево.
Close
Пример:
ERASE Rs.Close
Назначение.Отображает дерево.
Show( OBJECT<Rs>, STRING<Param> ) BOOL
Rs - открытый recordset.
Param - параметры.
Описание.Метод отображает дерево вида:
Для отображения дерева методу передается открытый recordset образующий ирархическую структуру. Поля задающие
значение Primary Key задаются параметром ID, который может содержать до четырех полей.
Поля задающие ссылку на ID определяются параметром OWN. Для отображения елементов
дерева объект генерирует событие, код которого определяется параметром EVENT.
Дополнительно может быть задан параметр SORT, что указывает на необходимость
сортировать отображаемые данные.
Пример:
ok=Tree.Show( Rs, "EVENT=4000;ID=ID|FI;OWN=OWNID|OWNFI" )
Назначение.Возвращает номер выбранной записи.
Selected() LONG
Описание.Метод возвращает номер выбранной записи. Если таковой нет, то возвращается 0.
Пример:
REC=Tree.Selected()
Назначение.Добавляет запись в дерево.
Append( LONG<Rec> ) BOOL
Rec - номер добавляемой записи.
Описание.Метод добавляет новую запись в дерево. Точка добавления определяется значением полей заданных параметром OWN.
Пример:
ok=Tree.Append(NewRec)
Назначение.Корректирует данные елемента дерева.
Edit( LONG<Rec> ) BOOL
Rec - номер измененной записи.
Описание..Метод обнавляет данные об элементе дерева из записи.
Пример:
ok=Tree.Edit(Rec)
Назначение.Удаляет елемент дерева.
Delete( LONG<Rec> ) BOOL
Rec - номер измененной записи.
Пример:
ok=Tree.Delete(Rec)
Назначение.возвращает описатель окна дерева.
hWnd() LONG
Пример:
hTree=Tree.hWnd()
Назначение.Ищет заданную подстроку в элементах дерева.
Find( STRING<Pattern> ) BOOL
Pattern - фрагмент текста для поиска.
Описание.Метод ищет заданную подстроку в элементах дерева и в случае успеха устанавливает курсор на первой найденной.
Пример:
ok=Tree.Find("133")
Назначение.Ищет заданную подстроку в элементах дерева.
FindAll( STRING<Pattern> ) LONG
Pattern - фрагмент текста для поиска.
Описание.Метод ищет заданную подстроку в элементах дерева и возвращает их количество.
Пример:
Cnt=Tree.FindAll("133") IF Cnt > 0 THEN Num=Tree.FindNext(0)
Назначение.Выделяет следующий найденный элемент.
FindNext( LONG<Ind> ) LONG
Ind - номер элемента начиная с нуля.
Описание.Метод устанавливает указатель на найденном элементе дерева и возвращает номер следующего элемента.
Пример:
Cnt=Tree.FindAll("133") IF Cnt > 0 THEN Num=Tree.FindNext(0)
Назначение.Возвращает номер эаписи по значению ключа.
Index( LONG<I1>, LONG<I2>, LONG<I3>, LONG<I4> ) LONG
I1..I4 - значения полей ключа.
Пример:
REC=Tree.Index(567,1,0,0)
Назначение.Drag and drop елемент дерева.
Drag( LONG<Param> ) LONG
Param - значения PARAM dBasic.
Описание.Метод позволяет организовать перемещение элементов дерева методом Drag and drop. Для его активизации следует установить событие dBasic EVENT $EDRAG,DRAGBEG. При возникновении этого события вызов метода возвращает номер записи, которую пользователь хочет переместить. А по завершению перемещения номер записи в которую происходит перемещение.
Пример:
... EVENT $EDRAG,DRAGBEG ... END DRAGBEG: r1=Tree.Drag( PARAM ) EVENT $EDRAG EVENT $EMOVE,DRAGMOVE EVENT $ELBUTUP,DRAGSTOP END DRAGMOVE: Tree.Drag( PARAM ) END DRAGSTOP: r2=Tree.Drag( 0 ) EVENT $EMOVE EVENT $ELBUTUP EVENT $EDRAG,DRAGBEG IF r1=r2 THEN END Rs.RecGet(r1) i1=Rs.FldGet("ID") Rs.RecGet(r2) i2=Rs.FldGet("ID") 'Перемещение ... END