powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос по Data Environment и таблицам, входящим в неё
30 сообщений из 30, показаны все 2 страниц
Вопрос по Data Environment и таблицам, входящим в неё
    #33734853
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скажите пожалуйста, почему в DE таблицы не связываються так, как они связаня в Database designer?
В чем различие?
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33734905
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему в DE таблицы не связываються так, как они связаня в Database designer?
Потому, что и в Database designer они никак не связаны. То, что ты там видишь - всего лишь информация для построителя Referncial Integrity.
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33734961
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ладно, а почему в DE таблицы не связываються по нескольким индексам (одну таблицу могу привязать к главной (любую), остальные уже нет)?
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33734983
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А тут надо еще внимательно изучить сам процесс связывания тобой этих самых табличек. Подробное описание последовательности действий в студию и, возможно, мы и найдем причину такой необычности поведения.
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33735195
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как сюда на форум скриншот выложить? так бы было понятнее...
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33735564
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про "Связи и отношения между таблицами" можно почитать здесь http://www.foxclub.ru/articles/index.php?id=36
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33735758
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо DIMM, почитал.
Не понял след фразу:
"Если Вы работаете с DataEnvironment формы или отчета, то установка связи между таблицами фактически означает команду SET RELATION. А установка значения свойства объекта Relation.OneToMany = .T. фактически означает команду SET SKIP TO. Еще раз напомню, для правильной работы связи просто необходимо установить главный индекс в подчиненной таблице. Т.е. свойство Order соответствующего объекта Cursor. Индекс главной таблицы на работу связи никак не влияет."

Главный - это какой? Primary что-ли?
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33735784
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Главный индекс - это тот индексный ключ, под управлением которого в данный момент находится таблица. Таблица не может быть отсортирована по нескольким индексным ключам одновременно. Хотя, если одна и та же таблица открыта одновременно в нескольких рабочих областях, то у каждой копии таблицы может быть назначен свой главный индекс." - цитата вот отсюда http://www.foxclub.ru/articles/index.php?id=35 там про индексы все написано)
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33735822
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to проходящий:
последовательность такая: обьединяю в DE 2 таблички (Оборуд и оставщ.
В первой есть идентификатор поставщика, он Regular. А в поставщ он Primary.) путем перетаскивания id с оборудов на id поставщ. Все, связь есть.
Значит теперь я на форме могу в Grid объеденить поля с этих таблиц, ведь я сделал тоже самое, что и SET RELATION...
Вот только как мне поля поставщика перетянуть к полям, которые выводятся?
В Grid Builder никак.
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33735850
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. один DBF файл может иметь любое число индексов, и все они могут быть одновременно открыты. Например USE sklad INDEX tovar, invnomer - откроет два индекса. ОДнако главным управляющим индексом , т.е. таким , в соответствии с которым при необходимости будет перемещаться указатель записи , может быть только один. Им является индексный файл, открытый самым первым в команде (у нас tovar) или назначеный таковым опцией ORDER.
В случае если необходимо сделать главным другой индекс, используется команда SET ORDER TO (см. HELP)
- это вот вырезки из Попова по твоему вопросу.
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33735870
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю, про главный индекс понял.
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33735888
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На свой пост
последовательность такая: обьединяю в DE 2 таблички (Оборуд и оставщ.
В первой есть идентификатор поставщика, он Regular. А в поставщ он Primary.) путем перетаскивания id с оборудов на id поставщ. Все, связь есть.
Значит теперь я на форме могу в Grid объеденить поля с этих таблиц, ведь я сделал тоже самое, что и SET RELATION...
Вот только как мне поля поставщика перетянуть к полям, которые выводятся?
В Grid Builder никак.
вроде уже догнал, путем создания LV, содержащего эти 2 таблицы, в грид билдере вывел все нужные поля. Т.е. мои таблицы в DE по ходу вообще не нужны...
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33735911
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Adic...вроде уже догнал, путем создания LV, содержащего эти 2 таблицы, в грид билдере вывел все нужные поля. Т.е. мои таблицы в DE по ходу вообще не нужны...Я бы тоже посоветовал использовать LV вместо таблиц.
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33736256
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, где устанавливать значения свойства объекта Relation.OneToMany ?
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33736298
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще вопрос возник, все по той же теме:
Grid с оборудованием и поставщиками я вывожу, только выводиться немного не то, а вернее выводиться все, что есть в таблице оборудов, а мне нужно чтоб показывалось только то оборудование, наименование которого я указал в Grid, распологающейся на этой же форме... Может быть нужно как-то использовать id_наименования, только вот как, что-то я не соображу...
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33738417
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все еще жду помощи....
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33738841
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdicПодскажите, где устанавливать значения свойства объекта Relation.OneToMany ?

