|
[?] Обновление таблицы при изменении данных в Grid'е
|
|||
---|---|---|---|
#18+
Добрый день. Такая проблема. На форме имеется Grid и некий Label. Грид привязан к таблице на диске (для самого Grid'а прописан RecordSource, а для колонок (Column) указаны соответствующие поля в качестве ControlSource). Всё нормально отображается и работает. Теперь нужно сделать так, чтобы при изменении прямо в Grid некоторого числового поля, привязанного к полю fNum в таблице, изменялось значение Label.Caption, представляющее собой сумму всем значений поля fNum. Так как таблица небольшая, то попробовал повесить на обработку Valid элемента Text столбца, отвечающего за взаимодействие с fNum, нечто типа такого (пишу по памяти, чтобы передать общую идею): Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Но обнаружилась такая проблема. Значение этой самой метки Label меняется не сразу по выходу из ячейки редактирования, а только после как минимум перехода по строкам в гриде. Как бы сделать так, чтобы значение метки обновлялось сразу же, по выходу из элемента редактирования Text, привязанного к полю fNum (чтобы не пришлось "бродить" по гриду) ? Пока что обошел этот момент добавлением программного перехода на следующую строку и возврата на предыдущую, эмулируя перемещения пользователя, но как-то всё это не очень красиво, мягко говоря :) Полагал, что дело в буферизации, но по-дефолту в VFP9 буферизация, вроде как, отключена (SetCursorProp('Buffering',1))... В общем, если у кого есть какие-то идеи, буду рад услышать ) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2010, 19:39 |
|
[?] Обновление таблицы при изменении данных в Grid'е
|
|||
---|---|---|---|
#18+
tvolf, Это у Вас из-за SELECT`а. Щас только, что проверил на своей программе. Замените код на такой: Код: plaintext 1. 2.
И будет Вам счастье. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2010, 22:34 |
|
[?] Обновление таблицы при изменении данных в Grid'е
|
|||
---|---|---|---|
#18+
thunder2, SUM лучше заменить на CALC SUM(fNum) ALL TO m.fNum IN myalias так будет корректнее работать ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2010, 22:37 |
|
[?] Обновление таблицы при изменении данных в Grid'е
|
|||
---|---|---|---|
#18+
thunder2, Спасибо за сообщение. В принципе, такой вариант подходит - с использованием SUM или CALC (кстати, а в чем между ними различие ? В смысле, почему второй вариант более корректен ? Или там всё дело в указании для CALC области, в которой будет работать команда (IN ALIAS) ? ) Ну и не совсем понятно, почему не работает решение с SELECT ? Или в случае использования SUM и CALC, в отличие от использования SELECT, имеется неявное перемещение указателей в таблице, по которой происходит суммирование ? То есть, хотелось бы понять причину такого странного, на мой взгляд, поведения VFP9. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2010, 10:47 |
|
[?] Обновление таблицы при изменении данных в Grid'е
|
|||
---|---|---|---|
#18+
tvolf, автор В смысле, почему второй вариант более корректен ? Или там всё дело в указании для CALC области, в которой будет работать команда (IN ALIAS) ? ) Именно. Хотя если у Вас форма "работает" с одним алиасом можете пользоваться SUM как более корокткой записью. автор Ну и не совсем понятно, почему не работает решение с SELECT ? Или в случае использования SUM и CALC, в отличие от использования SELECT, имеется неявное перемещение указателей в таблице, по которой происходит суммирование ? То есть, хотелось бы понять причину такого странного, на мой взгляд, поведения VFP9. К сожалению моих знаний недостаточно, чтобы это объяснить. Просто принимите на веру. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2010, 13:57 |
|
|
start [/forum/topic.php?fid=41&fpage=93&tid=1585105]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 336ms |
total: | 474ms |
0 / 0 |