|
|
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
Запутался в трёх соснах. Есть грид, к нему привязана таблица MyTab (fld CHAR(75)): ThisForm.Grid1.RecordSource='MyTab' Редактирую запись в гриде (набираю текст в поле fld), нажимаю сохранить (передача данных из таблицы MS SQL), при этом смотрю значение поля fld, оказывается оно пустое, хотя в гриде для этой записи есть текст. Если сделать: SELECT MyTab BROWSE данные появляются. Как это обяснить? Где собака зарыта? Большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 12:27 |
|
||
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
а что происходит при нажатии Сохранить?? код покажите и как Вы и чего привязываете у Вас РВ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 12:42 |
|
||
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
Привязываю: WITH ThisFormSet.Form1.Grid1 ThisFormSet.Form1.Grid1.RecordSource = '' .RecordSource = 'tab_Mb' .Column1.ControlSource = 'tab_Mb.br' .Column2.ControlSource = 'tab_Mb.mb' .Column2.SetFocus ENDWITH При редактировании записи в гриде запоминаю номер строки: SELECT _Mb STORE RECNO() ThisFormSet.nRec Сохраняю: DECLARE uX(2) SELECT * FROM tab_Mb WHERE RECNO()=ThisFormSet.nRec INTO CURSOR CurTmpSav STORE br TO uX(1) STORE tab_Mb.mb TO uX(2) nR = SQLEXEC(_Screen.nCon_DCEX,'UPDATE spr_nmb SET mb=?uX(2) WHERE br=?uX(2)') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 12:48 |
|
||
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
Редактируется поле tab_Mb.mb, проблемма иммено в нём, данные не отображаются. Отображаются только после BROWSE или когда по завершению ввода текста в ячейку грида нажать ENTER, тогда всё попадает нормально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 12:55 |
|
||
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
если у Вас 8 или 9 версия лисы, то поиграйтесь с этим примером это КурсорАдаптер поиском прочитайте зачем это нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 13:06 |
|
||
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
У как все запущено !!! Зачем такие сложности ? для чего эти запоминания номера записи , отборки в курсоры и потом в массивы ? в общем-то достаточно просто nR = SQLEXEC(_Screen.nCon_DCEX,'UPDATE spr_nmb SET mb=?tab_Mb.mb WHERE br=?tab_Mb.br') Кстати в приведенном коде есть нестыковки В гриде источник .RecordSource = 'tab_Mb' ... Запоминаете recno вы SELECT _Mb STORE RECNO() ThisFormSet.nRec ... nR = SQLEXEC(_Screen.nCon_DCEX,'UPDATE spr_nmb SET mb=?uX(2) WHERE br=?uX(2) ') Тут непонятно - почему и там и там uX(2) ? Гораздо проще построить Remote View или если у вас VFP 8-9 использовать CursorAdapter. Но если все-таки хотите сделать по своему, уточните - где какой код у вас "вызывается", т.е. в каких методах и каких объектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 13:11 |
|
||
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
2 -=AlexiS=- видели бы Вы бубны, когда народ пытается продернуть локал после отработки ХП понакурятся травы ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 13:20 |
|
||
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
В методе InteractiveChange обекта Grid1.Column2.Text1 написал следующий текст: cX1=This.Value cX2=tab_mb.mb WAIT This.Value+CHR(13)+tab_mb.mb WINDOW NOWAIT когда в этом обьекту пишу текст, переменная cX1 отображает этот текст, а - cX2 нет. Я думал что данные сразу при вводе в text грида попадают в связаную таблицу, оказывается в моём случае это не так. Подскажите в какой момент вводимые в грид данные появляются в таблице? Знаю что если сделать BROWSE этой таблице, то данные появляются. Какой тут принцып работы? Болшьшое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 16:12 |
|
||
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
Они там появляются сразу после выхода из текстбокса. Так как выхода еще не было, то ничего и не меняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 16:19 |
|
||
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
Код: 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. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 16:21 |
|
||
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
после того как вы этот самый ввод завершите. ну никак ни в InteractiveChange . Изменения пойдут после Valid . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 16:24 |
|
||
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
Окончание ввода наступает тогда, когда text грида теряет фокус, так? У меня на форме кроме грида ничего нет, данные на сервер я передаю по нажатию на пункт меню: ON SELECTION PAD pad11 OF MaineMenu oFrm1.SavClmn() Метод oFrm1.SavClmn() следующий (по совету -=AlexiS=- я его переписал, большое спасибо): nR = SQLEXEC(_Screen.nCon_DCEX,'UPDATE spr_nmb SET mb=?tab_mb.mb WHERE cex=?oFrm.cCex AND br=?tab_mb.br') Получается text грида фокус не теряет и введённые данные не попадают в tab_mb. Может написать: KEYBOARD{TAB} nR = SQLEXEC(_Screen.nCon_DCEX,'UPDATE spr_nmb SET mb=?tab_mb.mb WHERE cex=?oFrm.cCex AND br=?tab_mb.br') но так тоже не работает. Как тут быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 16:46 |
|
||
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
2 shanton Вы что решили придумать новый велосипед??? есть курсорадаптер там Вы можете установить 2 типа буферизации (по строке или на всю таблицу) и не нужно отслеживать никаких нащатий и событий, лиса за Вас все сделает ну в самом-то деле, перестаньте себя и лису мичить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 16:50 |
|
||
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
а если фокс не 9-ый? У меня правда 9-ый, но с курсорадаптером пока не дружу, будет время постараюсь освоить. Счас время поджимает... Застрял на пустом месте... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 16:54 |
|
||
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
ну неужто плясать с бубном на пустом месте есть время, а заняться изучением принципа работы курсорадаптера нет??? а удалять и вставлять также руками будете?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 17:03 |
|
||
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
Если это пункт меню , то потеря фокуса не происходит. И это правильно - иначе как пользоваться например меню "Правка". Вообще-тото правильно бы было перенести все на форму- создать кнопки Добавить/Удалить /Сохранить и там обрабатывать. И прислушайтесь наконец к советам- пользуйтесь CA , как для начинающего - это проше и быстрее. Поищите по форуму - много раз обсуждалось, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 17:10 |
|
||
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
Прежде чем брать данные с таблицы, в которую я с грида их внёс, я этот грид: ThisForm.Grid1.RecordSource='' а дальше: nR = SQLEXEC(_Screen.nCon_DCEX,'UPDATE spr_nmb SET mb=?tab_mb.mb WHERE cex=?oFrm.cCex AND br=?tab_mb.br') и всё нормально. Извените шо морочил голову. Спасибо за комплемент: авторИ прислушайтесь наконец к советам- пользуйтесь CA , как для начинающего - это проше и быстрее Четыры года уже как начинающий. Да... как научился так и работаю... Но всё равно спасибо, когда-то надо начинать правильно писать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 17:35 |
|
||
|
Отображение в таблице изменений сделаных в связаном гриде
|
|||
|---|---|---|---|
|
#18+
Для завершения ввода в Grid помогает "передергивание" указателя записи Код: plaintext 1. 2. Хотя, согласен со всеми ответившими, слишком уж все сложно сделано. Лучше переделать на CursorAdapter или хотя бы Remote View. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2007, 17:40 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34428146&tid=1589616]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
82ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 435ms |

| 0 / 0 |