- Дизайнер формы
- пункт меню DataEnvironment
- правой клавишей мыши один раз щелкнуть по линии, соединяющей два объекта Cursor
- из появившегося меню выбрать пункт Properties
- в появившемся окне Properties найти строку OneToMany

AdicЕще вопрос возник, все по той же теме:
Grid с оборудованием и поставщиками я вывожу, только выводиться немного не то, а вернее выводиться все, что есть в таблице оборудов, а мне нужно чтоб показывалось только то оборудование, наименование которого я указал в Grid, распологающейся на этой же форме... Может быть нужно как-то использовать id_наименования, только вот как, что-то я не соображу...
Используй 2 разных Grid.

В одном - справочник оборудования
В другом - поставщики

Таблицы должны быть связаны в DataEnviroenment формы. Оборудование - главная, Поставщики - подчиненная.
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33739075
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир,
не вижу смысла использовать 2 разных Grid, так как у одного оборудования один поставщик. Зачем Грид, в которов одня запись? Разьве так нельзя никак зделать?
В DataEnviroenment формы у меня LV, для каждой из Гридов (наименов, оборудов).
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33739083
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а таблицы - так и есть, оборудование - главная, в ней id на поставщика. Таблица поставщик отдельно, связаны по id.
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33739199
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdicВладимир,
не вижу смысла использовать 2 разных Grid, так как у одного оборудования один поставщик. Зачем Грид, в которов одня запись? Разьве так нельзя никак зделать?
В DataEnviroenment формы у меня LV, для каждой из Гридов (наименов, оборудов).
Так объясни чего надо-то?

Как понимать вот это:

Adic
в DE 2 таблички (Оборуд и оставщ)
...
Grid с оборудованием и поставщиками я вывожу,
...
мне нужно чтоб показывалось только то оборудование, наименование которого я указал в Grid, распологающейся на этой же форме

В каком Grid? Как указываешь? Что вообще отображено на форме? Что фильтруем-то?
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33739623
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
извиняюсь, что говорю непонятно...
проблема в следующем:
на форме есть 3 объекта Grid. Для каждого из них в DE есть LV.
Первый Грид отображает тип оборудования. Во втором Гриде нужно отобразить наименования оборудования, соответствующее выбранному типу в 1-м грид.
С 3-им грид тоже самое: нужно отобразить характеристики того оборудования, наименование которого мы выберем (во 2-м гриде).
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33739752
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку речь идет о параметризированных Local View, то через связи это не решается.

В событии AfterRowColChange() первого и второго Grid делаешь анализ на факт изменения строки (значение свойства Grid.RowColChange). Если произошло изменение строки, то выполняешь перезапрос подчиненных Local View (функция Requery()). В качестве параметра берешь значение текущей записи.
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33739773
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир, поясните пожалуйста глупому, что значит " В качестве параметра берешь значение текущей записи"?

А анализ на факт изменения для первого Грида такой пойдет?
if thisform.Grid1.RowColChange
REQUERY("view_naim_ob")
endif
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33740204
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здраствуйте!
Свой пред. вопрос решл сл. путем:
в свойстве AfterRowColChange прописал код:
SELECT DISTINCT наименов_оборуд.наименов_оборудования,
наименов_оборуд.общее_количество;
from оборудов.dbf INNER JOIN тип_оборудов.dbf;
ON оборудов.id_типа_оборудования = тип_оборудов.id_типа_оборудования;
INNER JOIN наименов_оборуд.dbf;
ON оборудов.id_наим_оборудования = наименов_оборуд.id_наим_оборуд;
WHERE тип_оборудов.тип_оборудования = this.value;
INTO CURSOR cursoradapter1
this.Parent.Grid2.RecordSource = "cursoradapter1"
this.Parent.Grid2.Refresh()

