|
|
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
скажите пожалуйста, почему в DE таблицы не связываються так, как они связаня в Database designer? В чем различие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 11:21 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
почему в DE таблицы не связываються так, как они связаня в Database designer? Потому, что и в Database designer они никак не связаны. То, что ты там видишь - всего лишь информация для построителя Referncial Integrity. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 11:34 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
Ладно, а почему в DE таблицы не связываються по нескольким индексам (одну таблицу могу привязать к главной (любую), остальные уже нет)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 11:46 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
А тут надо еще внимательно изучить сам процесс связывания тобой этих самых табличек. Подробное описание последовательности действий в студию и, возможно, мы и найдем причину такой необычности поведения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 11:52 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
а как сюда на форум скриншот выложить? так бы было понятнее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 12:36 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
про "Связи и отношения между таблицами" можно почитать здесь http://www.foxclub.ru/articles/index.php?id=36 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 13:53 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
Спасибо DIMM, почитал. Не понял след фразу: "Если Вы работаете с DataEnvironment формы или отчета, то установка связи между таблицами фактически означает команду SET RELATION. А установка значения свойства объекта Relation.OneToMany = .T. фактически означает команду SET SKIP TO. Еще раз напомню, для правильной работы связи просто необходимо установить главный индекс в подчиненной таблице. Т.е. свойство Order соответствующего объекта Cursor. Индекс главной таблицы на работу связи никак не влияет." Главный - это какой? Primary что-ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 14:34 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
"Главный индекс - это тот индексный ключ, под управлением которого в данный момент находится таблица. Таблица не может быть отсортирована по нескольким индексным ключам одновременно. Хотя, если одна и та же таблица открыта одновременно в нескольких рабочих областях, то у каждой копии таблицы может быть назначен свой главный индекс." - цитата вот отсюда http://www.foxclub.ru/articles/index.php?id=35 там про индексы все написано) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 14:40 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
to проходящий: последовательность такая: обьединяю в DE 2 таблички (Оборуд и оставщ. В первой есть идентификатор поставщика, он Regular. А в поставщ он Primary.) путем перетаскивания id с оборудов на id поставщ. Все, связь есть. Значит теперь я на форме могу в Grid объеденить поля с этих таблиц, ведь я сделал тоже самое, что и SET RELATION... Вот только как мне поля поставщика перетянуть к полям, которые выводятся? В Grid Builder никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 14:48 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
Т.е. один DBF файл может иметь любое число индексов, и все они могут быть одновременно открыты. Например USE sklad INDEX tovar, invnomer - откроет два индекса. ОДнако главным управляющим индексом , т.е. таким , в соответствии с которым при необходимости будет перемещаться указатель записи , может быть только один. Им является индексный файл, открытый самым первым в команде (у нас tovar) или назначеный таковым опцией ORDER. В случае если необходимо сделать главным другой индекс, используется команда SET ORDER TO (см. HELP) - это вот вырезки из Попова по твоему вопросу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 14:53 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
Благодарю, про главный индекс понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 14:57 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
На свой пост последовательность такая: обьединяю в DE 2 таблички (Оборуд и оставщ. В первой есть идентификатор поставщика, он Regular. А в поставщ он Primary.) путем перетаскивания id с оборудов на id поставщ. Все, связь есть. Значит теперь я на форме могу в Grid объеденить поля с этих таблиц, ведь я сделал тоже самое, что и SET RELATION... Вот только как мне поля поставщика перетянуть к полям, которые выводятся? В Grid Builder никак. вроде уже догнал, путем создания LV, содержащего эти 2 таблицы, в грид билдере вывел все нужные поля. Т.е. мои таблицы в DE по ходу вообще не нужны... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 15:02 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
Adic...вроде уже догнал, путем создания LV, содержащего эти 2 таблицы, в грид билдере вывел все нужные поля. Т.е. мои таблицы в DE по ходу вообще не нужны...Я бы тоже посоветовал использовать LV вместо таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 15:07 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
Подскажите, где устанавливать значения свойства объекта Relation.OneToMany ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 16:31 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
Еще вопрос возник, все по той же теме: Grid с оборудованием и поставщиками я вывожу, только выводиться немного не то, а вернее выводиться все, что есть в таблице оборудов, а мне нужно чтоб показывалось только то оборудование, наименование которого я указал в Grid, распологающейся на этой же форме... Может быть нужно как-то использовать id_наименования, только вот как, что-то я не соображу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 16:39 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
все еще жду помощи.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 13:18 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
AdicПодскажите, где устанавливать значения свойства объекта Relation.OneToMany ? - Дизайнер формы - пункт меню DataEnvironment - правой клавишей мыши один раз щелкнуть по линии, соединяющей два объекта Cursor - из появившегося меню выбрать пункт Properties - в появившемся окне Properties найти строку OneToMany AdicЕще вопрос возник, все по той же теме: Grid с оборудованием и поставщиками я вывожу, только выводиться немного не то, а вернее выводиться все, что есть в таблице оборудов, а мне нужно чтоб показывалось только то оборудование, наименование которого я указал в Grid, распологающейся на этой же форме... Может быть нужно как-то использовать id_наименования, только вот как, что-то я не соображу... Используй 2 разных Grid. В одном - справочник оборудования В другом - поставщики Таблицы должны быть связаны в DataEnviroenment формы. Оборудование - главная, Поставщики - подчиненная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 14:41 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
Владимир, не вижу смысла использовать 2 разных Grid, так как у одного оборудования один поставщик. Зачем Грид, в которов одня запись? Разьве так нельзя никак зделать? В DataEnviroenment формы у меня LV, для каждой из Гридов (наименов, оборудов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 15:40 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
а таблицы - так и есть, оборудование - главная, в ней id на поставщика. Таблица поставщик отдельно, связаны по id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 15:42 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
AdicВладимир, не вижу смысла использовать 2 разных Grid, так как у одного оборудования один поставщик. Зачем Грид, в которов одня запись? Разьве так нельзя никак зделать? В DataEnviroenment формы у меня LV, для каждой из Гридов (наименов, оборудов). Так объясни чего надо-то? Как понимать вот это: Adic в DE 2 таблички (Оборуд и оставщ) ... Grid с оборудованием и поставщиками я вывожу, ... мне нужно чтоб показывалось только то оборудование, наименование которого я указал в Grid, распологающейся на этой же форме В каком Grid? Как указываешь? Что вообще отображено на форме? Что фильтруем-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 16:19 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
извиняюсь, что говорю непонятно... проблема в следующем: на форме есть 3 объекта Grid. Для каждого из них в DE есть LV. Первый Грид отображает тип оборудования. Во втором Гриде нужно отобразить наименования оборудования, соответствующее выбранному типу в 1-м грид. С 3-им грид тоже самое: нужно отобразить характеристики того оборудования, наименование которого мы выберем (во 2-м гриде). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 18:27 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
Поскольку речь идет о параметризированных Local View, то через связи это не решается. В событии AfterRowColChange() первого и второго Grid делаешь анализ на факт изменения строки (значение свойства Grid.RowColChange). Если произошло изменение строки, то выполняешь перезапрос подчиненных Local View (функция Requery()). В качестве параметра берешь значение текущей записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 19:35 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
Владимир, поясните пожалуйста глупому, что значит " В качестве параметра берешь значение текущей записи"? А анализ на факт изменения для первого Грида такой пойдет? if thisform.Grid1.RowColChange REQUERY("view_naim_ob") endif ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 19:49 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
Здраствуйте! Свой пред. вопрос решл сл. путем: в свойстве 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-м Гриде, когда показываються данные, смещаються влево так, что ничего не прочитать. Это и есть следствие автоматической перестройки Грида, или как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2006, 12:29 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
Спасибо форуму на сайте ФоксКлаб, ибо благодаря им я исправил свою последнюю ошибку :) 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 ... Оно то и понятно почему, только вот как это исправить можно, подскажите, знающие люди... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2006, 16:19 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
прошу прошения, немного не так сформулировал вопрос: я беру значение для следующего Грида по this.value от текушего. А это работает только если я щелкаю мышкой на первом столбце (наименов_оборудования), если же я вдруг случайно щелкну на втором столбце - выскакивает ошибка Operator/operand type mismatch... Как можно отловить выбранные параметр из Грида, т.е. первый столбец, и не реагировать на клиу на втором? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2006, 16:53 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
По сути, то, что ты видишь в Grid - это и есть содержимое таблицы - источника. Пермещаясь по строкам Grid, ты, по сути, перемещаешся по строкам таблицы. Значит, на нужной строке ты уже стоишь. Остается просто прочитать содержимое соответствующего поля Т.е. не важно, по какому именно полю щелкнули мышкой. Читай значение напрямую из таблицы, а не из объектов формы. MyTable.MyField ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2006, 23:36 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
Владимир, спасибо за ответ, только я вас немного не понял: получиться что я буду select-ом брать те записи, которые удовлетворяют условию наименов_оборуд.наименов_оборудования = наименов_оборуд.наименов_оборудования ? Так что-ли... Мне же нужно сравнить. Или я опять неправельно высказал проблему, или вы меня опять не поняли. Дело ведь в том, что мне нужно отследить на какой строке я стою (всмысле выбрал мышкой), взять наименование оборудование с этой строки Грида (причем наименование в первом столбце), и соответствуя этому наимен. показать характ-ки в подчиненном Гриде (характ. этого оборудования). Т.е. использовать данные из др. таблицы. Поэтому я и пытаюсь this.value поймать то, на чем спозиционировался. Может быть я совсем глупый, поясните мне пожалуйста еще раз, а то я все еще не решил свою проблему. Заранее благодарю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 22:43 |
|
||
|
Вопрос по Data Environment и таблицам, входящим в неё
|
|||
|---|---|---|---|
|
#18+
Вот ты щелкнул мышкой по ячейке в любом столбце Grid. При этом указатель записи таблицы-источника этого Grid (в котором щелкнули мышкой) перемещается на ту запись в которой щелкнули. Т.е. в этот момент ты находишся на нужной тебе записи таблицы "наименов_оборуд". При этом совершенно не имеет значения в каком именно столбце Grid. Можно в любой момент прочитать значение любого поля текущей записи . Далее тебе надо выбрать записи из таблицы "характ_обруд", соответсвующие коду текущей записи таблицы "наименов_оборуд". Вот прямо так и выбирай. По условию вроде Код: plaintext 1. 2. Т.е. в данном случае тебя совершенно не интересуют свойства объектов (This.Value). Ты обращаешся к "первоисточникам". К самой таблице-источнику, лежащей в основе отображаемых значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 23:01 |
|
||
|
|

start [/forum/topic.php?all=1&fid=41&tid=1591608]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
42ms |
get forum data: |
2ms |
get page messages: |
176ms |
get tp. blocked users: |
2ms |
| others: | 213ms |
| total: | 517ms |

| 0 / 0 |
