|
|
|
Grid???
|
|||
|---|---|---|---|
|
#18+
VFP6 SP5. Есть 3 таблицы sertif (kod, name) - сертификаты tovar (kod, name) - карточки товара ser_tov (kod_ser, kod_tov) - таблица для связи сертификатов и карточек (один-ко-многим) ser_tov открывается дважды (again) с алиасами: ser_tovS (для привязки сертификатов к карточкам, акт. индекс kod_ser) ser_tovT (для привязки карточек к сертификатам, акт. индекс kod_tov) На форме 2 Grid'а В 1-м случае отображаем все сертификаты в Grid1 и привязанные к ним карточки в Grid2. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Во 2-м случае отображаем все карточки в Grid2 и привязанные к ним сертификаты в Grid1. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Подмена Grid'ов происходит по кнопке RadioButton. Проблема состоит в том, что при первой-же замене источника данных в Grid'е не отображаются записи, в которых 1-й символ поля name "-" или "!" (в главной таблице: в 1-м случае - сертификаты, во 2-м - карточки). С индексами все в порядке (Browse отображает все правильно - проверял в Debugger'е), а вот в Grid'е данные не все. Переход с записи с "-" или "!" происходит при подмене RecordSource (в 1-м случае: Grid1.RecordSource = 'sertif', во 2-м: Grid2.RecordSource = 'tovar'), переход идет на запись, следующую за последней записью с символом "-" или "!". Если кто сталкивался с чем-то подобным поделитесь опытом. Бьюсь уже второй день, не могу решить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2003, 11:27 |
|
||
|
Grid???
|
|||
|---|---|---|---|
|
#18+
Не помню кто именно, но на Фоксфоруме советовали делать переназначения через ControlSource=NULL. Я бы еще попробовал в ControlSource фразу: " "+sertif.name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2003, 11:45 |
|
||
|
Grid???
|
|||
|---|---|---|---|
|
#18+
Попробуйте примерно так: *** * Для первого случая. Если прокатит, то аналогично и для второго *** Grid1.RecordSource = "" Grid2.RecordSource = "" Sele ser_tovS Set Rela To kod_tov Into tovar GO TOP Sele sertif Set Orde To name Set Rela To kod Into ser_tovS SET SKIP TO Tovar GO TOP Grid1.RecordSource = 'sertif' Grid1.Column1.ControlSource = 'sertif.name' Grid2.RecordSource = 'ser_tovS' Grid2.Column1.ControlSource = 'tovar.name' Grid1.Refresh() Grid2.Refresh() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2003, 12:06 |
|
||
|
Grid???
|
|||
|---|---|---|---|
|
#18+
2 Равиль Можно уточнить? Точно ControlSource? Может RecordSource? Если RecordSource, то уже пытался, не помогло. 2АлександрК Попробовал, не помогает. Все равно при изменении RecordSource происходит скачок на запись, следующую за "-" или "!". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2003, 12:25 |
|
||
|
Grid???
|
|||
|---|---|---|---|
|
#18+
С RecordSource у тебя порядок, т.к. нужные области назначаются гриду. С ControlSource похоже надо изощряться, типа: ControlSource = "EVAL(Sertif.Name)" или через какую-нибудь свою функцию, типа: ControlSource = "MyFunc()" *** Func MyFunc Retu Sertif.Name извините, все что могу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2003, 13:15 |
|
||
|
Grid???
|
|||
|---|---|---|---|
|
#18+
2 bdv9 Может SET COLLATE как-то влияет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2003, 13:54 |
|
||
|
Grid???
|
|||
|---|---|---|---|
|
#18+
2 АлександрК Set("Collate") = "MACHINE" Таблицы созданы и проиндексированы в среде VFP при Set("Collate")="MACHINE". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2003, 14:08 |
|
||
|
Grid???
|
|||
|---|---|---|---|
|
#18+
При создании реляций активны ли теги? В таблице tovar тэг kod_tov? В таблице ser_tovS тэг kod ? В таблице sertif тэг kod_ser? В таблице ser_tovT тэг kod? По листингам этого не видно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2003, 14:13 |
|
||
|
Grid???
|
|||
|---|---|---|---|
|
#18+
2 Aijik При создании реляций активны ли теги? В таблице tovar тэг kod_tov? В таблице ser_tovS тэг kod ? В таблице sertif тэг kod_ser? В таблице ser_tovT тэг kod? По листингам этого не видно Да, теги активны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2003, 14:16 |
|
||
|
Grid???
|
|||
|---|---|---|---|
|
#18+
Еще есть такой стандартный финт: GO RECNO() в родительских таблицах... ну и Grid.Refresh() уже говорили ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2003, 14:22 |
|
||
|
Grid???
|
|||
|---|---|---|---|
|
#18+
Что это? Глюк? Или ошибка в логике приложения. Попробуйте. 1. На диске C:\ должен быть каталог temp. 2. Создать форму. 3. На форму поместить 2 Grid'а (Grid1, Grid2) и кнопку (Command1). 4. Методы (всего 3 Load, Init, Click): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. Код: plaintext 1. 2. У меня при клике на кнопку исчезают записи с "-" из Grid'а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2003, 15:26 |
|
||
|
Grid???
|
|||
|---|---|---|---|
|
#18+
Похоже на глюк. В качестве решения могу предложить только не менять главный и подчиненный Grid. В этом случае глюк не наблюдается. Т.е. если взять твой код метода Init, то он будет выглядеть так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. Ну, и если необходимо, то меняй их местами (координаты Left гридов). Вообще-то, я не вижу смысла дважды открывать Ser_Tov. В данном случае можно использовать и один алиас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2003, 16:57 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=416&tid=1598006]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 403ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...