Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Нужен совет опытного человека / 22 сообщений из 22, страница 1 из 1
20.05.2003, 13:59
    #32164013
РусланVFP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
Помогите пожалуйста решить следующий вопрос:

Мне нужно на форме отображать данные в виде дерева. Данные представлены в таком виде:

table1

поля:
int i_id1
char c_name

ключи

ID1- primary- от i_id



table2

поля:
int i_id2
int i_partition
char c_name

ключи

ID2- primary- от i_id2
ID_PART - regular - от i_partition




table3

поля:

int i_id3
int i_subpartition
char c_name

ключи

ID3- primary- от i_id3
ID_SUBPART - regular -от i_subpartition

Таблицы связаны по ключам :

ID1<->ID_PART ,

ID2<->ID_SUBPART


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

Заранее благодарен.
...
Рейтинг: 0 / 0
20.05.2003, 15:52
    #32164157
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
А объект TreeView - не подойдет?

Что это такое и азы работы с ним можешь почитать здесь

http://kodu.neti.ee/~juri4/vfpplus/ax_treeview_ru.htm
...
Рейтинг: 0 / 0
20.05.2003, 22:40
    #32164499
РусланVFP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
Но в нем нету поиска по записям, как, например, в том же Ingrid'e, а хотелось бы. Неужели все пользуются TreeView'ом?
...
Рейтинг: 0 / 0
21.05.2003, 12:48
    #32164954
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
Что значит "поиск по записям"? И кстати, что за класс "InGrid"?

Организовать позиционирование указателя в TreeView на нужный узел достаточно просто. Только начинать надо с уяснения того, что именно ты хочешь получить.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
19.03.2013, 12:54
    #38189493
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
ВладимирМА объект TreeView - не подойдет?

Что это такое и азы работы с ним можешь почитать здесь

http://kodu.neti.ee/~juri4/vfpplus/ax_treeview_ru.htm