Теперь при запуске формы Grid2 не показывает вообще ничего, а после того, как в Grid1 сработает AfterRowColChange (по щелчку мыши) появляються данные. Можно ли сделать так, чтоб 2-й Грид сразу после запуска формы показывал данные?
И еще: столбцы во 2-м Гриде, когда показываються данные, смещаються влево так, что ничего не прочитать. Это и есть следствие автоматической перестройки Грида, или как?
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33740389
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо форуму на сайте ФоксКлаб, ибо благодаря им я исправил свою последнюю ошибку :)
thisform.Grid2.RecordSource = ""
SELECT DISTINCT наименов_оборуд.наименов_оборудования,
наименов_оборуд.общее_количество;
from оборудов.dbf INNER JOIN тип_оборудов.dbf;
ON оборудов.id_типа_оборудования = тип_оборудов.id_типа_оборудования;
INNER JOIN наименов_оборуд.dbf;
ON оборудов.id_наим_оборудования = наименов_оборуд.id_наим_оборуд;
WHERE тип_оборудов.тип_оборудования = this.value;
INTO CURSOR cursoradapter1
thisform.Grid2.RecordSource = "cursoradapter1"
thisform.Grid2.SetFocus()
Только вот не могу найти ответа на такой вопрос: как видно из кода, приведенном выше, я переключаю Грид по this.value. А это работает только если я щелкаю мышкой на первом столбце (наименов_оборудования), если же я вдруг случайно щелкну на втором столбце - выскакивает ошибка
Operator/operand type mismatch ... Оно то и понятно почему, только вот как это исправить можно, подскажите, знающие люди...
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33740423
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошу прошения, немного не так сформулировал вопрос:
я беру значение для следующего Грида по this.value от текушего.
А это работает только если я щелкаю мышкой на первом столбце (наименов_оборудования), если же я вдруг случайно щелкну на втором столбце - выскакивает ошибка
Operator/operand type mismatch...
Как можно отловить выбранные параметр из Грида, т.е. первый столбец, и не реагировать на клиу на втором?
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33740724
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По сути, то, что ты видишь в Grid - это и есть содержимое таблицы - источника. Пермещаясь по строкам Grid, ты, по сути, перемещаешся по строкам таблицы. Значит, на нужной строке ты уже стоишь. Остается просто прочитать содержимое соответствующего поля

Т.е. не важно, по какому именно полю щелкнули мышкой. Читай значение напрямую из таблицы, а не из объектов формы.

MyTable.MyField
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33743907
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир, спасибо за ответ, только я вас немного не понял:
получиться что я буду select-ом брать те записи, которые удовлетворяют условию наименов_оборуд.наименов_оборудования = наименов_оборуд.наименов_оборудования ? Так что-ли... Мне же нужно сравнить.
Или я опять неправельно высказал проблему, или вы меня опять не поняли.

Дело ведь в том, что мне нужно отследить на какой строке я стою (всмысле выбрал мышкой), взять наименование оборудование с этой строки Грида (причем наименование в первом столбце), и соответствуя этому наимен. показать характ-ки в подчиненном Гриде (характ. этого оборудования). Т.е. использовать данные из др. таблицы.
Поэтому я и пытаюсь this.value поймать то, на чем спозиционировался.

Может быть я совсем глупый, поясните мне пожалуйста еще раз, а то я все еще не решил свою проблему.
Заранее благодарю!
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33743925
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ты щелкнул мышкой по ячейке в любом столбце Grid. При этом указатель записи таблицы-источника этого Grid (в котором щелкнули мышкой) перемещается на ту запись в которой щелкнули.

Т.е. в этот момент ты находишся на нужной тебе записи таблицы "наименов_оборуд". При этом совершенно не имеет значения в каком именно столбце Grid. Можно в любой момент прочитать значение любого поля текущей записи .

Далее тебе надо выбрать записи из таблицы "характ_обруд", соответсвующие коду текущей записи таблицы "наименов_оборуд". Вот прямо так и выбирай. По условию вроде

Код: plaintext
1.
2.
SELECT * ;
FROM "характ_обруд" ;
WHERE "характ_обруд.код_наименов_оборуд" = "наименов_оборуд.код_наименов_оборуд"

Т.е. в данном случае тебя совершенно не интересуют свойства объектов (This.Value). Ты обращаешся к "первоисточникам". К самой таблице-источнику, лежащей в основе отображаемых значений.
...
Рейтинг: 0 / 0
Вопрос по Data Environment и таблицам, входящим в неё
    #33745512
Adic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир, огромное спасибо, понял и сделал! :))
Все работает.

С Уважением, Михаил.
...
Рейтинг: 0 / 0
30 сообщений из 30, показаны все 2 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос по Data Environment и таблицам, входящим в неё
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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