|
Связь одна таблица подчинена двум
|
|||
---|---|---|---|
#18+
У меня на форме TreeMain(Alias-opierarh) и textbox(Alias-kassacdo) и Grig, необходимо, что бы в последнем отбирались данные в зависимости от того что выбрано в 2-х первых объектах, но при этом в grid мозно было редактировать данные. Сейчас реализовано через запрос Select cdo.kod, cdo.kgp, cdo.nbd, cdo.snm, cdo.npoz; FROM cdo; WHERE Cdo.kod = ( opierarh.kod); and cdo.kgp = ( kassacdo.kgp ); ORDER By cdo.nbd; Into Cursor cdoView Thisform.Grid1.RecordSource="cdoView" Thisform.Grid1.ColumnCount = 4 Thisform.Grid1.Column1.ControlSource='cdoView.kod' Thisform.Grid1.Column2.ControlSource='cdo.npoz' В DV настроена связь м/д opierarh и cdo. Использую VFP 9.0. Но в этом случае я не могу в Grid-е редактировать данные. Есть ли решения данной проблемы? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2010, 10:15 |
|
Связь одна таблица подчинена двум
|
|||
---|---|---|---|
#18+
Alexandr29, решений как минимум 3: 1) оставить в гриде запрос, для редактирования вызывать отдельную форму, после чего запрос перезапросить 2) view вместо запроса с возможностью внесения изменений в базовые таблицы 3) фильтр вместо запроса Далее по вкусу Подробности в Хелпе ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2010, 10:24 |
|
Связь одна таблица подчинена двум
|
|||
---|---|---|---|
#18+
igorbik, 1-й меня не устраивает 2-й и 3-й можно по подробнее расшифровать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2010, 10:34 |
|
Связь одна таблица подчинена двум
|
|||
---|---|---|---|
#18+
можно использовать lookup-поля и свести запрос к 1 таблице ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2010, 10:35 |
|
Связь одна таблица подчинена двум
|
|||
---|---|---|---|
#18+
Alexandr29У меня на форме TreeMain(Alias-opierarh) и textbox(Alias-kassacdo) и Grig, необходимо, что бы в последнем отбирались данные в зависимости от того что выбрано в 2-х первых объектах, но при этом в grid мозно было редактировать данные. Сейчас реализовано через запрос Select cdo.kod, cdo.kgp, cdo.nbd, cdo.snm, cdo.npoz; FROM cdo; WHERE Cdo.kod = ( opierarh.kod); and cdo.kgp = ( kassacdo.kgp ); ORDER By cdo.nbd; Into Cursor cdoView Thisform.Grid1.RecordSource="cdoView" Thisform.Grid1.ColumnCount = 4 Thisform.Grid1.Column1.ControlSource='cdoView.kod' Thisform.Grid1.Column2.ControlSource='cdo.npoz' В DV настроена связь м/д opierarh и cdo. Использую VFP 9.0. Но в этом случае я не могу в Grid-е редактировать данные. Есть ли решения данной проблемы? Это естественно, поскольку результат выборки из нескольких таблиц автоматически стать редактируемым Набором Данных не может. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2010, 10:38 |
|
Связь одна таблица подчинена двум
|
|||
---|---|---|---|
#18+
igorbik3) фильтр вместо запроса SELECT cdo SET FILTER TO kgp = kassacdo.kgp что я не так делаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2010, 10:59 |
|
Связь одна таблица подчинена двум
|
|||
---|---|---|---|
#18+
Alexandr29igorbik3) фильтр вместо запроса SELECT cdo SET FILTER TO kgp = kassacdo.kgp теперь сдвинуть маркер GO BOTT && ИЛИ GO TOP && и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2010, 11:20 |
|
Связь одна таблица подчинена двум
|
|||
---|---|---|---|
#18+
Alexandr29igorbik, 1-й меня не устраивает а я наоборот, только первым и пользуюсь. Дело в том, что редактировать записи в гриде есть признак дурного тона, все равно нужно делать форму для редактирования. А потом обнуляем источник грида, делаем тот же запрос и восстанавливаем источник грида. Здесь в форуме это все неоднократно обсуждалось, только поискать надо по ключевому полю "грид" или "grid". Там все показано и рассказано. На форуме фоксклуба ищи статьи Гринчишина и статьи Максимова по этому поводу ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2010, 11:27 |
|
Связь одна таблица подчинена двум
|
|||
---|---|---|---|
#18+
igorbikAlexandr29пропущено... SELECT cdo SET FILTER TO kgp = kassacdo.kgp теперь сдвинуть маркер GO BOTT && ИЛИ GO TOP && и т.п. не помогает произошел обрыв связи м/д opierarh и cdo и если мы хоть 1 раз щелкаем по TreeMain(Alias-opierarh) в Grid все исчезает а при первом запуске Grid содержит записи отфильтрованные по kassacdo.kgp без учета opierarh. igorbikа я наоборот, только первым и пользуюсь. многим пользователям привычнее да и удобнее представлять и редактировать данные в табличке. если не смогу осуществить 2 других способа, то так и придется сделать. igorbikЗдесь в форуме это все неоднократно обсуждалось, только поискать надо по ключевому полю "грид" или "grid". Да про связь Одна таблица подчинена другой, я нашел много информации, но по моему вопросу ничего не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2010, 12:03 |
|
Связь одна таблица подчинена двум
|
|||
---|---|---|---|
#18+
Alexandr29, ну так ты же не фильтр поставил, а попытался поставить связь с другой таблицей нелепым способом. Вот она и порвалась. Ищи примеры постановки фильтров в Хелпе, в этом и других похожих форумах ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2010, 12:31 |
|
Связь одна таблица подчинена двум
|
|||
---|---|---|---|
#18+
Alexandr29У меня на форме TreeMain(Alias-opierarh) и textbox(Alias-kassacdo) и Grig, необходимо, что бы в последнем отбирались данные в зависимости от того что выбрано в 2-х первых объектах, но при этом в grid мозно было редактировать данные. Сейчас реализовано через запрос Select cdo.kod, cdo.kgp, cdo.nbd, cdo.snm, cdo.npoz; FROM cdo; WHERE Cdo.kod = ( opierarh.kod); and cdo.kgp = ( kassacdo.kgp ); ORDER By cdo.nbd; Into Cursor cdoView Thisform.Grid1.RecordSource="cdoView" Thisform.Grid1.ColumnCount = 4 Thisform.Grid1.Column1.ControlSource='cdoView.kod' Thisform.Grid1.Column2.ControlSource='cdo.npoz' В DV настроена связь м/д opierarh и cdo. Использую VFP 9.0. Но в этом случае я не могу в Grid-е редактировать данные. Есть ли решения данной проблемы? Примерно так: new1 = opierarh.kod new2 = kassacdo.kgp select cdo set filter to kod = new1 and kgp = new2 go top thisform.refresh далее в гриде все будет видно, если его источником записей будет таблица cdo ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2010, 12:41 |
|
Связь одна таблица подчинена двум
|
|||
---|---|---|---|
#18+
igorbik Примерно так: new1 = opierarh.kod new2 = kassacdo.kgp select cdo set filter to kod = new1 and kgp = new2 go top thisform.refresh далее в гриде все будет видно, если его источником записей будет таблица cdo огромное спасибо, после установки фильтра источник записей в гриде обнулялся добавил строчку Thisform.Grid1.RecordSource="cdo" и все заработало. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2010, 14:39 |
|
|
start [/forum/topic.php?fid=41&fpage=84&tid=1584721]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 282ms |
total: | 423ms |
0 / 0 |