Ссылка не рабочая..:-((
...
Рейтинг: 0 / 0
19.03.2013, 13:19
    #38189561
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
q1w1e1ВладимирМА объект TreeView - не подойдет?

Что это такое и азы работы с ним можешь почитать здесь

http://kodu.neti.ee/~juri4/vfpplus/ax_treeview_ru.htm

Ссылка не рабочая..:-((

ActiveX компонент TreeView. Часть 1. Введение.
...
Рейтинг: 0 / 0
20.03.2013, 05:40
    #38190787
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
Что-то не получается..
"...из системного меню VFP Tools пункт Component Gallery. Откроется окно "Catalogs - Component Gallery". В левом фрейме окна имеется дерево, в котором нужно развернуть узел ActiveX Catalog (если он свернут, разумеется). "

Как найти этот узел?

...
Рейтинг: 0 / 0
20.03.2013, 07:03
    #38190805
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
q1w1e1Как найти этот узел?
На форме добавляешь OLE, показываешь мышкой координаты, появляется выбор объекта, выбираешь "Microsoft TreeView control 6.0"
...
Рейтинг: 0 / 0
20.03.2013, 07:17
    #38190806
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
но я хотел пройти по статье Ю. Шутенко. и остановился на том, что в Component Gallery, у меня нет дерева объектов.... , вот и пытаюсь найти это дерево..:-)
Если я буду следовать Вашим советам,

то мне всё время прийдется спрашивать у вас, и вам это когда-нибудь надоест..:-)
...
Рейтинг: 0 / 0
20.03.2013, 07:35
    #38190815
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
Способом из статьи никогда не пользовался, попробовал, у меня там не пусто, но дерева там нет.
Ошибки как у тебя тоже не видел никогда.
Поступим проще, в архиве форма с treeview. Скопируй с нее куда надо.
Если не откроется - значит сам контрол отсутствует на твоем компе
...
Рейтинг: 0 / 0
20.03.2013, 07:47
    #38190819
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
Вот пошаговая инструкция с картинками :)
...
Рейтинг: 0 / 0
20.03.2013, 07:49
    #38190820
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
спасибо. скорей всего надо начинать статью с проверки установлен ли этот контрол или нет, потом установка этого контрола и работа с этим контролом..:-)
У меня скорей всего этот контрол не установлен, вот теперь остановился на установке этого контрола...
...
Рейтинг: 0 / 0
20.03.2013, 07:51
    #38190821
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
Если бы он был не установлен, то вышло бы окно выбора файла с этим контролом. Так что все у тебя установлено.
...
Рейтинг: 0 / 0
20.03.2013, 08:05
    #38190824
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
Можешь примеры фоксовские посмотреть. В папке фокса подпапка Samples\Solution\ запусти solution.app
там ActiveX - ActiveX Control - Add and Remove items from treeview
там же исходники примеров.
...
Рейтинг: 0 / 0
20.03.2013, 08:13
    #38190828
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
Большое спасибо за пошаговую инстукцию...сейчас буду разбирать примеры...
...
Рейтинг: 0 / 0
20.03.2013, 09:40
    #38190925
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
Я ещё разбираюсь с прмерами... но возник вопрос, какой максимальный объем записей при заполнении treeview, чтоб он более-менее работал нормально... или дочернии узлы можно заполнять "на лету"
...
Рейтинг: 0 / 0
20.03.2013, 10:33
    #38191002
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
q1w1e1Я ещё разбираюсь с прмерами... но возник вопрос, какой максимальный объем записей при заполнении treeview, чтоб он более-менее работал нормально... или дочернии узлы можно заполнять "на лету"
Заполнение нескольких тысяч записей сильно тормозит.
Я так делал для больших деревьев: заполняется только первый уровень. Чтобы показать что внутри уровня есть подуровни - в него добавлялся "спец. узел" (чтобы знак "+" показался для разворачивания). Когда пользователь разворачивает нужный элемент проверяется наличие этого "спец. узла", если есть - заполняется реальными данными.
...
Рейтинг: 0 / 0
20.03.2013, 11:05
    #38191057
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
Конечно можно разобраться, но что-то уже мозг не вникает..., может подскажете, какое событие в примере( Samples\Solution\ запусти solution.app там ActiveX - ActiveX Control - Add and Remove items from treeview) реализовано, что проходя по дереву, наименование отображается в Label, как это реализовать..., т.е. что мне надо, проходя по справочнику групп, я беру из key ветки дерева id этой группы и показываю записи с этим ID в гриде
По аналогии в гриде метод AfterRowColChange..
...
Рейтинг: 0 / 0
20.03.2013, 16:04
    #38191634
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
q1w1e1Конечно можно разобраться, но что-то уже мозг не вникает..., может подскажете, какое событие в примере(
Давно дерево не использовал, для моих задач проще в гриде извернуться.
вот как я делал когда-то
метод oleTree.Expand()
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
LPARAMETERS node
node.selected=.t.
lcKey=thisform.oleTree.selecteditem.key
if lcKey="k"
	thisform.oleTree.selecteditem.key="i"+substr(lcKey,2)
	ThisForm.oleTree.nodes.remove("c"+substr(lcKey,2))
	sele xtree
	scan for nParentId=val(substr(lcKey,2))
		thisform.AddNode(nXtreeId)
	endscan
	thisform.oleTree.click
endif


логика такая:
key состоит из буквы-префикса и ID таблицы (xtree)
префиксы
"k" - незагруженная ветка, внутри одноименный элемент с префиксом "с"
"i" - загруженная ветка

thisform.AddNode(nXtreeId) - добавление узла
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
lpara lnXtreeId
local lnRe
sele xtree
lnRe=recno()
if xtree.nXtreeId#lnXtreeId
	seek lnXtreeId in xtree order nXtreeId
endif
lnParentId=nParentId
llCh=indexseek(lnXtreeId,.f.,'xtree','nParentId')
go lnRe
lcNodeKey=iif(llCh,"k","i")+alltr(str(lnXtreeId))
ThisForm.oleTree.nodes.add("i"+iif(!empty(xtree.nParentId),alltr(str(xtree.nParentId)),'----'),4,lcNodeKey,'',thisform.geticon())
ThisForm.SetNodeText(lcNodeKey)
if llCh
	ThisForm.oleTree.nodes.add("k"+alltr(str(lnXtreeId)),4,"c"+astr(lnXtreeId),"",thisform.geticon())
endif


Если не разберешься - пиши попробую это в отдельный пример собрать.
...
Рейтинг: 0 / 0
20.03.2013, 16:27
    #38191675
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
И сам вывод всего остального по выбранному узлу в грид или еще куда
oleTree.Click()
Код: sql
1.
this.nodeclick()


oleTree.NodeClick()
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
LPARAMETERS node
lcKey=substr(This.SelectedItem.Key,2)
if lcKey#"----"
	seek in xtree val(lcKey) order nXtreeId
	...
else
	...
endif
...
Рейтинг: 0 / 0
21.03.2013, 09:22
    #38192579
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
спасибо, только что заглянул, сейчас отработаю....
...
Рейтинг: 0 / 0
22.03.2013, 15:00
    #38194974
sg12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен совет опытного человека
Dima TПоступим проще, в архиве форма с treeview. Скопируй с нее куда надо.
Если не откроется - значит сам контрол отсутствует на твоем компе

Классы создаются не копированием с формы на форму:

Menu-File-New-Class-New file
В открывшемся окне:
Class Name - имя класса
Based On - Ole Control
Store In - имя .vcx
В открывшемся окне - Control Type.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Нужен совет опытного человека / 22 сообщений из 22, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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